diff --git a/unified/.project b/unified/.project new file mode 100644 index 000000000..3c66daead --- /dev/null +++ b/unified/.project @@ -0,0 +1,20 @@ + + + sysml-unified + + + org.omg.sysml.logic + org.omg.sysml.model + org.omg.sysml.model.eclipse + org.omg.sysml.model.tools + + + + org.eclipse.m2e.core.maven2Builder + + + + + org.eclipse.m2e.core.maven2Nature + + diff --git a/unified/org.omg.sysml.logic.tests/.classpath b/unified/org.omg.sysml.logic.tests/.classpath new file mode 100644 index 000000000..d23f28f9a --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/.classpath @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/unified/org.omg.sysml.logic.tests/.project b/unified/org.omg.sysml.logic.tests/.project new file mode 100644 index 000000000..0f1d2f687 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/.project @@ -0,0 +1,20 @@ + + + org.omg.sysml.logic.tests + + + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.m2e.core.maven2Builder + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/unified/org.omg.sysml.logic.tests/.settings/org.eclipse.core.resources.prefs b/unified/org.omg.sysml.logic.tests/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..99f26c020 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/unified/org.omg.sysml.logic.tests/.settings/org.eclipse.jdt.core.prefs b/unified/org.omg.sysml.logic.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..e9186c3e3 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.source=21 diff --git a/unified/org.omg.sysml.logic.tests/.settings/org.eclipse.m2e.core.prefs b/unified/org.omg.sysml.logic.tests/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000..54212ae86 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/unified/org.omg.sysml.logic.tests/README.md b/unified/org.omg.sysml.logic.tests/README.md new file mode 100644 index 000000000..0780e7ca6 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/README.md @@ -0,0 +1,24 @@ +# org.omg.sysml.logic.tests + +## Purpose +- Hosts integration and coverage tests for `org.omg.sysml.logic`. +- Keeps `org.omg.sysml.logic` free from test-only dependencies and test resources. + +## What This Module Provides +- `SpringIntegrationTest`: validates Spring wiring for delegate registration. +- `SysMLDelegateCoverageTest`: validates delegate generation/runtime coverage against the SysML UML source model. +- `InvocationSemantics*Test` and `SettingSemantics*Test`: validate generated delegate semantics, + including subsets-based setting fallback behavior. + +## Test Resources +- Local UML source of truth for coverage checks: + - `src/main/resources/SysML_xmi.uml` + +## Design Intent +- Test-only module in the unified Maven reactor. +- Depends on `org.omg.sysml.logic` in test scope. +- Does not contribute runtime code. + +## Typical Usage +- Run with the full reactor: `mvn -f unified/pom.xml clean verify` +- Or run only this module: `mvn -f unified/org.omg.sysml.logic.tests/pom.xml test` diff --git a/unified/org.omg.sysml.logic.tests/pom.xml b/unified/org.omg.sysml.logic.tests/pom.xml new file mode 100644 index 000000000..a3530b3ed --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/pom.xml @@ -0,0 +1,49 @@ + + + 4.0.0 + + + org.omg.sysml + org.omg.sysml.unified.parent + 0.1.0-SNAPSHOT + ../pom.xml + + + org.omg.sysml.logic.tests + org.omg.sysml.logic.tests + + + + org.omg.sysml + org.omg.sysml.logic + ${project.version} + test + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.testcontainers + junit-jupiter + test + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + diff --git a/unified/org.omg.sysml.logic.tests/src/main/java/.gitkeep b/unified/org.omg.sysml.logic.tests/src/main/java/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/unified/org.omg.sysml.logic.tests/src/main/resources/SysML_xmi.uml b/unified/org.omg.sysml.logic.tests/src/main/resources/SysML_xmi.uml new file mode 100644 index 000000000..33875557c --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/main/resources/SysML_xmi.uml @@ -0,0 +1,16098 @@ + + + + + The Root layer provides the syntactic foundation for KerML. + + + + + + <p>A <code>Dependency</code> is a <code>Relationship</code> that indicates that one or more <code>client</code> <code>Elements</code> require one more <code>supplier</code> <code>Elements</code> for their complete specification. In general, this means that a change to one of the <code>supplier</code> <code>Elements</code> may necessitate a change to, or re-specification of, the <code>client</code> <code>Elements</code>.</p> + +<p>Note that a <code>Dependency</code> is entirely a model-level <code>Relationship</code>, without instance-level semantics.</p> + + + + + <p>The <code>Element</code> or <code>Elements</code> dependent on the <code>supplier</code> <code>Elements</code>.</p> + + + + + + + <p>The <code>Element</code> or <code>Elements</code> on which the <code>client</code> <code>Elements</code> depend in some respect.</p> + + + + + + + + + <p>The <code>Dependencies</code> that have a certain <code>supplier</code> <code>Element</code>.</p> + + + + + + + + + <p>The <code>Dependencies</code> that have a certain <code>client</code> <code>Element</code>.</p> + + + + + + + + + + <p>A <code>Comment</code> is an <code>AnnotatingElement</code> whose <code>body</code> in some way describes its <code>annotatedElements</code>.</p> + + + + + + <p>Identification of the language of the <code>body</code> text and, optionally, the region and/or encoding. The format shall be a POSIX locale conformant to ISO/IEC 15897, with the format <code>[language[_territory][.codeset][@modifier]]</code>.</p> + + + + + + + + <p>The annotation text for the <code>Comment</code>.</p> + + + + + + + + + + <p>An <code>Annotation</code> is a Relationship between an <code>AnnotatingElement</code> and the <code>Element</code> that is annotated by that <code>AnnotatingElement</code>.</p> + + + + + <p>An <code>Annotation</code> owns its <code>annotatingElement</code> if and only if it is owned by its <code>annotatedElement</code>.</p> + + + OCL2.0 + (owningAnnotatedElement <> null) = (ownedAnnotatingElement <> null) + + + + + <p>Either the <code>ownedAnnotatingElement</code> of an <code>Annotation</code> must be non-null, or the <code>owningAnnotatingElement</code> must be non-null, but not both.</p> + + + OCL2.0 + ownedAnnotatingElement <> null xor owningAnnotatingElement <> null + + + + + <p>The <code>ownedAnnotatingElement</code> of an <code>Annotation</code> is the first <code>ownedRelatedElement</code> that is an <code>AnnotatingElement</code>, if any.</p> + + + OCL2.0 + ownedAnnotatingElement = + let ownedAnnotatingElements : Sequence(AnnotatingElement) = + ownedRelatedElement->selectByKind(AnnotatingElement) in + if ownedAnnotatingElements->isEmpty() then null + else ownedAnnotatingElements->first() + endif + + + + + <p>The <code>annotatingElement</code> of an <code>Annotation</code> is either its <code>ownedAnnotatingElement</code> or its <code>owningAnnotatingElement</code>.</p> + + + OCL2.0 + annotatingElement = + if ownedAnnotatingElement <> null then ownedAnnotatingElement + else owningAnnotatingElement + endif + + + + + + <p>The <code>AnnotatingElement</code> that annotates the <code>annotatedElement</code> of this <code>Annotation</code>. This is always either the <code>ownedAnnotatingElement</code> or the <code>owningAnnotatingElement</code>.</p> + + + + + + + + <p>The <code>Element</code> that is annotated by the <code>annotatingElement</code> of this Annotation.</p> + + + + + + + + <p>The <code>annotatedElement</code> of this <code>Annotation</code>, when it is also the <code>owningRelatedElement</code>.</p> + + + + + + + + <p>The <code>annotatingElement</code> of this <code>Annotation</code>, when it is the <code>owningRelatedElement</code>.</p> + + + + + + + <p>The <code>annotatingElement</code> of this <code>Annotation</code>, when it is an <code>ownedRelatedElement</code>.</p> + + + + + + + + + + <p>The Annotations associated with a certain <code>annotatedElement</code>.</p> + + + + + + + + <p>An <code>AnnotatingElement</code> is an <code>Element</code> that provides additional description of or metadata on some other <code>Element</code>. An <code>AnnotatingElement</code> is either attached to its <code>annotatedElements</code> by <code>Annotation</code> <code>Relationships</code>, or it implicitly annotates its <code>owningNamespace</code>.</p> + + + + + <p>If an <code>AnnotatingElement</code> has <code>annotations</code>, then its <code>annotatedElements</code> are the <code>annotatedElements</code> of all its <code>annotations</code>. Otherwise, it's single <code>annotatedElement</code> is its <code>owningNamespace</code>.</p> + + + OCL2.0 + annotatedElement = + if annotation->notEmpty() then annotation.annotatedElement + else Sequence{owningNamespace} endif + + + + + <p>The <code>ownedAnnotatingRelationships</code> of an <code>AnnotatingElement</code> are its <code>ownedRelationships</code> that are <code>Annotations</code>, for which the <code>AnnotatingElement</code> is not the <code>annotatedElement</code>.</p> + + + OCL2.0 + ownedAnnotatingRelationship = ownedRelationship-> + selectByKind(Annotation)-> + select(a | a.annotatedElement <> self) + + + + + <p>The <code>annotations</code> of an <code>AnnotatingElement</code> are its <code>owningAnnotatingRelationship</code> (if any) followed by all its <code>ownedAnnotatingRelationships</code>.</p> + + + OCL2.0 + annotation = + if owningAnnotatingRelationship = null then ownedAnnotatingRelationship + else owningAnnotatingRelationship->prepend(owningAnnotatingRelationship) + endif + + + + + + <p>The <code>Elements</code> that are annotated by this <code>AnnotatingElement</code>. If <code>annotation</code> is not empty, these are the <code>annotatedElements</code> of the <code>annotations</code>. If <code>annotation</code> is empty, then it is the <code>owningNamespace</code> of the <code>AnnotatingElement</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>AnnotatingElement</code> that are <code>Annotations</code>, for which this <code>AnnotatingElement</code> is the <code>annotatingElement</code>.</p> + + + + + + + <p>The <code>owningRelationship</code> of this <code>AnnotatingRelationship</code>, if it is an <code>Annotation</code></p> + + + + + + + <p>The <code>Annotations</code> that relate this <code>AnnotatingElement</code> to its <code>annotatedElements</code>. This includes the <code>owningAnnotatingRelationship</code> (if any) followed by all the <code>ownedAnnotatingRelationshps</code>.</p> + + + + + + + + + + <p>The AnnotatingElements that have a certain Element as their <code>annotatedElement</code>.</p> + + + + + + + + <p>A <code>TextualRepresentation</code> is an <code>AnnotatingElement</code> whose <code>body</code> represents the <code>representedElement</code> in a given <code>language</code>. The <code>representedElement</code> must be the <code>owner</code> of the <code>TextualRepresentation</code>. The named <code>language</code> can be a natural language, in which case the <code>body</code> is an informal representation, or an artificial language, in which case the <code>body</code> is expected to be a formal, machine-parsable representation.</p> + +<p>If the named <code>language</code> of a <code>TextualRepresentation</code> is machine-parsable, then the <code>body</code> text should be legal input text as defined for that <code>language</code>. The interpretation of the named language string shall be case insensitive. The following <code>language</code> names are defined to correspond to the given standard languages:</p> + +<table border="1" cellpadding="1" cellspacing="1" width="498"> + <thead> + </thead> + <tbody> + <tr> + <td style="text-align: center; width: 154px;"><code>kerml</code></td> + <td style="width: 332px;">Kernel Modeling Language</td> + </tr> + <tr> + <td style="text-align: center; width: 154px;"><code>ocl</code></td> + <td style="width: 332px;">Object Constraint Language</td> + </tr> + <tr> + <td style="text-align: center; width: 154px;"><code>alf</code></td> + <td style="width: 332px;">Action Language for fUML</td> + </tr> + </tbody> +</table> + +<p>Other specifications may define specific <code>language</code> strings, other than those shown above, to be used to indicate the use of languages from those specifications in KerML <code>TextualRepresentation</code>.</p> + +<p>If the <code>language</code> of a <code>TextualRepresentation</code> is &quot;<code>kerml</code>&quot;, then the <code>body</code> text shall be a legal representation of the <code>representedElement</code> in the KerML textual concrete syntax. A conforming tool can use such a <code>TextualRepresentation</code> <code>Annotation</code> to record the original KerML concrete syntax text from which an <code>Element</code> was parsed. In this case, it is a tool responsibility to ensure that the <code>body</code> of the <code>TextualRepresentation</code> remains correct (or the Annotation is removed) if the annotated <code>Element</code> changes other than by re-parsing the <code>body</code> text.</p> + +<p>An <code>Element</code> with a <code>TextualRepresentation</code> in a language other than KerML is essentially a semantically &quot;opaque&quot; <code>Element</code> specified in the other language. However, a conforming KerML tool may interpret such an element consistently with the specification of the named language.</p> + + + + + + <p>The natural or artifical language in which the <code>body</code> text is written.</p> + + + + + + + + + <p>The <code>Element</code> that is represented by this <code>TextualRepresentation</code>.</p> + + + + + + + + <p>The textual representation of the <code>representedElement</code> in the given <code>language</code>.</p> + + + + + + + + + + <p><code>Documentation</code> is a <code>Comment</code> that specifically documents a <code>documentedElement</code>, which must be its <code>owner</code>.</p> + + + + + + <p>The <code>Element</code> that is documented by this <code>Documentation</code>.</p> + + + + + + + + + + + + + <p>A <code>Namespace</code> is an <code>Element</code> that contains other <code>Elements</code>, known as its <code>members</code>, via <code>Membership</code> <code>Relationships</code> with those <code>Elements</code>. The <code>members</code> of a <code>Namespace</code> may be owned by the <code>Namespace</code>, aliased in the <code>Namespace</code>, or imported into the <code>Namespace</code> via <code>Import</code> <code>Relationships</code>.</p> + +<p>A <code>Namespace</code> can provide names for its <code>members</code> via the <code>memberNames</code> and <code>memberShortNames</code> specified by the <code>Memberships</code> in the <code>Namespace</code>. If a <code>Membership</code> specifies a <code>memberName</code> and/or <code>memberShortName</code>, then those are names of the corresponding <code>memberElement</code> relative to the <code>Namespace</code>. For an <code>OwningMembership</code>, the <code>ownedMemberName</code> and <code>ownedMemberShortName</code> are given by the <code>Element</code> <code>name</code> and <code>shortName</code>. Note that the same <code>Element</code> may be the <code>memberElement</code> of multiple <code>Memberships</code> in a <code>Namespace</code> (though it may be owned at most once), each of which may define a separate alias for the <code>Element</code> relative to the <code>Namespace</code>.</p> + + + + + <p>All <code>memberships</code> of a <code>Namespace</code> must be distinguishable from each other.</p> + + + OCL2.0 + membership->forAll(m1 | + membership->forAll(m2 | + m1 <> m2 implies m1.isDistinguishableFrom(m2))) + + + + + <p>The <code>members</code> of a <code>Namespace</code> are the <code>memberElements</code> of all its <code>memberships</code>.</p> + + + OCL2.0 + member = membership.memberElement + + + + + <p>The <code>ownedMembers</code> of a <code>Namespace</code> are the <code>ownedMemberElements</code> of all its <code>ownedMemberships</code> that are <code>OwningMemberships</code>. + + + OCL2.0 + ownedMember = ownedMembership->selectByKind(OwningMembership).ownedMemberElement + + + + + <p>The <code>importedMemberships</code> of a <code>Namespace</code> are derived using the <code>importedMemberships()</code> operation, with no initially <code>excluded</code> <code>Namespaces</code>.</p> + + + OCL2.0 + importedMembership = importedMemberships(Set{}) + + + + + <p>The <code>ownedImports</code> of a <code>Namespace</code> are all its <code>ownedRelationships</code> that are <code>Imports</code>.</p> + + + OCL2.0 + ownedImport = ownedRelationship->selectByKind(Import) + + + + + <p>The <code>ownedMemberships</code> of a <code>Namespace</code> are all its <code>ownedRelationships</code> that are <code>Memberships</code>.</p> + + + OCL2.0 + ownedMembership = ownedRelationship->selectByKind(Membership) + + + + + + <p>All <code>Memberships</code> in this <code>Namespace</code>, including (at least) the union of <code>ownedMemberships</code> and <code>importedMemberships</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Namespace</code> that are <code>Imports</code>, for which the <code>Namespace</code> is the <code>importOwningNamespace</code>.</p> + + + + + + + + <p>The set of all member <code>Elements</code> of this <code>Namespace</code>, which are the <code>memberElements</code> of all <code>memberships</code> of the <code>Namespace</code>.</p> + + + + + + + + <p>The owned <code>members</code> of this <code>Namespace</code>, which are the <cpde><code>ownedMemberElements</code> of the <code>ownedMemberships</code> of the <code>Namespace</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Namespace</code> that are <code>Memberships</code>, for which the <code>Namespace</code> is the <code>membershipOwningNamespace</code>.</p> + + + + + + + + <p>The <code>Memberships</code> in this <code>Namespace</code> that result from the <code>ownedImports</code> of this <code>Namespace</code>.</p> + + + + + + + + <p>Return the names of the given <code>element</code> as it is known in this <code>Namespace</code>.</p> + + + + + OCL2.0 + let elementMemberships : Sequence(Membership) = + memberships->select(memberElement = element) in +memberships.memberShortName-> + union(memberships.memberName)-> + asSet() + + + + + + + + + + + + <p>Returns this visibility of <code>mem</code> relative to this <code>Namespace</code>. If <code>mem</code> is an <code>importedMembership</code>, this is the <code>visibility</code> of its Import. Otherwise it is the <code>visibility</code> of the <code>Membership</code> itself.</p> + + + + + OCL2.0 + if importedMembership->includes(mem) then + ownedImport-> + select(importedMemberships(Set{})->includes(mem)). + first().visibility +else if memberships->includes(mem) then + mem.visibility +else + VisibilityKind::private +endif + + + + + + + + <p>If <code>includeAll = true</code>, then return all the <code>Memberships</code> of this <code>Namespace</code>. Otherwise, return only the publicly visible <code>Memberships</code> of this <code>Namespace</code>, including <code>ownedMemberships</code> that have a <code>visibility</code> of <code>public</code> and <code>Memberships</code> imported with a <code>visibility</code> of <code>public</code>. If <code>isRecursive = true</code>, also recursively include all visible <code>Memberships</code> of any <code>public</code> owned <code>Namespaces</code>, or, if <code>IncludeAll = true</code>, all <code>Memberships</code> of all owned <code>Namespaces</code>. When computing imported <code>Memberships</code>, ignore this <code>Namespace</code> and any <code>Namespaces</code> in the given <code>excluded</code> set.</p> + + + + + OCL2.0 + let visibleMemberships : OrderedSet(Membership) = + if includeAll then membershipsOfVisibility(null, excluded) + else membershipsOfVisibility(VisibilityKind::public, excluded) + endif in +if not isRecursive then visibleMemberships +else visibleMemberships->union(ownedMember-> + selectAsKind(Namespace). + select(includeAll or owningMembership.visibility = VisibilityKind::public)-> + visibleMemberships(excluded->including(self), true, includeAll)) +endif + + + + + + + + + + + + + + + + + + + + + <p>Derive the imported <code>Memberships</code> of this <code>Namespace</code> as the <code>importedMembership</code> of all <code>ownedImports</code>, excluding those Imports whose <code>importOwningNamespace</code> is in the <code>excluded</code> set, and excluding <code>Memberships</code> that have distinguisibility collisions with each other or with any <code>ownedMembership</code>.</p> + + + + + OCL2.0 + ownedImport.importedMemberships(excluded->including(self)) + + + + + + + + + + + + + + <p>If <code>visibility</code> is not null, return the <code>Memberships</code> of this <code>Namespace</code> with the given <code>visibility</code>, including <code>ownedMemberships</code> with the given <code>visibility</code> and <code>Memberships</code> imported with the given <code>visibility</code>. If <code>visibility</code> is null, return all <code>ownedMemberships</code> and imported <code>Memberships</code> regardless of visibility. When computing imported <code>Memberships</code>, ignore this <code>Namespace</code> and any <code>Namespaces</code> in the given <code>excluded</code> set.</p> + + + + OCL2.0 + ownedMembership-> + select(mem | visibility = null or mem.visibility = visibility)-> + union(ownedImport-> + select(imp | visibility = null or imp.visibility = visibility). + importedMemberships(excluded->including(self))) + + + + + + + + + + + + + + + + + + <p>Resolve the given qualified name to the named <code>Membership</code> (if any), starting with this <code>Namespace</code> as the local scope. The qualified name string must conform to the concrete syntax of the KerML textual notation. According to the KerML name resolution rules every qualified name will resolve to either a single <code>Membership</code>, or to none.</p> + + + + + OCL2.0 + let qualification : String = qualificationOf(qualifiedName) in +let name : String = unqualifiedNameOf(qualifiedName) in +if qualification = null then resolveLocal(name) +else if qualification = '$' then resolveGlobal(name) +else + let namespaceMembership : Membership = resolve(qualification) in + if namespaceMembership = null or + not namespaceMembership.memberElement.oclIsKindOf(Namespace) + then null + else + namespaceMembership.memberElement.oclAsType(Namespace). + resolveVisible(name) + endif +endif endif + + + + + + + + + + + + + <p>Resolve the given qualified name to the named <code>Membership</code> (if any) in the effective global <code>Namespace</code> that is the outermost naming scope. The qualified name string must conform to the concrete syntax of the KerML textual notation.</p> + + + + + English + No OCL + + + + + + + + + + + + + <p>Resolve a simple <code>name</code> starting with this <code>Namespace</code> as the local scope, and continuing with containing outer scopes as necessary. However, if this <code>Namespace</code> is a root <code>Namespace</code>, then the resolution is done directly in global scope.</p> + + + + + OCL2.0 + if owningNamespace = null then resolveGlobal(name) +else + let memberships : Membership = membership-> + select(memberShortName = name or memberName = name) in + if memberships->notEmpty() then memberships->first() + else owningNamspace.resolveLocal(name) + endif +endif + + + + + + + + + + + + + <p>Resolve a simple name from the visible <code>Memberships</code> of this <code>Namespace</code>.</p> + + + + + OCL2.0 + let memberships : Sequence(Membership) = + visibleMemberships(Set{}, false, false)-> + select(memberShortName = name or memberName = name) in +if memberships->isEmpty() then null +else memberships->first() +endif + + + + + + + + + + + + + <p>Return a string with valid KerML syntax representing the qualification part of a given <code>qualifiedName</code>, that is, a qualified name with all the segment names of the given name except the last. If the given <code>qualifiedName</code> has only one segment, then return null.</p> + + + + English + No OCL + + + + + + + + + + + + + + <p>Return the simple name that is the last segment name of the given <code>qualifiedName</code>. If this segment name has the form of a KerML unrestricted name, then "unescape" it by removing the surrounding single quotes and replacing all escape sequences with the specified character.</p> + + + + English + No OCL + + + + + + + + + + + + + + + <p>An <code>Import</code> is an <code>Relationship</code> between its <code>importOwningNamespace</code> and either a <code>Membership</code> (for a <code>MembershipImport</code>) or another <code>Namespace</code> (for a <code>NamespaceImport</code>), which determines a set of <code>Memberships</code> that become <code>importedMemberships</code> of the <code>importOwningNamespace</code>. If <code>isImportAll = false</code> (the default), then only public <code>Memberships</code> are considered &quot;visible&quot;. If <code>isImportAll = true</code>, then all <code>Memberships</code> are considered &quot;visible&quot;, regardless of their declared <code>visibility</code>. If <code>isRecursive = true</code>, then visible <code>Memberships</code> are also recursively imported from owned sub-<code>Namespaces</code>.</p> + + + + + + <p>A top-level <code>Import</code> (that is, one that is owned by a root <code>Namespace</code>) must have a <code>visibility</code> of <code>private</code>.</p> + + + OCL2.0 + importOwningNamespace.owner = null implies + visibility = VisibilityKind::private + + + + + + <p>The Namespace into which Memberships are imported by this Import, which must be the <code>owningRelatedElement</code> of the Import.</p> + + + + + + + + <p>The visibility level of the imported <code>members</code> from this Import relative to the <code>importOwningNamespace</code>. The default is <code>private</code>.</p> + + + + + + + <p>Whether to recursively import Memberships from visible, owned sub-Namespaces.</p> + + + + + + + <p>Whether to import memberships without regard to declared visibility.</p> + + + + + + + + <p>The effectively imported <code>Element</code> for this </code>Import</code>. For a <code>MembershipImport</code>, this is the <code>memberElement</code> of the <code>importedMembership</code>. For a <code>NamespaceImport</code>, it is the <code>importedNamespace</code>.</p> + + + + + + + <p>Returns Memberships that are to become <code>importedMemberships</code> of the <code>importOwningNamespace</code>. (The <code>excluded</code> parameter is used to handle the possibility of circular Import Relationships.)</p> + + + + + + + + + + + + + + + + <p>A <code>MembershipImport</code> is an <code>Import</code> that imports its <code>importedMembership</code> into the <code>importOwningNamespace</code>. If <code>isRecursive = true</code> and the <code>memberElement</code> of the <code>importedMembership</code> is a <code>Namespace</code>, then the equivalent of a recursive <code>NamespaceImport</code> is also performed on that <code>Namespace</code>.</p> + + + + + <p>The <code>importedElement</code> of a <code>MembershipImport</code> is the <code>memberElement</code> of its <code>importedMembership</code>.</p> + + + OCL2.0 + importedElement = importedMembership.memberElement + + + + + + <p>The <code>Membership</code> to be imported.</p> + + + + + + + + <p>Returns at least the <code>importedMembership</code>. If <code>isRecursive = true</code> and the <code>memberElement</code> of the <code>importedMembership</code> is a <code>Namespace</code>, then <code>Memberships</code> are also recursively imported from that <code>Namespace</code>.</p> + + + + + OCL2.0 + if not isRecursive or + not importedElement.oclIsKindOf(Namespace) or + excluded->includes(importedElement) +then Sequence{importedMembership} +else importedElement.oclAsType(Namespace). + visibleMemberships(excluded, true, importAll)-> + prepend(importedMembership) +endif + + + + + + + + + + + + + + + + <p>The Membership with a certain Element as its <code>memberElement</code>.</p> + + + + + + + + + <p>An Import with a certain <code>importedElement</code>.</p> + + + + + + + + <p>A <code>NamespaceImport</code> is an Import that imports <code>Memberships</code> from its <code>importedNamespace</code> into the <code>importOwningNamespace</code>. If <code> isRecursive = false</code>, then only the visible <code>Memberships</code> of the <code>importedNamespace</code> are imported. If <code> isRecursive = true</code>, then, in addition, <code>Memberships</code> are recursively imported from any <code>ownedMembers</code> of the <code>importedNamespace</code> that are <code>Namespaces</code>.</p> + + + + + <p>The <code>importedElement</code> of a <code>NamespaceImport</code> is its <code>importedNamespace</code>.</p> + + + OCL2.0 + importedElement = importedNamespace + + + + + + <p>The <code>Namespace</code> whose visible <code>Memberships</code> are imported by this <code>NamespaceImport</code>.</p> + + + + + + + + <p>Returns at least the visible <code>Memberships</code> of the <code>importedNamespace</code>. If <code>isRecursive = true</code>, then <code>Memberships</code> are also recursively imported from any <code>ownedMembers</code> of the <code>importedNamespace</code> that are themselves <code>Namespaces</code>.</p> + + + + + OCL2.0 + if excluded->includes(importedNamespace) then Sequence{} +else importedNamespace.visibleMemberships(excluded, isRecursive, isImportAll) + + + + + + + + + + + + + + + + <p>The Namespace that has a certain <code>membership</code>.</p> + + + + + + + + <p>A <code>Membership</code> is a <code>Relationship</code> between a <code>Namespace</code> and an <code>Element</code> that indicates the <code>Element</code> is a <code>member</code> of (i.e., is contained in) the Namespace. Any <code>memberNames</code> specify how the <code>memberElement</code> is identified in the <code>Namespace</code> and the <code>visibility</code> specifies whether or not the <code>memberElement</code> is publicly visible from outside the <code>Namespace</code>.</p> + +<p>If a <code>Membership</code> is an <code>OwningMembership</code>, then it owns its <code>memberElement</code>, which becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code>. Otherwise, the <code>memberNames</code> of a <code>Membership</code> are effectively aliases within the <code>membershipOwningNamespace</code> for an <code>Element</code> with a separate <code>OwningMembership</code> in the same or a different <code>Namespace</code>.</p> + +<p>&nbsp;</p> + + + + + <p>The <code>memberElementId</code> of a <code>Membership</code> is the <code>elementId</code> of its <code>memberElement</code>.</p> + + + OCL2.0 + memberElementId = memberElement.elementId + + + + + + <p>The <code>elementId</code> of the <code>memberElement</code>.</p> + + + + + + <p>The <code>Namespace</code> of which the <code>memberElement</code> becomes a <code>member</code> due to this <code>Membership</code>.</p> + + + + + + + + <p>The short name of the <code>memberElement</code> relative to the <code>membershipOwningNamespace</code>.</p> + + + + + + + + <p>The <code>Element</code> that becomes a <code>member</code> of the <code>membershipOwningNamespace</code> due to this <code>Membership</code>.</p> + + + + + + + + <p>The name of the <code>memberElement</code> relative to the <code>membershipOwningNamespace</code>.</p> + + + + + + + + + <p>Whether or not the <code>Membership</code> of the <code>memberElement</code> in the <code>membershipOwningNamespace</code> is publicly visible outside that <code>Namespace</code>.</p> + + + + + + + <p>Whether this <code>Membership</code> is distinguishable from a given <code>other</code> <code>Membership</code>. By default, this is true if this <code>Membership</code> has no <code>memberShortName</code> or <code>memberName</code>; or each of the <code>memberShortName</code> and <code>memberName</code> are different than both of those of the <code>other</code> <code>Membership</code>; or neither of the metaclasses of the <code>memberElement</code> of this <code>Membership</code> and the <code>memberElement</code> of the <code>other</code> <code>Membership</code> conform to the other. But this may be overridden in specializations of <code>Membership</code>.</p> + + + + + OCL2.0 + not (memberElement.oclKindOf(other.memberElement.oclType()) or + other.memberElement.oclKindOf(memberElement.oclType())) or +(shortMemberName = null or + (shortMemberName <> other.shortMemberName and + shortMemberName <> other.memberName)) and +(memberName = null or + (memberName <> other.shortMemberName and + memberName <> other.memberName))) + + + + + + + + + + + + + <p>The Namespace with a certain <code>importedMembership</code>.</p> + + + + + + + + + + <p>A NamespaceImport that has a certain <code>importedNamespace</code>.</p> + + + + + + + + <p>An <code>OwningMembership</code> is a <code>Membership</code> that owns its <code>memberElement</code> as a <code>ownedRelatedElement</code>. The <code>ownedMemberElement</code> becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code>.</p> + + + + + <p>The <code>ownedMemberName</code> of an <code>OwningMembership</code> is the <code>name</code> of its <code>ownedMemberElement</code>.</p> + + + OCL2.0 + ownedMemberName = ownedMemberElement.name + + + + + <p>The <code>ownedMemberShortName</code> of an <code>OwningMembership</code> is the <code>shortName</code> of its <code>ownedMemberElement</code>.</p> + + + OCL2.0 + ownedMemberShortName = ownedMemberElement.shortName + + + + + + <p>The <code>Element</code> that becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code> due to this <code>OwningMembership</code>.</p> + + + + + + + + <p>The <code>elementId</code> of the <code>ownedMemberElement</code>.</p> + + + + + + <p>The <code>shortName</code> of the <code>ownedMemberElement</code>.</p> + + + + + + + + <p>The <code>name</code> of the <code>ownedMemberElement</code>.</p> + + + + + + + + + <p>If the <code>ownedMemberElement</code> of this <code>OwningMembership</code> has a non-null <code>qualifiedName</code>, then return the string constructed by appending to that <code>qualifiedName</code> the string <code>"/owningMembership"</code>. Otherwise, return the <code>path</code> of the <code>OwningMembership</code> as specified for a <code>Relationship</code> in general. + + + + OCL2.0 + if ownedElement.qualifiedName <> null then + ownedElement.qualifiedName + '/owningMembership' +else self.oclAsType(Relationship).path() +endif + + + + + + + + + + + <p>The Namespace the has a certain Element as a <code>member</code>.</p> + + + + + + + + <p><code>VisibilityKind</code> is an enumeration whose literals specify the visibility of a <code>Membership</code> of an <code>Element</code> in a <code>Namespace</code> outside of that <code>Namespace</code>. Note that &quot;visibility&quot; specifically restricts whether an <code>Element</code> in a <code>Namespace</code> may be referenced by name from outside the <code>Namespace</code> and only otherwise restricts access to an <code>Element</code> as provided by specific constraints in the abstract syntax (e.g., preventing the import or inheritance of private <code>Elements</code>).</p> + + + + + <p>Indicates a <code>Membership</code> is not visible outside its owning <code>Namespace</code>.</p> + + + + + <p>An intermediate level of visibility between <code>public</code> and <code>private</code>. By default, it is equivalent to <code>private</code> for the purposes of normal access to and import of <code>Elements</code> from a <code>Namespace</code>. However, other <code>Relationships</code> may be specified to include <code>Memberships</code> with <code>protected</code> visibility in the list of <code>memberships</code> for a <code>Namespace</code> (e.g., <code>Specialization</code>).</p> + + + + + + <p>Indicates that a <code>Membership</code> is publicly visible outside its owning <code>Namespace</code>.</p> + + + + + + + <p>A MembershipImport that has a certain <code>importedMembership</code>.</p> + + + + + + + + + + <p>An <code>Element</code> is a constituent of a model that is uniquely identified relative to all other <code>Elements</code>. It can have <code>Relationships</code> with other <code>Elements</code>. Some of these <code>Relationships</code> might imply ownership of other <code>Elements</code>, which means that if an <code>Element</code> is deleted from a model, then so are all the <code>Elements</code> that it owns.</p> + + + + + <p>The <code>ownedElements</code> of an <code>Element</code> are the <code>ownedRelatedElements</code> of its <code>ownedRelationships</code>.</p> + + + OCL2.0 + ownedElement = ownedRelationship.ownedRelatedElement + + + + + <p>The <code>owner</code> of an <code>Element</code> is the <code>owningRelatedElement</code> of its <code>owningRelationship</code>.</p> + + + OCL2.0 + owner = owningRelationship.owningRelatedElement + + + + + <p>If this <code>Element</code> does not have an <code>owningNamespace</code>, then its <code>qualifiedName</code> is null. If the <code>owningNamespace</code> of this Element is a root <code>Namespace</code>, then the <code>qualifiedName</code> of the <code>Element</code> is the escaped name of the <code>Element</code> (if any). If the <code>owningNamespace</code> is non-null but not a root <code>Namespace</code>, then the <code>qualifiedName</code> of this <code>Element</code> is constructed from the <code>qualifiedName</code> of the <code>owningNamespace</code> and the escaped name of the <code>Element</code>, unless the <code>qualifiedName</code> of the <code>owningNamespace</code> is null or the escaped name is null, in which case the <code>qualifiedName</code> of this <code>Element</code> is also null. Further, if the <code>owningNamespace</code> has other <code>ownedMembers</code> with the same non-null name as this <code>Element</code>, and this <code>Element</code> is not the first, then the <code>qualifiedName</code> of this <code>Element</code> is null.</p> + + + OCL2.0 + qualifiedName = + if owningNamespace = null then null + else if name <> null and + owningNamespace.ownedMember-> + select(m | m.name = name).indexOf(self) <> 1 then null + else if owningNamespace.owner = null then escapedName() + else if owningNamespace.qualifiedName = null or + escapedName() = null then null + else owningNamespace.qualifiedName + '::' + escapedName() + endif endif endif endif + + + + + <p>The <code>documentation</code> of an <code>Element</code> is its <code>ownedElements</code> that are <code>Documentation</code>.</p> + + + OCL2.0 + documentation = ownedElement->selectByKind(Documentation) + + + + + <p>The <code>ownedAnnotations</code> of an <code>Element</code> are its <code>ownedRelationships</code> that are <code>Annotations</code>, for which the <code>Element</code> is the <code>annotatedElement</code>.</p> + + + OCL2.0 + ownedAnnotation = ownedRelationship-> + selectByKind(Annotation)-> + select(a | a.annotatedElement = self) + + + + + <p>The <code>name</code> of an <code>Element</code> is given by the result of the <code>effectiveName()</code> operation.</p> + + + OCL2.0 + name = effectiveName() + + + + + <p>If an <code>Element</code> has any <code>ownedRelationships</code> for which <code>isImplied = true</code>, then the <code>Element</code> must also have <code>isImpliedIncluded = true</code>. (Note that an <code>Element</code> <em>can</em> have <code>isImplied = true</code> even if no <code>ownedRelationships</code> have <code>isImplied = true</code>, indicating the <code>Element</code> simply has no implied <code>Relationships</code>.</p> + + + OCL2.0 + ownedRelationship->exists(isImplied) implies isImpliedIncluded + + + + + <p>An <code>Element</code> <code>isLibraryElement</code> if <code>libraryNamespace()</code> is not null.</p> + + + OCL2.0 + isLibraryElement = libraryNamespace() <> null + + + + + + <p>The <code>shortName</code> of an <code>Element</code> is given by the result of the <code>effectiveShortName()</code> operation.</p> + + + OCL2.0 + shortName = effectiveShortName() + + + + + <p>The <code>owningNamespace</code> of an <code>Element</code> is the <code>membershipOwningNamspace</code> of its <code>owningMembership</code> (if any).</p> + + + OCL2.0 + owningNamespace = + if owningMembership = null then null + else owningMembership.membershipOwningNamespace + endif + + + + + <p>The <code>textualRepresentations</code> of an <code>Element</code> are its <code>ownedElements</code> that are <code>TextualRepresentations</code>.</p> + + + OCL2.0 + textualRepresentation = ownedElement->selectByKind(TextualRepresentation) + + + + + <p>The <code>owningRelationship</code> of this <code>Element</code>, if that <code>Relationship</code> is a <code>Membership</code>.</p> + + + + + + + + <p>The Relationship for which this Element is an <tt>ownedRelatedElement</tt>, if any.</p> + + + + + + + + <p>The <code>Namespace</code> that owns this <code>Element</code>, which is the <code>membershipOwningNamespace</code> of the <code>owningMembership</code> of this <code>Element</code>, if any.</p> + + + + + + + + <p>The globally unique identifier for this Element. This is intended to be set by tooling, and it must not change during the lifetime of the Element.</p> + + + + + + <p>The Relationships for which this Element is the <tt>owningRelatedElement</tt>.</p> + + + + + + + <p>The owner of this Element, derived as the <code>owningRelatedElement</code> of the <code>owningRelationship</code> of this Element, if any.</p> + + + + + + + <p>The Elements owned by this Element, derived as the <tt>ownedRelatedElements</tt> of the <tt>ownedRelationships</tt> of this Element.</p> + + + + + + + + <p>The Documentation owned by this Element.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Element</code> that are <code>Annotations</code>, for which this <code>Element</code> is the <code>annotatedElement</code>.</code> + + + + + + + <p>The <code>TextualRepresentations</code> that annotate this <code>Element</code>.</p> + + + + + + + <p>Various alternative identifiers for this Element. Generally, these will be set by tools.</p> + + + + + + + + <p>An optional alternative name for the <code>Element</code> that is intended to be shorter or in some way more succinct than its primary <code>name</code>. It may act as a modeler-specified identifier for the <code>Element</code>, though it is then the responsibility of the modeler to maintain the uniqueness of this identifier within a model or relative to some other context.</p> + + + + + + + + + <p>The declared name of this <code>Element</code>.</p> + + + + + + + + + <p>The short name to be used for this <code>Element</code> during name resolution within its <code>owningNamespace</code>. This is derived using the <code>effectiveShortName()</code> operation. By default, it is the same as the <code>declaredShortName</code>, but this is overridden for certain kinds of <code>Elements</code> to compute a <code>shortName</code> even when the <code>declaredName</code> is null.</p> + + + + + + + + <p>The name to be used for this <code>Element</code> during name resolution within its <code>owningNamespace</code>. This is derived using the <code>effectiveName()</code> operation. By default, it is the same as the <code>declaredName</code>, but this is overridden for certain kinds of <code>Elements</code> to compute a <code>name</code> even when the <code>declaredName</code> is null.</p> + + + + + + + + <p>The full ownership-qualified name of this <code>Element</code>, represented in a form that is valid according to the KerML textual concrete syntax for qualified names (including use of unrestricted name notation and escaped characters, as necessary). The <code>qualifiedName</code> is null if this <code>Element</code> has no <code>owningNamespace</code> or if there is not a complete ownership chain of named <code>Namespaces</code> from a root <code>Namespace</code> to this <code>Element</code>. If the <code>owningNamespace</code> has other <code>Elements</code> with the same name as this one, then the <code>qualifiedName</code> is null for all such <code>Elements</code> other than the first.</p> + + + + + + + + <p>Whether all necessary implied Relationships have been included in the <code>ownedRelationships</code> of this Element. This property may be true, even if there are not actually any <code>ownedRelationships</code> with <code>isImplied = true</code>, meaning that no such Relationships are actually implied for this Element. However, if it is false, then <code>ownedRelationships</code> may <em>not</em> contain any implied Relationships. That is, either <em>all</em> required implied Relationships must be included, or none of them.</p> + + + + + + + <p>Whether this Element is contained in the ownership tree of a library model.</p> + + + + + + <p>Return <code>name</code>, if that is not null, otherwise the <code>shortName</code>, if that is not null, otherwise null. If the returned value is non-null, it is returned as-is if it has the form of a basic name, or, otherwise, represented as a restricted name according to the lexical structure of the KerML textual notation (i.e., surrounded by single quote characters and with special characters escaped).</p> + + + + + + + + + + <p>Return an effective <code>shortName</code> for this <code>Element</code>. By default this is the same as its <code>declaredShortName</code>.</p> + + + + OCL2.0 + declaredShortName + + + + + + + + + + + <p>Return an effective <code>name</code> for this <code>Element</code>. By default this is the same as its <code>declaredName</code>.</p> + + + + OCL2.0 + declaredName + + + + + + + + + + + <p>By default, return the library Namespace of the <code>owningRelationship</code> of this Element, if it has one.</p> + + + + OCL2.0 + if owningRelationship <> null then owningRelationship.libraryNamespace() +else null endif + + + + + + + + + + <p>Return a unique description of the location of this <code>Element</code> in the containment structure rooted in a root <code>Namespace</code>. If the <code>Element</code> has a non-null <code>qualifiedName</code>, then return that. Otherwise, if it has an <code>owningRelationship</code>, then return the string constructed by appending to the <code>path</code> of it's <code>owningRelationship</code> the character <code>/</code> followed by the string representation of its position in the list of <code>ownedRelatedElements</code> of the <code>owningRelationship</code> (indexed starting at 1). Otherwise, return the empty string.</p> + +<p>(Note that this operation is overridden for <code>Relationships</code> to use <code>owningRelatedElement</code> when appropriate.)</p> + + + + OCL2.0 + if qualifiedName <> null then qualifiedName +else if owningRelationship <> null then + owningRelationship.path() + '/' + + owningRelationship.ownedRelatedElement->indexOf(self).toString() + -- A position index shall be converted to a decimal string representation + -- consisting of only decimal digits, with no sign, leading zeros or leading + -- or trailing whitespace. +else '' +endif endif + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>Relationship</code> is an <code>Element</code> that relates other <code>Element</code>. Some of its <code>relatedElements</code> may be owned, in which case those <code>ownedRelatedElements</code> will be deleted from a model if their <code>owningRelationship</code> is. A <code>Relationship</code> may also be owned by another <code>Element</code>, in which case the <code>ownedRelatedElements</code> of the <code>Relationship</code> are also considered to be transitively owned by the <code>owningRelatedElement</code> of the <code>Relationship</code>.</p> + +<p>The <code>relatedElements</code> of a <code>Relationship</code> are divided into <code>source</code> and <code>target</code> <code>Elements</code>. The <code>Relationship</code> is considered to be directed from the <code>source</code> to the <code>target</code> <code>Elements</code>. An undirected <code>Relationship</code> may have either all <code>source</code> or all <code>target</code> <code>Elements</code>.</p> + +<p>A &quot;relationship <code>Element</code>&quot; in the abstract syntax is generically any <code>Element</code> that is an instance of either <code>Relationship</code> or a direct or indirect specialization of <code>Relationship</code>. Any other kind of <code>Element</code> is a &quot;non-relationship <code>Element</code>&quot;. It is a convention of that non-relationship <code>Elements</code> are <em>only</em> related via reified relationship <code>Elements</code>. Any meta-associations directly between non-relationship <code>Elements</code> must be derived from underlying reified <code>Relationship</code>.</p> + + + + + <p>The <code>relatedElements</code> of a <code>Relationship</code> consist of all of its <code>source</code> <code>Elements</code> followed by all of its <code>target</code> <code>Elements</code>.</p> + + + OCL2.0 + relatedElement = source->union(target) + + + + + + <p>The Elements that are related by this Relationship, derived as the union of the <code>source</code> and <code>target</code> Elements of the Relationship.</p> + + + + + + + <p>The <code>relatedElements</code> to which this Relationship is considered to be directed.</p> + + + + + + + + <p>The <code>relatedElements</c ode> from which this Relationship is considered to be directed.</p> + + + + + + + <p>The <tt>relatedElement</tt> of this Relationship that owns the Relationship, if any.</p> + + + + + + + <p>The <tt>relatedElements</tt> of this Relationship that are owned by the Relationship.</p> + + + + + + + <p>Whether this Relationship was generated by tooling to meet semantic rules, rather than being directly created by a modeler.</p> + + + + + + + <p>Return whether this Relationship has either an <code>owningRelatedElement</code> or <code>owningRelationship</code> that is a library element.</p> + + + + OCL2.0 + if owningRelatedElement <> null then owningRelatedElement.libraryNamespace() +else if owningRelationship <> null then owningRelationship.libraryNamespace() +else null endif endif + + + + + + + + + + <p>If the <code>owningRelationship</code> of the <code>Relationship</code> is null but its <code>owningRelatedElement</code> is non-null, construct the <code>path</code> using the position of the <code>Relationship</code> in the list of <code>ownedRelationships</code> of its <code>owningRelatedElement</code>. Otherwise, return the <code>path</code> of the <code>Relationship</code> as specified for an <code>Element</code> in general.</p> + + + + OCL2.0 + if owningRelationship = null and owningRelatedElement <> null then + owningRelatedElement.path() + '/' + + owningRelatedElement.ownedRelationship->indexOf(self).toString() + -- A position index shall be converted to a decimal string representation + -- consisting of only decimal digits, with no sign, leading zeros or leading + -- or trailing whitespace. +else self.oclAsType(Element).path() +endif + + + + + + + + + + + + + + + + + + + + The Core layer provides the semantic foundation for KerML. + + + + + + + <p>A Type with a certain <code>input</code>.</p> + + + + + + + + + <p>A Type that has an EndFeatureMembership in which the <code>endFeature</code> is a <code>memberFeature</code>.</p> + + + + + + + + + + <p>A Type with a certain <code>output</code>.</p> + + + + + + + + + + <p><code>Specialization</code> is a <code>Relationship</code> between two <code>Types</code> that requires all instances of the <code>specific</code> type to also be instances of the <code>general</code> Type (i.e., the set of instances of the <code>specific</code> Type is a <em>subset</em> of those of the <code>general</code> Type, which might be the same set).</p> + + + + + <p>The <code>specific</code> <code>Type</code> of a <code>Specialization</code> cannot be a conjugated <code>Type</code>.</p> + + + OCL2.0 + not specific.isConjugated + + + + + + <p>The <code>Type</code> that is the <code>specific</code> <code>Type</code> of this <code>Specialization</code> and owns it as its <code>owningRelatedElement</code>.</p> + + + + + + + + <p>A <code>Type</code> with a superset of all instances of the <code>specific</code> <code>Type</code>, which might be the same set.</p> + + + + + + + + <p>A <code>Type</code> with a subset of all instances of the <code>general</code> <code>Type</code>, which might be the same set.</p> + + + + + + + + + <p><code>FeatureDirectionKind</code> enumerates the possible kinds of <code>direction</code> that a <code>Feature</code> may be given as a member of a <code>Type</code>.</p> + + + + + <p>Values of the <code>Feature</code> on each instance of its domain are determined externally to that instance and used internally.</p> + + + + + + <p>Values of the <code>Feature</code> on each instance are determined either as <em>in</em> or <em>out</em> directions, or both.</p> + + + + + + <p>Values of the <code>Feature</code> on each instance of its domain are determined internally to that instance and used externally.</p> + + + + + + + + <p>The Specializations with a certain <code>specific</code> Type.</p> + + + + + + + + + + <p>The Specializations with a certain <code>general<code> Type.</p> + + + + + + + + <p>A <code>Type</code> is a <code>Namespace</code> that is the most general kind of <code>Element</code> supporting the semantics of classification. A <code>Type</code> may be a <code>Classifier</code> or a <code>Feature</code>, defining conditions on what is classified by the <code>Type</code> (see also the description of <code>isSufficient</code>).</p> + + + + + <p>The <code>ownedSpecializations</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Specializations</code> whose <code>special</code> <code>Type</code> is the owning <code>Type</code>.</p> + + + OCL2.0 + ownedSpecialization = ownedRelationship->selectByKind(Specialization)-> + select(s | s.special = self) + + + + + + <p>If a <code>Type</code> has an owned <code>Multiplicity</code>, then that is its <code>multiplicity</code>. Otherwise, if the <code>Type</code> has an <code>ownedSpecialization</code>, then its <code>multiplicity</code> is the <code>multiplicity</code> of the <code>general</code> <code>Type</code> of that <code>Specialization</code>.</p> + + + OCL2.0 + multiplicity = + let ownedMultiplicities: Sequence(Multiplicity) = + ownedMember->selectByKind(Multiplicity) in + if ownedMultiplicities->isEmpty() then null + else ownedMultiplicities->first() + endif + + + + + <p>The <code>ownedFeatureMemberships</code> of a <code>Type</code> are its <code>ownedMemberships</code> that are <code>FeatureMemberships</code>.</p> + + + OCL2.0 + ownedFeatureMembership = ownedRelationship->selectByKind(FeatureMembership) + + + + + <p>The <code>ownedConjugator</code> of a <code>Type</code> is the its single <code>ownedRelationship</code> that is a <code>Conjugation</code>.</p> + + + OCL2.0 + ownedConjugator = + let ownedConjugators: Sequence(Conjugator) = + ownedRelationship->selectByKind(Conjugation) in + if ownedConjugators->isEmpty() then null + else ownedConjugators->at(1) endif + + + + + <p>The <code>outputs</code> of a <code>Type</code> are those of its <code>features</code> that have a direction of <ode>out</code> or <code>inout</code> relative to the <code>Type</code>, taking conjugation into account.</p> + + + OCL2.0 + output = feature->select(f | + let direction: FeatureDirectionKind = directionOf(f) in + direction = FeatureDirectionKind::out or + direction = FeatureDirectionKind::inout) + + + + + <p>The <code>inputs</code> of a <code>Type</code> are those of its features that have a direction of <code>in</code> or <code>inout</code> relative to the <code>Type</code>, taking conjugation into account.</p> + + + OCL2.0 + input = feature->select(f | + let direction: FeatureDirectionKind = directionOf(f) in + direction = FeatureDirectionKind::_'in' or + direction = FeatureDirectionKind::inout) + + + + + <p>The <code>inheritedMemberships<code> of a <code>Type</code> are determined by the <code>inheritedMemberships()</code> operation.</p> + + + OCL2.0 + inheritedMembership = inheritedMemberships(Set{}, Set{}, false) + + + + + <p>A <code>Type</code> must directly or indirectly specialize <code><em>Base::Anything</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::Anything') + + + + + <p>The <code>directedFeatures</code> of a <code>Type</code> are those <code>features</code> for which the <code>direction</code> is non-null.</p> + + + OCL2.0 + directedFeature = feature->select(f | directionOf(f) <> null) + + + + + <p>The <code>features</code> of a <code>Type</code> are the <code>ownedMemberFeatures</code> of its <code>featureMemberships</code>. + + + OCL2.0 + feature = featureMembership.ownedMemberFeature + + + + + <p>The <code>featureMemberships</code> of a <code>Type</code> is the union of the <code>ownedFeatureMemberships</code> and those <code>inheritedMemberships</code> that are <code>FeatureMemberships</code>.</p> + + + OCL2.0 + featureMembership = ownedFeatureMembership->union( + inheritedMembership->selectByKind(FeatureMembership)) + + + + + <p>The <code>ownedFeatures</code> of a <code>Type</code> are the <code>ownedMemberFeatures</code> of its <code>ownedFeatureMemberships</code>. + + + English + ownedFeature = ownedFeatureMembership.ownedMemberFeature + + + + + <p>The <code>differencingTypes</code> of a <code>Type</code> are the <code>differencingTypes</code> of its <code>ownedDifferencings</code>, in the same order.</p> + + + English + differencingType = ownedDifferencing.differencingType + + + + + <p>A <code>Type</code> cannot be one of its own <code>intersectingTypes</code>.</p> + + + English + intersectingType->excludes(self) + + + + + <p>A <code>Type</code> cannot be one of its own <code>differencingTypes</code>.</p> + + + English + differencingType->excludes(self) + + + + + <p>The <code>unioningTypes</code> of a <code>Type</code> are the <code>unioningTypes</code> of its <code>ownedUnionings</code>.<p> + + + OCL2.0 + unioningType = ownedUnioning.unioningType + + + + + <p>A <code>Type</code> cannot be one of its own <code>unioningTypes</code>.</p> + + + English + unioningType->excludes(self) + + + + + <p>The <code>intersectingTypes</code> of a <code>Type</code> are the <code>intersectingTypes</code> of its <code>ownedIntersectings</code>.</p> + + + OCL2.0 + intersectingType = ownedIntersecting.intersectingType + + + + + A <code>Type</code> must have at most one owned <code>Conjugation</code> <code>Relationship</code>. + + + OCL2.0 + ownedRelationship->selectByKind(Conjugation)->size() <= 1 + + + + + <p>A <code>Type</code> may have at most one <code>ownedMember</code> that is a <code>Multiplicity</code>.</p> + + + OCL2.0 + ownedMember->selectByKind(Multiplicity)->size() <= 1 + + + + + <p>The <code>endFeatures</code> of a <code>Type</code> are all its <code>features</code> for which <code>isEnd = true</code>.</p> + + + OCL2.0 + endFeature = feature->select(isEnd) + + + + + <p>The <code>ownedDisjoinings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Disjoinings</code>.</p> + + + OCL2.0 + ownedDisjoining = + ownedRelationship->selectByKind(Disjoining) + + + + + <p>The <code>ownedUnionings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Unionings</code>.</p> + + + OCL2.0 + ownedUnioning = + ownedRelationship->selectByKind(Unioning) + + + + + <p>The <code>ownedIntersectings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Intersectings</code>.</p> + + + OCL2.0 + ownedRelationship->selectByKind(Intersecting) + + + + + <p>The <code>ownedDifferencings</code> of a <code>Type</code> are its <code>ownedRelationships</code> that are <code>Differencings</code>.</p> + + + OCL2.0 + ownedDifferencing = + ownedRelationship->selectByKind(Differencing) + + + + + <p>The <code>ownedEndFeatures</code> of a <code>Type</code> are all its <code>ownedFeatures</code> for which <code>isEnd = true</code>.</p> + + + OCL2.0 + ownedEndFeature = ownedFeature->select(isEnd) + + + + + <p>The <code>inheritedFeatures</code> of this <code>Type</code> are the <code>memberFeatures</code> of the <code>inheritedMemberships</code> that are <code>FeatureMemberships</code>.</p> + + + OCL2.0 + inheritedFeature = inheritedMemberships-> + selectByKind(FeatureMembership).memberFeature + + + + + A <code>Type</code> must not have exactly one <code>ownedUnioning</code>. + + + OCL2.0 + ownedUnioning->size() <> 1 + + + + + A <code>Type</code> must not have exactly one <code>ownedIntersecting</code>. + + + OCL2.0 + ownedIntersecting->size() <> 1 + + + + + A <code>Type</code> must not have exactly one <code>ownedDifferencing</code>. + + + OCL2.0 + ownedDifferencing->size() <> 1 + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Specializations</code>, for which the <code>Type</code> is the <code>specific</code> <code>Type</code>.</p> + + + + + + + + <p>The <code>ownedMemberships</code> of this <code>Type</code> that are <code>FeatureMemberships</code>, for which the <code>Type</code> is the <code>owningType</code>. Each such <code>FeatureMembership</code> identifies an <code>ownedFeature</code> of the <code>Type</code>.</p> + + + + + + + + <p>The <code>ownedMemberFeatures</code> of the <code>featureMemberships</code> of this <code>Type</code>.</p> + + + + + + + + <p>The <code>ownedMemberFeatures</code> of the <code>ownedFeatureMemberships</code> of this <code>Type</code>.</p> + + + + + + + + <p>All <code>features</code> related to this <code>Type</code> by <code>FeatureMemberships</code> that have <code>direction</code> <code>in</code> or <code>inout</code>.</p> + + + + + + + + <p>All <code>features</code> related to this <code>Type</code> by <code>FeatureMemberships</code> that have <code>direction</code> <code>out</code> or <code>inout</code>.</p> + + + + + + + + <p>Indicates whether instances of this <code>Type</code> must also be instances of at least one of its specialized <code>Types</code>.</p> + + + + + + + + <p>All <code>Memberships</code> inherited by this <code>Type</code> via <code>Specialization</code> or <code>Conjugation</code>. These are included in the derived union for the <code>memberships</code> of the <code>Type</code>.</p> + + + + + + + + <p>All <code>features</code> of this <code>Type</code> with <code>isEnd = true</code>.</p> + + + + + + + <p>All <code>endFeatures</code> of this <code>Type</code> that are <code>ownedFeatures</code>.</p> + + + + + + + + <p>Whether all things that meet the classification conditions of this <code>Type</code> must be classified by the <code>Type</code>.</p> + +<p>(A <code>Type</code>&nbsp;gives conditions that must be met by whatever it classifies, but when <code>isSufficient</code> is false, things may meet those conditions but still not be classified by the <code>Type</code>. For example, a Type <code><em>Car</em></code> that is not sufficient could require everything it classifies to have four wheels, but not all four wheeled things would classify as cars. However, if the <code>Type</code> <code><em>Car</em></code> were sufficient, it would classify all four-wheeled things.)</p> + + + + + + + + <p>A <code>Conjugation</code> owned by this <code>Type</code> for which the <code>Type</code> is the <code>originalType</code>.</p> + + + + + + + + <p>Indicates whether this <code>Type</code> has an <code>ownedConjugator</code>.</p> + + + + + + + <p>All the <code>memberFeatures</code> of the <code>inheritedMemberships</code> of this <code>Type</code> that are <code>FeatureMemberships</code>.</p> + + + + + + + + <p>An <code>ownedMember</code> of this <code>Type</code> that is a <code>Multiplicity</code>, which constraints the cardinality of the <code>Type</code>. If there is no such <code>ownedMember</code>, then the cardinality of this <code>Type</code> is constrained by all the <code>Multiplicity</code> constraints applicable to any direct supertypes.</p> + + + + + + + <p>The interpretations of a <code>Type</code> with <code>unioningTypes</code> are asserted to be the same as those of all the <code>unioningTypes</code> together, which are the <code>Types</code> derived from the <code>unioningType</code> of the <code>ownedUnionings</code> of this <code>Type</code>. For example, a <code>Classifier</code> for people might be the union of <code>Classifiers</code> for all the sexes. Similarly, a feature for people&#39;s children might be the union of features dividing them in the same ways as people in general.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Intersectings</code>, have the <code>Type</code> as their <code>typeIntersected</code>.</p> + + + + + + + + <p>The interpretations of a <code>Type</code> with <code>intersectingTypes</code> are asserted to be those in common among the <code>intersectingTypes</code>, which are the <code>Types</code> derived from the <code>intersectingType</code> of the <code>ownedIntersectings</code> of this <code>Type</code>. For example, a <code>Classifier</code> might be an intersection of <code>Classifiers</code> for people of a particular sex and of a particular nationality. Similarly, a feature for people&#39;s children of a particular sex might be the intersection of a <code>Feature</code> for their children and a <code>Classifier</code> for people of that sex (because the interpretations of the children <code>Feature</code> that identify those of that sex are also interpretations of the Classifier for that sex).</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Unionings</code>, having the <code>Type</code> as their <code>typeUnioned</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Disjoinings</code>, for which the <code>Type</code> is the <code>typeDisjoined</code> <code>Type</code>.</p> + + + + + + + + <p>The <code>FeatureMemberships</code> for <code>features</code> of this <code>Type</code>, which include all <code>ownedFeatureMemberships</code> and those <code>inheritedMemberships</code> that are <code>FeatureMemberships</code> (but does <em>not</em> include any <code>importedMemberships</code>).</p> + + + + + + + + <p>The interpretations of a <code>Type</code> with <code>differencingTypes</code> are asserted to be those of the first of those <code>Types</code>, but not including those of the remaining <code>Types</code>. For example, a <code>Classifier</code> might be the difference of a <code>Classifier</code> for people and another for people of a particular nationality, leaving people who are not of that nationality. Similarly, a feature of people might be the difference between a feature for their children and a <code>Classifier</code> for people of a particular sex, identifying their children not of that sex (because the interpretations of the children <code>Feature</code> that identify those of that sex are also interpretations of the <code>Classifier</code> for that sex).</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Differencings</code>, having this <code>Type</code> as their <code>typeDifferenced</code>.</p> + + + + + + + + <p>The <code>features</code> of this <code>Type</code> that have a non-null <code>direction</code>.</p> + + + + + + + + <p>The visible <code>Memberships</code> of a <code>Type</code> include <code>inheritedMemberships</code>.</p> + + + + + OCL2.0 + let visibleMemberships : OrderedSet(Membership) = + self.oclAsType(Namespace). + visibleMemberships(excluded, isRecursive, includeAll) in +let visibleInheritedMemberships : OrderedSet(Membership) = + inheritedMemberships(excluded->including(self), Set{}, isRecursive)-> + select(includeAll or visibility = VisibilityKind::public) in +visibleMemberships->union(visibleInheritedMemberships) + + + + + + + + + + + + + + + + + + + + <p>Return the <code>Memberships</code> inheritable from supertypes of this <code>Type</code> with redefined <code>Features</code> removed. When computing inheritable <code>Memberships</code>, exclude <code>Imports</code> of <code>excludedNamespaces</code>, <code>Specializations</code> of <code>excludedTypes</code>, and, if <code>excludeImplied = true</code>, all implied <code>Specializations</code>.</p> + + + + + OCL2.0 + removeRedefinedFeatures( + inheritableMemberships(excludedNamespaces, excludedTypes, excludeImplied)) + + + + + + + + + + + + + + + + + + + + + <p>Return all the non-<code>private</code> <code>Memberships</code> of all the supertypes of this <code>Type</code>, excluding any supertypes that are this <code>Type</code> or are in the given set of <code>excludedTypes</code>. If <code>excludeImplied = true</code>, then also transitively exclude any supertypes from implied <code>Specializations</code>.</p> + + + + OCL2.0 + let excludingSelf : Set(Type) = excludedType->including(self) in +supertypes(excludeImplied)->reject(t | excludingSelf->includes(t)). + nonPrivateMemberships(excludedNamespaces, excludingSelf, excludeImplied) + + + + + + + + + + + + + + + + + + + + + + <p>Return the <code>public</code>, <code>protected</code> and inherited <code>Memberships</code> of this <code>Type</code>. When computing imported <code>Memberships</code>, exclude the given set of <code>excludedNamespaces</code>. When computing inherited <code>Memberships</code>, exclude <code>Types</code> in the given set of <code>excludedTypes</code>. If <code>excludeImplied = true</code>, then also exclude any supertypes from implied <code>Specializations</code>.</p> + + + + OCL2.0 + let publicMemberships : OrderedSet(Membership) = + membershipsOfVisibility(VisibilityKind::public, excludedNamespaces) in +let protectedMemberships : OrderedSet(Membership) = + membershipsOfVisibility(VisibilityKind::protected, excludedNamespaces) in +let inheritedMemberships : OrderedSet(Membership) = + inheritedMemberships(excludedNamespaces, excludedTypes, excludeImplied) in +publicMemberships-> + union(protectedMemberships)-> + union(inheritedMemberships) + + + + + + + + + + + + + + + + + + + + + <p>Return a subset of <code>memberships</code>, removing those <code>Memberships</code> whose <code>memberElements</code> are <code>Features</code> and for which either of the following two conditions holds:</p> + +<ol> + <li>The <code>memberElement</code> of the <code>Membership</code> is included in redefined <code>Features</code> of another <code>Membership</code> in <code>memberships</code>.</li> + <li>One of the redefined <code>Features</code> of the <code>Membership</code> is a directly <code>redefinedFeature</code> of an <code>ownedFeature</code> of this <code>Type</code>.</li> +</ol> + +<p>For this purpose, the redefined <code>Features</code> of a <code>Membership</code> whose <code>memberElement</code> is a <code>Feature</code> includes the <code>memberElement</code> and all <code>Features</code> directly or indirectly redefined by the <code>memberElement</code>.</p> + + + + OCL2.0 + let reducedMemberships : Sequence(Membership) = + memberships->reject(mem1 | + memberships->excluding(mem1)-> + exists(mem2 | allRedefinedFeaturesOf(mem2)-> + includes(mem1.memberElement))) in +let redefinedFeatures : Set(Feature) = + ownedFeature.redefinition.redefinedFeature->asSet() in +reducedMemberships->reject(mem | allRedefinedFeaturesOf(mem)-> + exists(feature | redefinedFeatures->includes(feature))) + + + + + + + + + + + + + + <p>If the <code>memberElement</code> of the given <code>membership</code> is a <code>Feature</code>, then return all <code>Features</code> directly or indirectly redefined by the <code>memberElement</code>.</p> + + + + OCL2.0 + if not membership.memberElement.oclIsType(Feature) then Set{} +else membership.memberElement.oclAsType(Feature).allRedefinedFeatures() +endif + + + + + + + + + + + <p>If the given <code>feature</code> is a <code>feature</code> of this <code>Type</code>, then return its direction relative to this <code>Type</code>, taking conjugation into account.</p> + + + + + OCL2.0 + directionOfExcluding(f, Set{}) + + + + + + + + + + + <p>Return the direction of the given <code>feature</code> relative to this <code>Type</code>, excluding a given set of <code>Types</code> from the search of supertypes of this <code>Type</code>.</p> + + + + OCL2.0 + let excludedSelf : Set(Type) = excluded->including(self) in +if feature.owningType = self then feature.direction +else + let directions : Sequence(FeatureDirectionKind) = + supertypes(false)->excluding(excludedSelf). + directionOfExcluding(feature, excludedSelf)-> + select(d | d <> null) in + if directions->isEmpty() then null + else + let direction : FeatureDirectionKind = directions->first() in + if not isConjugated then direction + else if direction = FeatureDirectionKind::_'in' then FeatureDirectionKind::out + else if direction = FeatureDirectionKind::out then FeatureDirectionKind::_'in' + else direction + endif endif endif endif +endif + + + + + + + + + + + + + + + <p>If this <code>Type</code> is conjugated, then return just the <code>originalType</code> of the <code>Conjugation</code>. Otherwise, return the <code>general</code> <code>Types</code> from all <code>ownedSpecializations</code> of this type, if <code>excludeImplied = false</code>, or all non-implied <code>ownedSpecializations</code>, if <code>excludeImplied = true</code>.</p> + + + + OCL2.0 + if isConjugated then Sequence{conjugator.originalType} +else if not excludeImplied then ownedSpecialization.general +else ownedSpecialization->reject(isImplied).general +endif +endif + + + + + + + + + + + + + <p>Return this <code>Type</code> and all <code>Types</code> that are directly or transitively supertypes of this <code>Type</code> (as determined by the <code>supertypes</code> operation with <code>excludeImplied = false</code>).</p> + + + + + OCL2.0 + OrderedSet{self}->closure(supertypes(false)) + + + + + + + + + + <p>Check whether this <code>Type</code> is a direct or indirect specialization of the given <code>supertype<code>.</p> + + + + OCL2.0 + if isConjugated then + ownedConjugator.originalType.specializes(supertype) +else + allSupertypes()->includes(supertype) +endif + + + + + + + + + + <p>Check whether this <code>Type</code> is a direct or indirect specialization of the named library <code>Type</code>. <code>libraryTypeName</code> must conform to the syntax of a KerML qualified name and must resolve to a <code>Type</code> in global scope.</p> + + + + + OCL2.0 + let mem : Membership = resolveGlobal(libraryTypeName) in +mem <> null and mem.memberElement.oclIsKindOf(Type) and +specializes(mem.memberElement.oclAsType(Type)) + + + + + + + + + + + + <p>By default, this <code>Type</code> is compatible with an <code>otherType</code> if it directly or indirectly specializes the <code>otherType</code>.</p> + + + + OCL2.0 + specializes(otherType) + + + + + + + + + + <p>Return the owned or inherited <code>Multiplicities</code> for this <code>Type<./code>.</p> + + + + OCL2.0 + if multiplicity <> null then OrderedSet{multiplicity} +else + ownedSpecialization.general->closure(t | + if t.multiplicity <> null then OrderedSet{} + else ownedSpecialization.general + )->select(multiplicity <> null).multiplicity->asOrderedSet() +endif + + + + + + + + + + + + <p>A Type that owns or inherits a FeatureMembership Relationship with the <code>feature</code>.</p> + + + + + + + + <p>A <code>FeatureMembership</code> is an <code>OwningMembership</code> between an <code>ownedMemberFeature</code> and an <code>owningType</code>. If the <code>ownedMemberFeature</code> has <code>isVariable = false</code>, then the <code>FeatureMembership</code> implies that the <code>owningType</code> is also a <code>featuringType</code> of the <code>ownedMemberFeature</code>. If the <code>ownedMemberFeature</code> has <code>isVariable = true</code>, then the <code>FeatureMembership</code> implies that the <code>ownedMemberFeature</code> is featured by the <em><code>snapshots</code></em> of the <code>owningType</code>, which must specialize the Kernel Semantic Library base class <em><code>Occurrence</code></em>.</p> + + + + + + <p>The <code>Type</code> that owns this <code>FeatureMembership</code>.</p> + + + + + + + + <p>The <code>Feature</code> that this <code>FeatureMembership</code> relates to its <code>owningType</code>, making it an <code>ownedFeature</code> of the <code>owningType</code>.</p> + + + + + + + + + + <p>The Type that inherits the <code>inheritedMembership</code>.</p> + + + + + + + + + + <p>A Type that has an <code>inheritedMembership</code> with the <code>inheritedFeature</code> as its <code>memberFeature</code>.</p> + + + + + + + + + + <p>The Conjugations with a certain Type as the <code>originalType</code>.</p> + + + + + + + + <p><code>Conjugation</code> is a <code>Relationship</code> between two types in which the <code>conjugatedType</code> inherits all the <code>Features</code> of the <code>originalType</code>, but with all <code>input</code> and <code>output</code> <code>Features</code> reversed. That is, any <code>Features</code> with a <code>direction</code> <em>in</em> relative to the <code>originalType</code> are considered to have an effective <code>direction</code> of <em>out</em> relative to the <code>conjugatedType</code> and, similarly, <code>Features</code> with <code>direction</code> <em>out</em> in the <code>originalType</code> are considered to have an effective <code>direction</code> of <em>in</em> in the <code>conjugatedType</code>. <code>Features</code> with <code>direction</code> <em>inout</em>, or with no <code>direction</code>, in the <code>originalType</code>, are inherited without change.</p> + +<p>A <code>Type</code> may participate as a <code>conjugatedType</code> in at most one <code>Conjugation</code> relationship, and such a <code>Type</code> may not also be the <code>specific</code> <code>Type</code> in any <code>Specialization</code> relationship.</p> + + + + + + <p>The <code>Type</code> to be conjugated.</p> + + + + + + + + <p>The <code>Type</code> that is the result of applying <code>Conjugation</code> to the <code>originalType</code>.</p> + + + + + + + + <p>The <code>conjugatedType</code> of this <code>Conjugation</code> that is also its <code>owningRelatedElement</code>.</p> + + + + + + + + + + <p>The Conjugation corresponding to the <code>conjugatedType</code>.</p> + + + + + + + + <p>A <code>Multiplicity</code> is a <code>Feature</code> whose co-domain is a set of natural numbers giving the allowed cardinalities of each <code>typeWithMultiplicity</code>. The <em>cardinality</em> of a <code>Type</code> is defined as follows, depending on whether the <code>Type</code> is a <code>Classifier</code> or <code>Feature</code>. +<ul> +<li><code>Classifier</code> – The number of basic instances of the <code>Classifier</code>, that is, those instances representing things, which are not instances of any subtypes of the <code>Classifier</code> that are <code>Features</code>. +<li><code>Features</code> – The number of instances with the same featuring instances. In the case of a <code>Feature</code> with a <code>Classifier</code> as its <code>featuringType</code>, this is the number of values of <code>Feature</code> for each basic instance of the <code>Classifier</code>. Note that, for non-unique <code>Features</code>, all duplicate values are included in this count.</li> +</ul> + +<p><code>Multiplicity</code> co-domains (in models) can be specified by <code>Expression</code> that might vary in their results. If the <code>typeWithMultiplicity</code> is a <code>Classifier</code>, the domain of the <code>Multiplicity</code> shall be <em><code>Base::Anything</code></em>. If the <code>typeWithMultiplicity</code> is a <code>Feature</code>, the <code>Multiplicity</code> shall have the same domain as the <code>typeWithMultiplicity</code>.</p> + + + + + <p>If the <code>owningType</code> of a <code>Multiplicity</code> is a <code>Feature</code>, then the <code>Multiplicity</code> must have the same <code>featuringTypes</code> as that <code>Feature</code>. Otherwise, it must have no <code>featuringTypes</code> (meaning that it is implicitly featured by the base <code>Classifier</code> <em><code>Anything</code></em>).</p> + + + OCL2.0 + if owningType <> null and owningType.oclIsKindOf(Feature) then + featuringType = + owningType.oclAsType(Feature).featuringType +else + featuringType->isEmpty() +endif + + + + + <p>A <code>Multiplicity</code> must directly or indirectly specialize the <code>Feature</code> <code><em>Base::naturals</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::naturals') + + + + + + + + <p>The Disjoinings that identify this Type as their <code>disjoiningType</code>.</p> + + + + + + + + <p>A <code>Disjoining</code> is a <code>Relationship</code> between <code>Types</code> asserted to have interpretations that are not shared (disjoint) between them, identified as <code>typeDisjoined</code> and <code>disjoiningType</code>. For example, a <code>Classifier</code> for mammals is disjoint from a <code>Classifier</code> for minerals, and a <code>Feature</code> for people&#39;s parents is disjoint from a <code>Feature</code> for their children.</p> + + + + + + <p><code>Type</code> asserted to be disjoint with the <code>disjoiningType</code>.</p> + + + + + + + + <p><code>Type</code> asserted to be disjoint with the <code>typeDisjoined</code>.</p> + + + + + + + + <p>A <code>typeDisjoined</code> that is also an <code>owningRelatedElement</code>.</p> + + + + + + + + + + + + + + + <p>The Disjoinings that identify this Type as their <code>typeDisjoined</code>.</p> + + + + + + + + + + + <p>A Type that owns or inherits the <code>featureMembership</code>.</p> + + + + + + + + + <p>The Differencings that identify this Type as their <code>differencingType</code>.</p> + + + + + + + + + <p>The Types that include this one among their <code>unioningTypes</code>.</p> + + + + + + + + + <p>The Unionings that identify all these Types as their <code>unioningType</code>.</p> + + + + + + + + + <p>The Types that include this one among their <code>intersectingTypes</code>.</p> + + + + + + + + + + <p>The Types that include this one among their <code>differencingTypes</code>.</p> + + + + + + + + <p><code>Differencing</code> is a <code>Relationship</code> that makes its <code>differencingType</code> one of the <code>differencingTypes</code> of its <code>typeDifferenced</code>.</p> + + + + + + <p><code>Type</code> with interpretations partly determined by <code>differencingType</code>, as described in <code>Type::differencingType</code>.</p> + + + + + + + + <p><code>Type</code> that partly determines interpretations of <code>typeDifferenced</code>, as described in <code>Type::differencingType</code>.</p> + + + + + + + + + + + <p>The Intersectings that identify this Type as their <code>intersectingType</code>.</p> + + + + + + + + <p><code>Unioning</code> is a <code>Relationship</code> that makes its <code>unioningType</code> one of the <code>unioningTypes</code> of its <code>typeUnioned</code>.</p> + + + + + + <p><code>Type</code> with interpretations partly determined by <code>unioningType</code>, as described in <code>Type::unioningType</code>.</p> + + + + + + + + <p><code>Type</code> that partly determines interpretations of <code>typeUnioned</code>, as described in <code>Type::unioningType</code>.</p> + + + + + + + + + + <p><code>Intersecting</code> is a <code>Relationship</code> that makes its <code>intersectingType</code> one of the <code>intersectingTypes</code> of its <code>typeIntersected</code>.</p> + + + + + + <p><code>Type</code> with interpretations partly determined by <code>intersectingType</code>, as described in <code>Type::intersectingType</code>.</p> + + + + + + + + <p><code>Type</code> that partly determines interpretations of <code>typeIntersected</code>, as described in <code>Type::intersectingType</code>.</p> + + + + + + + + + + + + <p>The Subclassifications with a certain <code>subclassifier</code>.</p> + + + + + + + + + <p><code>Subclassification</code> is <code>Specialization</code> in which both the <code>specific</code> and <code>general</code> <code>Types</code> are <code>Classifier</code>. This means all instances of the specific <code>Classifier</code> are also instances of the general <code>Classifier</code>.</p> + + + + + + <p>The more <code>general</code> Classifier in this <code>Subclassification</code>.</p> + + + + + + + + <p>The more specific <code>Classifier</code> in this <code>Subclassification</code>.</p> + + + + + + + + <p>The <code>Classifier</code> that owns this <code>Subclassification</code> relationship, which must also be its <code>subclassifier</code>.</p> + + + + + + + + + <p>A <code>Classifier</code> is a <code>Type</code> that classifies:</p> + +<ul> + <li>Things (in the universe) regardless of how <code>Features</code> relate them. (These are interpreted semantically as sequences of exactly one thing.)</li> + <li>How the above things are related by <code>Features.</code> (These are interpreted semantically as sequences of multiple things, such that the last thing in the sequence is also classified by the <code>Classifier</code>. Note that this means that a <code>Classifier</code> modeled as specializing a <code>Feature</code> cannot classify anything.)</li> +</ul> + + + + + + <p>The <code>ownedSubclassifications</code> of a <code>Classifier</code> are its <code>ownedSpecializations</code> that are <code>Subclassifications</code>.</p> + + + OCL2.0 + ownedSubclassification = + ownedSpecialization->selectByKind(Subclassification) + + + + + <p>If a <code>Classifier</code> has a <code>multiplicity</code>, then the <code>multiplicity</code> must have no <code>featuringTypes</code> (meaning that its domain is implicitly <em>Base::Anything</em>).</p> + + + OCL2.0 + multiplicity <> null implies multiplicity.featuringType->isEmpty() + + + + + + <p>The <code>ownedSpecializations</code> of this <code>Classifier</code> that are <code>Subclassifications</code>, for which this <code>Classifier</code> is the <code>subclassifier</code>.</p> + + + + + + + + + + <p>The Subclassifications with a certain <code>superclassifier</code>.</p> + + + + + + + + + + <p><code>Redefinition</code> is a kind of <code>Subsetting</code> that requires the <code>redefinedFeature</code> and the <code>redefiningFeature</code> to have the same values (on each instance of the domain of the <code>redefiningFeature</code>). This means any restrictions on the <code>redefiningFeature</code>, such as <code>type</code> or <code>multiplicity</code>, also apply to the <code>redefinedFeature</code> (on each instance of the domain of the <code>redefiningFeature</code>), and vice versa. The <code>redefinedFeature</code> might have values for instances of the domain of the <code>redefiningFeature</code>, but only as instances of the domain of the <code>redefinedFeature</code> that happen to also be instances of the domain of the <code>redefiningFeature</code>. This is supported by the constraints inherited from <code>Subsetting</code> on the domains of the <code>redefiningFeature</code> and <code>redefinedFeature</code>. However, these constraints are narrowed for <code>Redefinition</code> to require the <code>owningTypes</code> of the <code>redefiningFeature</code> and <code>redefinedFeature</code> to be different and the <code>redefinedFeature</code> to not be inherited into the <code>owningNamespace</code> of the <code>redefiningFeature</code>.This enables the <code>redefiningFeature</code> to have the same name as the <code>redefinedFeature</code>, if desired.</p> + + + + + <p>The <code>redefiningFeature</code> of a <code>Redefinition</code> must have at least one <code>featuringType</code> that is not also a <code>featuringType</code> of the <code>redefinedFeature</code>.</p> + + + OCL2.0 + let anythingType: Type = + redefiningFeature.resolveGlobal('Base::Anything').modelElement.oclAsType(Type) in +-- Including "Anything" accounts for implicit featuringType of Features +-- with no explicit featuringType. +let redefiningFeaturingTypes: Set(Type) = + if redefiningFeature.isVariable then Set{redefiningFeature.owningType} + else redefiningFeature.featuringTypes->asSet()->including(anythingType) + endif in +let redefinedFeaturingTypes: Set(Type) = + if redefinedFeature.isVariable then Set{redefinedFeature.owningType} + else redefinedFeature.featuringTypes->asSet()->including(anythingType) + endif in +redefiningFeaturingTypes <> redefinedFeaturingType + + + + + <p>If the <code>redefinedFeature</code> of a <code>Redefinition</code> has a direction of <code>in</code> or <code>out</code> (relative to any <code>featuringType</code> of the <code>redefiningFeature</code> or the <code>owningType</code>, if the <code>redefiningFeature</code> has <code>isVariable = true</code>), then the <code>redefiningFeature</code> must have the same <code>direction</code>. If the <code>redefinedFeature</code> has a direction of <code>inout</code>, then the <code>redefiningFeature</code> must have a non-null <code>direction</code>. (Note: the direction of the <code>redefinedFeature</code> relative to a <code>featuringType</code> of the <code>redefiningFeature</code> is the direction it would have if it had been inherited and not redefined.)</p> + + + OCL2.0 + let featuringTypes : Sequence(Type) = + if redefiningFeature.isVariable then Sequence{redefiningFeature.owningType} + else redefiningFeature.featuringType + endif in +featuringTypes->forAll(t | + let direction : FeatureDirectionKind = t.directionOf(redefinedFeature) in + ((direction = FeatureDirectionKind::_'in' or + direction = FeatureDirectionKind::out) implies + redefiningFeature.direction = direction) + and + (direction = FeatureDirectionKind::inout implies + redefiningFeature.direction <> null)) + + + + + <p>If the redefinedFeature of a Redefinition has isEnd = true, then the redefiningFeature must have isEnd = true.</p> + + + OCL2.0 + redefinedFeature.isEnd implies redefiningFeature.isEnd + + + + + + <p>The <code>Feature</code> that is redefining the <code>redefinedFeature</code> of this <code>Redefinition</code>.</p> + + + + + + + + <p>The <code>Feature</code> that is redefined by the <code>redefiningFeature</code> of this <code>Redefinition</code>.</p> + + + + + + + + + + <p>The FeatureTyping relating this Type to a Feature.</p> + + + + + + + + + <p>The Features for which a certain Type is a <code>type</code>.</p> + + + + + + + + + <p>The FeatureTypings for which a certain Feature is the <code>typedFeature</code>.</p> + + + + + + + + + + <p>The Feature that owns this Redefinition relationship, which must also be its <code>redefiningFeature</code>.</p> + + + + + + + + + <p>The Redefinitions with a certain Feature as the <code>redefinedFeature</code>.</p> + + + + + + + + + <p>The Subsettings with a certain Feature as the <code>subsettingFeature</code>.</p> + + + + + + + + <p>A <code>Feature</code> is a <code>Type</code> that classifies relations between multiple things (in the universe). The domain of the relation is the intersection of the <code>featuringTypes</code> of the <code>Feature</code>. (The domain of a <code>Feature</code> with no <code>featuringTyps</code> is implicitly the most general <code>Type</code> <em><code>Base::Anything</code></em> from the Kernel Semantic Library.) The co-domain of the relation is the intersection of the <code>types</code> of the <code>Feature</code>. + +<p>In the simplest cases, the <code>featuringTypes</code> and <code>types</code> are <code>Classifiers</code> and the <code>Feature</code> relates two things, one from the domain and one from the range. Examples include cars paired with wheels, people paired with other people, and cars paired with numbers representing the car length.</p> + +<p>Since <code>Features</code> are <code>Types</code>, their <code>featuringTypes</code> and <code>types</code> can be <code>Features</code>. In this case, the <code>Feature</code> effectively classifies relations between relations, which can be interpreted as the sequence of things related by the domain <code>Feature</code> concatenated with the sequence of things related by the co-domain <code>Feature</code>.</p> + +<p>The <em>values</em> of a <code>Feature</code> for a given instance of its domain are all the instances of its co-domain that are related to that domain instance by the <code>Feature</code>. The values of a <code>Feature</code> with <code>chainingFeatures</code> are the same as values of the last <code>Feature</code> in the chain, which can be found by starting with values of the first <code>Feature</code>, then using those values as domain instances to obtain valus of the second <code>Feature</code>, and so on, to values of the last <code>Feature</code>.</p> + + + + + <p>The <code>ownedRedefinitions</code> of a <code>Feature</code> are its <code>ownedSubsettings</code> that are <code>Redefinitions</code>.</p> + + + OCL2.0 + ownedRedefinition = ownedSubsetting->selectByKind(Redefinition) + + + + + <p>The <code>ownedTypeFeaturings</code> of a <code>Feature</code> are its <code>ownedRelationships</code> that are <code>TypeFeaturings</code> and which have the <code>Feature</code> as their <code>featureOfType</code>.</p> + + + OCL2.0 + ownedTypeFeaturing = ownedRelationship->selectByKind(TypeFeaturing)-> + select(tf | tf.featureOfType = self) + + + + + <p>The <code>ownedSubsettings</code> of a <code>Feature</code> are its <code>ownedSpecializations</code> that are <code>Subsettings</code>.</p> + + + OCL2.0 + ownedSubsetting = ownedSpecialization->selectByKind(Subsetting) + + + + + <p>The <code>ownedTypings</code> of a <code>Feature</code> are its <code>ownedSpecializations</code> that are <code>FeatureTypings</code>.</p> + + + OCL2.0 + ownedTyping = ownedGeneralization->selectByKind(FeatureTyping) + + + + + <p>The <code>types</code> of a <code>Feature</code> are the union of the <code>types</code> of its <code>typings</code> and the <code>types</code> of the <code>Features</code> it subsets, with all redundant supertypes removed. If the <code>Feature</code> has <code>chainingFeatures</code>, then the union also includes the types of the last <code>chainingFeature</code>.</p> + + + OCL2.0 + type = + let types : OrderedSet(Types) = OrderedSet{self}-> + -- Note: The closure operation automatically handles circular relationships. + closure(typingFeatures()).typing.type->asOrderedSet() in + types->reject(t1 | types->exist(t2 | t2 <> t1 and t2.specializes(t1))) + + + + + <p>If a <code>Feature</code> has a <code>multiplicity</code>, then the <code>featuringTypes</code> of the <code>multiplicity</code> must be the same as those of the <code>Feature</code> itself.</p> + + + OCL2.0 + multiplicity <> null implies multiplicity.featuringType = featuringType + + + + + <p>A <code>Feature</code> must directly or indirectly specialize <code><em>Base::things</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::things') + + + + + <p>A <code>Feature</code> cannot be one of its own <code>chainingFeatures</code>.</p> + + + English + chainingFeature->excludes(self) + + + + + <p>The <code>ownedFeatureChainings</code> of a <code>Feature</code> are the <code>ownedRelationships</code> that are <code>FeatureChainings</code>.</p> + + + OCL2.0 + ownedFeatureChaining = ownedRelationship->selectByKind(FeatureChaining) + + + + + <p>The <code>chainingFeatures</code> of a <code>Feature</code> are the <code>chainingFeatures</code> of its <code>ownedFeatureChainings</code>.</p> + + + OCL2.0 + chainingFeature = ownedFeatureChaining.chainingFeature + + + + + A <code>Feature</code> must have either no <code>chainingFeatures</code> or more than one. + + + OCL2.0 + chainingFeature->size() <> 1 + + + + + <p>If a <code>Feature</code> has <code>isEnd = true</code> and an <code>owningType</code> that is not empty, then, for each direct supertype of its <code>owningType</code>, it must redefine the <code>endFeature</code> at the same position, if any.</p> + + + OCL2.0 + isEnd and owningType <> null implies + let i : Integer = + owningType.ownedEndFeature->indexOf(self) in + owningType.ownedSpecialization.general-> + forAll(supertype | + supertype.endFeature->size() >= i implies + redefines(supertype.endFeature->at(i)) + + + + + <p>If a <code>Feature</code> has a <code>FeatureValue</code>, no <code>ownedSpecializations</code> that are not implied, and is not directed, then it must specialize the <code>result</code> of the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code>.</p> + + + OCL2.0 + direction = null and +ownedSpecializations->forAll(isImplied) implies + ownedMembership-> + selectByKind(FeatureValue)-> + forAll(fv | specializes(fv.value.result)) + + + + + <p>If a <code>Feature</code> has <code>isEnd = true</code> and an <code>owningType</code> that is an <code>Association</code> or a <code>Connector</code>, then it must directly or indirectly specialize <code><em>Links::Link::participant</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + isEnd and owningType <> null and +(owningType.oclIsKindOf(Association) or + owningType.oclIsKindOf(Connector)) implies + specializesFromLibrary('Links::Link::participant') + + + + + <p>A composite <code>Feature</code> typed by a <code>Structure</code>, and whose <code>ownedType</code> is a <code>Structure</code> or another <code>Feature</code> typed by a <code>Structure</code> must directly or indirectly specialize <em><code>Objects::Object::subobjects</code></em>. + + + OCL2.0 + isComposite and +ownedTyping.type->includes(oclIsKindOf(Structure)) and +owningType <> null and +(owningType.oclIsKindOf(Structure) or + owningType.type->includes(oclIsKindOf(Structure))) implies + specializesFromLibrary('Occurrence::Occurrence::suboccurrences') + + + + + <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>Class</code>, then it must directly or indirectly specialize <code><em>Occurrences::occurrences</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + ownedTyping.type->exists(selectByKind(Class)) implies + specializesFromLibrary('Occurrences::occurrences') + + + + + <p>A composite <code>Feature</code> that has an <code>ownedTyping</code> relationship to a <code>Class</code>, and whose <code>ownedType</code> is a <code>Class</code> or another <code>Feature</code> typed by a <code>Class</code>, must directly or indirectly specialize <em><code>Occurrences::Occurrence::suboccurrences</code></em>. + + + OCL2.0 + isComposite and +ownedTyping.type->includes(oclIsKindOf(Class)) and +owningType <> null and +(owningType.oclIsKindOf(Class) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKindOf(Class))) implies + specializesFromLibrary('Occurrence::Occurrence::suboccurrences') + + + + + <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>DataType</code>, then it must directly or indirectly specialize <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + ownedTyping.type->exists(selectByKind(DataType)) implies + specializesFromLibrary('Base::dataValues') + + + + + <p>If a <code>Feature</code> is the first <code>ownedFeature</code> of a first or second <code>FlowEnd</code>, then it must directly or indirectly specialize either <em><code>Transfers::Transfer::source::sourceOutput</code></em> or <em><code>Transfers::Transfer::target::targetInput</code></em>, respectively, from the Kernel Semantic Library.</p> + + + OCL2.0 + owningType <> null and +owningType.oclIsKindOf(FlowEnd) and +owningType.ownedFeature->at(1) = self implies + let flowType : Type = owningType.owningType in + flowType <> null implies + let i : Integer = + flowType.ownedFeature.indexOf(owningType) in + (i = 1 implies + redefinesFromLibrary('Transfers::Transfer::source::sourceOutput')) and + (i = 2 implies + redefinesFromLibrary('Transfers::Transfer::source::targetInput')) + + + + + + <p>If a <code>Feature</code> is a <code>parameter</code> of an <code>owningType</code> that is a <code>Behavior</code> or <code>Step</code>, but <em>not</em> +</p> +<ul> + <li>A <code>result</code> <code>parameter</code></li> + <li>A <code>parameter</code> of an <code>InvocationExpression</code>, with at least one non-implied <code>ownedRedefinition</code></li> +</ul> +<p>then, for each direct supertype of its <code>owningType</code> that is also a <code>Behavior</code> or <code>Step</code>, it must redefine the <code>parameter</code> at the same position, if any.</p> + + + OCL2.0 + owningType <> null and +not owningFeatureMembership. + oclIsKindOf(ReturnParameterMembership) and +(owningType.oclIsKindOf(Behavior) or + owningType.oclIsKindOf(Step) and + (owningType.oclIsKindOf(InvocationExpression) implies + not ownedRedefinition->exists(not isImplied)) +implies + let i : Integer = + owningType.ownedFeature->select(direction <> null)-> + reject(owningFeatureMembership. + oclIsKindOf(ReturnParameterMembership))-> + indexOf(self) in + owningType.ownedSpecialization.general-> + forAll(supertype | + let ownedParameters : Sequence(Feature) = + supertype.ownedFeature->select(direction <> null)-> + reject(owningFeatureMembership. + oclIsKindOf(ReturnParameterMembership)) in + ownedParameters->size() >= i implies + redefines(ownedParameters->at(i)) + + + + + <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>Structure</code>, then it must directly or indirectly specialize <code><em>Objects::objects</em></code> from the Kernel Semantics Library.</p> + + + OCL2.0 + ownedTyping.type->exists(selectByKind(Structure)) implies + specializesFromLibary('Objects::objects') + + + + + <p>If a <code>Feature</code> is a <code>result</code> <code>parameter</code> of an <code>owningType</code> that is a <code>Function</code> or <code>Expression</code>, then, for each direct supertype of its <code>owningType</code> that is also a <code>Function</code> or <code>Expression</code>, it must redefine the <code>result</code> <code>parameter</code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(Function) and + self = owningType.oclAsType(Function).result or + owningType.oclIsKindOf(Expression) and + self = owningType.oclAsType(Expression).result) implies + owningType.ownedSpecialization.general-> + select(oclIsKindOf(Function) or oclIsKindOf(Expression))-> + forAll(supertype | + redefines( + if superType.oclIsKindOf(Function) then + superType.oclAsType(Function).result + else + superType.oclAsType(Expression).result + endif) + + + + + <p>The <code>ownedFeatureInvertings</code> of a <code>Feature</code> are its <code>ownedRelationships</code> that are <code>FeatureInvertings</code>.</p> + + + OCL2.0 + ownedFeatureInverting = ownedRelationship->selectByKind(FeatureInverting)-> + select(fi | fi.featureInverted = self) + + + + + The <code>featuringTypes</code> of a <code>Feature</code> include the <code>featuringTypes</code> of all the <code>typeFeaturings</code> of the <code>Feature</code>. If the <code>Feature</code> has <code>chainingFeatures</code>, then its <code>featuringTypes</code> also include the <code>featuringTypes</code> of the first <code>chainingFeature</code>. + + + OCL2.0 + featuringType = + let featuringTypes : OrderedSet(Type) = + featuring.type->asOrderedSet() in + if chainingFeature->isEmpty() then featuringTypes + else + featuringTypes-> + union(chainingFeature->first().featuringType)-> + asOrderedSet() + endif + + + + + <p>The <code>ownedReferenceSubsetting</code> of a <code>Feature</code> is the first +<code>ownedSubsetting</code> that is a <code>ReferenceSubsetting</code> (if any).</p> + + + OCL2.0 + ownedReferenceSubsetting = + let referenceSubsettings : OrderedSet(ReferenceSubsetting) = + ownedSubsetting->selectByKind(ReferenceSubsetting) in + if referenceSubsettings->isEmpty() then null + else referenceSubsettings->first() endif + + + + + <p>A <code>Feature</code> must have at most one <code>ownedSubsetting</code> that is an <code>ReferenceSubsetting</code>.</p> + + + OCL2.0 + ownedSubsetting->selectByKind(ReferenceSubsetting)->size() <= 1 + + + + + <p>Each <code>chainingFeature</code> (other than the first) must be featured within the previous <code>chainingFeature</code>.</p> + + + OCL2.0 + Sequence{2..chainingFeature->size()}->forAll(i | + chainingFeature->at(i).isFeaturedWithin(chainingFeature->at(i-1))) + + + + + + <p>If a <code>Feature</code> has <code>isPortion = true</code>, an <code>ownedTyping </code> relationship to a <code>Class</code>, and an <code>owningType</code> that is a <code>Class</code> or another <code>Feature</code> typed by a <code>Class</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::portions</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isPortion and +ownedTyping.type->includes(oclIsKindOf(Class)) and +owningType <> null and +(owningType.oclIsKindOf(Class) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKindOf(Class))) implies + specializesFromLibrary('Occurrence::Occurrence::portions') + + + + + <p>If a <code>Feature</code> has no <code>chainingFeatures</code>, then its <code>featureTarget</code> is the <code>Feature</code> itself, otherwise the <code>featureTarget</code> is the last of the <code>chainingFeatures</code>.</p> + + + OCL2.0 + featureTarget = if chainingFeature->isEmpty() then self else chainingFeature->last() endif + + + + + <p>The <code>ownedCrossSubsetting</code> of a <code>Feature</code> is the <code>ownedSubsetting</code> that is a <code>CrossSubsetting</code>, if any.</p> + + + OCL2.0 + ownedCrossSubsetting = + let crossSubsettings: Sequence(CrossSubsetting) = + ownedSubsetting->selectByKind(CrossSubsetting) in + if crossSubsettings->isEmpty() then null + else crossSubsettings->first() + endif + + + + + <p>If a <code>Feature</code> has <code>isEnd = true</code>, then it must have multiplicity <code>1..1</code>.</p> + + + OCL2.0 + isEnd implies + multiplicities().allSuperTypes()->flatten()-> + selectByKind(MultiplicityRange)->exists(hasBounds(1,1)) + + + + + <p>The <code>crossFeature</code> of a <code>Feature</code> must have the same <code>types</code> as the <code>Feature</code>.</p> + + + OCL2.0 + crossFeature <> null implies + crossFeature.type->asSet() = type->asSet() + + + + + <p>A <code>Feature</code> must have at most one <code>ownedSubsetting</code> that is a <code>CrossSubsetting</code>.</p> + + + OCL2.0 + ownedSubsetting->selectByKind(CrossSubsetting)->size() <= 1 + + + + + <p>The <code>crossFeature</code> of a <code>Feature</code> is the second <code>chainingFeature</code> of the <code>crossedFeature</code> of the <code>ownedCrossSubsetting</code> of the <code>Feature</code>, if any.</p> + + + OCL2.0 + crossFeature = + if ownedCrossSubsetting = null then null + else + let chainingFeatures: Sequence(Feature) = + ownedCrossSubsetting.crossedFeature.chainingFeature in + if chainingFeatures->size() < 2 then null + else chainingFeatures->at(2) + endif + + + + + <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then it must directly or indirectly specialize the <code>types</code> of its owning end <code>Feature</code>.</p> + + + OCL2.0 + isOwnedCrossFeature() implies + owner.oclAsType(Feature).type->forAll(t | self.specializes(t)) + + + + + <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then, for any end <code>Feature</code> that is redefined by the owning end <code>Feature</code> of this <code>Feature</code>, this <code>Feature</code> must subset the <code>crossFeature</code> of the redefined end <code>Feature</code>, if this exists.</p> + + + OCL2.0 + isOwnedCrossFeature() implies + ownedSubsetting.subsettedFeature->includesAll( + owner.oclAsType(Feature).ownedRedefinition.redefinedFeature-> + select(crossFeature <> null).crossFeature) + + + + + <p>If this <code>Feature</code> has a <code>crossFeature</code>, then, for any <code>Feature</code> that is redefined by this <code>Feature</code>, the <code>crossFeature</code> must specialize the <code>crossFeature</code> of the redefined end <code>Feature</code>, if this exists.</p> + + + OCL2.0 + crossFeature <> null implies + ownedRedefinition.redefinedFeature.crossFeature-> + forAll(f | f <> null implies crossFeature.specializes(f)) + + + + + <p>If this <code>Feature</code> has <code>isEnd = true</code> and <code>ownedCrossFeature</code> returns a non-null value, then the <code>crossFeature</code> of the <code>Feature</code> must be the <code>Feature</code> returned from <code>ownedCrossFeature</code> (which implies that this <code>Feature</code> has an appropriate <code>ownedCrossSubsetting</code> to realize this).</p> + + + OCL2.0 + ownedCrossFeature() <> null implies + crossFeature = ownedCrossFeature() + + + + + <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then it must have <code>featuringTypes</code> consistent with the crossing from other end <code>Features</code> of the <code>owningType</code> of its end <code>Feature</code>.</p> + + + OCL2.0 + isOwnedCrossFeature() implies + let otherEnds : OrderedSet(Feature) = + owner.oclAsType(Feature).owningType.endFeature->excluding(self) in + if (otherEnds->size() = 1) then + featuringType = otherEnds->first().type + else + featuringType->size() = 1 and + featuringType->first().isCartesianProduct() and + featuringType->first().asCartesianProduct() = otherEnds.type and + featuringType->first().allSupertypes()->includesAll( + owner.oclAsType(Feature).ownedRedefinition.redefinedFeature-> + select(crossFeature() <> null).crossFeature().featuringType) + endif + + + + + OCL2.0 + isPortion implies not isVariable + + + + + <p>A <code>Feature</code> with <code>isEnd = true</code> must have no direction.</p> + + + OCL2.0 + isEnd implied direction = null + + + + + <p>If a <code>Feature</code> is owned via a <code>FeatureMembership</code>, then it must have a <code>featuringType</code> for which the operation <code>isFeaturingType</code> returns true.</p> + + + OCL2.0 + owningFeatureMembership <> null implies + featuringTypes->exists(t | isFeaturingType(t)) + + + + + <p>A <code>Feature</code> with <code>isConstant = true</code> must have <code>isVariable = true</code>. + + + OCL2.0 + isConstant implies isVariable + + + + + <p>A <code>Feature</code> with <code>isVariable = true</code> must have an <code>owningType</code> that directly or indirectly specializes the <code>Class</code> <em><code>Occurrences::Occurrence</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isVariable implies + owningType <> null and + owningType.specializes('Occurrences::Occurrence') + + + + + <p>A <code>Feature</code> with <code>isEnd = true</code> must have all of <code>isDerived = false</code>, <code>isAbstract = false</code>, <code>isComposite = false</code>, and <code>isPortion = false</code>.</p> + + + OCL2.0 + isEnd implies not (isDerived or isAbstract or isComposite or isPortion) + + + + + <p>A <code>Feature</code> with <code>isEnd = true</code> and <code>isVariable = true</code> must have <code>isConstant = true</code>.</p> + + + OCL2.0 + isEnd and isVariable implies isConstant + + + + + + <p>The <code>Type</code> that is the <code>owningType</code> of the <code>owningFeatureMembership</code> of this <code>Feature</code>.</p> + + + + + + + <p>Whether or not values for this <code>Feature</code> must have no duplicates or not.</p> + + + + + + + + <p>Whether an order exists for the values of this <code>Feature</code> or not.</p> + + + + + + + <p><code>Types</code> that restrict the values of this <code>Feature</code>, such that the values must be instances of all the <code>types</code>. The types of a <code>Feature</code> are derived from its <code>typings</code> and the <code>types</code> of its <code>subsettings</code>. If the <code>Feature</code> is chained, then the <code>types</code> of the last <code>Feature</code> in the chain are also <code>types</code> of the chained <code>Feature</code>.</p> + + + + + + + + <p>The <code>ownedSubsettings</code> of this <code>Feature</code> that are <code>Redefinitions</code>, for which the <code>Feature</code> is the <code>redefiningFeature</code>.</p> + + + + + + + + + <p>The <code>ownedSpecializations</code> of this <code>Feature</code> that are <code>Subsettings</code>, for which the <code>Feature</code> is the <code>subsettingFeature</code>.</p> + + + + + + + + <p>The <code>FeatureMembership</code> that owns this <code>Feature</code> as an <code>ownedMemberFeature</code>, determining its <code>owningType</code>.</p> + + + + + + + <p>Whether the <code>Feature</code> is a composite <code>feature</code> of its <code>featuringType</code>. If so, the values of the <code>Feature</code> cannot exist after its featuring instance no longer does and cannot be values of another composite feature that is not on the same featuring instance.</p> + + + + + + + + <p>Whether or not this <code>Feature</code> is an end <code>Feature</code>. An end <code>Feature</code> always has multiplicity 1, mapping each of its domain instances to a single co-domain instance. However, it may have a <code>crossFeature</code>, in which case values of the <code>crossFeature</code> must be the same as those found by navigation across instances of the <code>owningType</code> from values of other end <code>Features</code> to values of this Feature. If the <code>owningType</code> has <em>n</em> end <code>Features</code>, then the multiplicity, ordering, and uniqueness declared for the <code>crossFeature</code> of any one of these end <code>Features</code> constrains the cardinality, ordering, and uniqueness of the collection of values of that <code>Feature</code> reached by navigation when the values of the other <em>n-1</em> end <code>Features</code> are held fixed.</p> + + + + + + + + <p>The <code>Type</code> that is related to this <code>Feature</code> by an <code>EndFeatureMembership</code> in which the <code>Feature</code> is an <code>ownedMemberFeature</code>.</p> + + + + + + + <p>The <code>ownedSpecializations</code> of this <code>Feature</code> that are <code>FeatureTypings</code>, for which the <code>Feature</code> is the <code>typedFeature</code>.</p> + + + + + + + <p><code>Types</code> that feature this <code>Feature</code>, such that any instance in the domain of the <code>Feature</code> must be classified by all of these <code>Types</code>, including at least all the <code>featuringTypes</code> of its <code>typeFeaturings</code>. If the <code>Feature</code> is chained, then the <code>featuringTypes</code> of the first <code>Feature</code> in the chain are also <code>featuringTypes</code> of the chained <code>Feature</code>.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>TypeFeaturings</code> and for which the <code>Feature</code> is the <code>featureOfType</code>.</p> + + + + + + + <p>Whether the values of this <code>Feature</code> can always be computed from the values of other <code>Features</code>.</p> + + + + + + + + <p>The <code>Feature</code> that are chained together to determine the values of this <code>Feature</code>, derived from the <code>chainingFeatures</code> of the <code>ownedFeatureChainings</code> of this <code>Feature</code>, in the same order. The values of a <code>Feature</code> with <code>chainingFeatures</code> are the same as values of the last <code>Feature</code> in the chain, which can be found by starting with the values of the first <code>Feature</code> (for each instance of the domain of the original <code>Feature</code>), then using each of those as domain instances to find the values of the second <code>Feature</code> in chainingFeatures, and so on, to values of the last <code>Feature</code>.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>FeatureInvertings</code> and for which the <code>Feature</code> is the <code>featureInverted</code>.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>FeatureChainings</code>, for which the <code>Feature</code> will be the <code>featureChained</code>.</p> + + + + + + + <p>Whether the values of this <code>Feature</code> are contained in the space and time of instances of the domain of the <code>Feature</code> and represent the same thing as those instances.</p> + + + + + + + + <p>Whether the value of this <code>Feature</code> might vary over time. That is, whether the <code>Feature</code> may have a different value for each <em><code>snapshot</code></em> of an <code>owningType</code> that is an <em><code>Occurrence</code></em>.</p> + + + + + + + <p>If <code>isVariable</code> is true, then whether the value of this <code>Feature</code> nevertheless does not change over all <code><em>snapshots</em></code> of its <code>owningType</code>.</p> + + + + + + + + <p>The one <code>ownedSubsetting</code> of this <code>Feature</code>, if any, that is a <code>ReferenceSubsetting</code>, for which the <code>Feature</code> is the <code>referencingFeature</code>.</p> + + + + + + + <p>The last of the <code>chainingFeatures</code> of this <code>Feature</code>, if it has any. Otherwise, this <code>Feature</code> itself.</p> + + + + + + + <p>The second <code>chainingFeature</code> of the <code>crossedFeature</code> of the <code>ownedCrossSubsetting</code> of this <code>Feature</code>, if it has one. Semantically, the values of the <code>crossFeature</code> of an end <code>Feature</code> must include all values of the end <code>Feature</code> obtained when navigating from values of the other end <code>Features</code> of the same <code>owningType</code>. +</p> + + + + + + + <p>Indicates how values of this <code>Feature</code> are determined or used (as specified for the <code>FeatureDirectionKind</code>).</p> + + + + + + + + <p>The one <code>ownedSubsetting</code> of this <code>Feature</code>, if any, that is a <code>CrossSubsetting}, for which the <code>Feature</code> is the <code>crossingFeature</code>.</p> + + + + + + + <p>Return the <code>directionOf</code> this <code>Feature</code> relative to the given <code>type</code>.</p> + + + + OCL2.0 + type.directionOf(self) + + + + + + + + + + + <p>If a <code>Feature</code> has no <code>declaredShortName</code> or <code>declaredName</code>, then its effective <code>shortName</code> is given by the effective <code>shortName</code> of the <code>Feature</code> returned by the <code>namingFeature()</code> operation, if any.</p> + + + + OCL2.0 + if declaredShortName <> null or declaredName <> null then + declaredShortName +else + let namingFeature : Feature = namingFeature() in + if namingFeature = null then + null + else + namingFeature.effectiveShortName() + endif +endif + + + + + + + + + + + <p>If a <code>Feature</code> has no <code>declaredName</code> or <code>declaredShortName</code> +, then its effective <code>name</code> is given by the effective <code>name</code> of the <code>Feature</code> returned by the <code>namingFeature()</code> operation, if any.</p> + + + + OCL2.0 + if declaredShortName <> null or declaredName <> null then + declaredName +else + let namingFeature : Feature = namingFeature() in + if namingFeature = null then + null + else + namingFeature.effectiveName() + endif +endif + + + + + + + + + + + <p>By default, the naming <code>Feature</code> of a <code>Feature</code> is given by its first <code>redefinedFeature</code> of its first <code>ownedRedefinition</code>, if any.</p> + + + + OCL2.0 + if ownedRedefinition->isEmpty() then + null +else + ownedRedefinition->at(1).redefinedFeature +endif + + + + + + + + + + + OCL2.0 + let supertypes : OrderedSet(Type) = + self.oclAsType(Type).supertypes(excludeImplied) in +if featureTarget = self then supertypes +else supertypes->append(featureTarget) +endif + + + + + + + + + + + + + <p>Check whether this <code>Feature</code> <em>directly</em> redefines the given <code>redefinedFeature</code>.</p> + + + + OCL2.0 + ownedRedefinition.redefinedFeature->includes(redefinedFeature) + + + + + + + + + + <p>Check whether this <code>Feature</code> <em>directly</em> redefines the named library <code>Feature</code>. <code>libraryFeatureName</code> must conform to the syntax of a KerML qualified name and must resolve to a <code>Feature</code> in global scope.</p> + + + + OCL2.0 + let mem: Membership = resolveGlobal(libraryFeatureName) in +mem <> null and mem.memberElement.oclIsKindOf(Feature) and +redefines(mem.memberElement.oclAsType(Feature)) + + + + + + + + + + + + <p>Check whether this <code>Feature</code> directly or indirectly specializes a <code>Feature</code> whose last two <code>chainingFeatures</code> are the given <code>Features</code> <code>first</code> and <code>second</code>.</p> + + + + OCL2.0 + allSuperTypes()->selectAsKind(Feature)-> + exists(f | let n: Integer = f.chainingFeature->size() in + n >= 2 and + f.chainingFeature->at(n-1) = first and + f.chainingFeature->at(n) = second) + + + + + + + + + + + <p>A <code>Feature</code> is compatible with an <code>otherType</code> if it either directly or indirectly specializes the <code>otherType</code> or if the <code>otherType</code> is also a <code>Feature</code> and all of the following are true.</p> +<ol> + <li>Neither this <code>Feature</code> or the <code>otherType</code> have any <code>ownedFeatures</code>.</li> + <li>This <code>Feature</code> directly or indirectly redefines a <code>Feature</code> that is also directly or indirectly redefined by the <code>otherType</code>.</li> + <li>This <code>Feature</code> can access the <code>otherType</code>. +</li></ol> + + + + OCL2.0 + specializes(otherType) or + supertype.oclIsKindOf(Feature) and + ownedFeature->isEmpty() and + otherType.ownedFeature->isEmpty() and + ownedRedefinitions.allRedefinedFeatures()->exists(f | + otherType.oclAsType(Feature).allRedefinedFeatures()->includes(f)) and + canAccess(otherType.oclAsType(Feature)) + + + + + + + + + + <p>Return the <code>Features</code> used to determine the <code>types</code> of this <code>Feature</code> (other than this <code>Feature</code> itself). If this <code>Feature</code> is <em>not</em> conjugated, then the <code>typingFeatures</code> consist of all subsetted <code>Features</code>, <em>except</em> from <code>CrossSubsetting</code>, and the last <code>chainingFeature</code> (if any). If this <code>Feature</code> <em>is</em> conjugated, then the <code>typingFeatures</code> are only its <code>originalType</code> (if the <code>originalType</code> is a <code>Feature</code>).</p> + +<p><strong>Note.</strong> <code>CrossSubsetting</code> is excluded from the determination of the <code>type</code> of a <code>Feature</code> in order to avoid circularity in the construction of implied <code>CrossSubsetting</code> relationships. The <code>validateFeatureCrossFeatureType</code> requires that the <code>crossFeature</code> of a <code>Feature</code> have the same <code>type</code> as the <code>Feature</code>.</p> + + + + + OCL2.0 + if not isConjugated then + let subsettedFeatures : OrderedSet(Feature) = + subsetting->reject(s | s.oclIsKindOf(CrossSubsetting)).subsettedFeatures in + if chainingFeature->isEmpty() or + subsettedFeature->includes(chainingFeature->last()) + then subsettedFeatures + else subsettedFeatures->append(chainingFeature->last()) + endif +else if conjugator.originalType.oclIsKindOf(Feature) then + OrderedSet{conjugator.originalType.oclAsType(Feature)} +else OrderedSet{} +endif endif + + + + + + + + + + <p>If <code>isCartesianProduct</code> is true, then return the list of <code>Types</code> whose Cartesian product can be represented by this <code>Feature</code>. (If <code>isCartesianProduct</code> is not true, the operation will still return a valid value, it will just not represent anything useful.)</p> + + + + OCL2.0 + featuringType->select(t | t.owner <> self)-> + union(featuringType->select(t | t.owner = self)-> + selectByKind(Feature).asCartesianProduct())-> + union(type) + + + + + + + + + + <p>Check whether this <code>Feature</code> can be used to represent a Cartesian product of <code>Types</code>.</p> + + + + OCL2.0 + type->size() = 1 and +featuringType.size() = 1 and +(featuringType.first().owner = self implies + featuringType.first().oclIsKindOf(Feature) and + featuringType.first().oclAsType(Feature).isCartesianProduct()) + + + + + + + + + <p>Return whether this <code>Feature</code> is an owned cross <code>Feature</code> of an end <code>Feature</code>.</p> + + + + OCL2.0 + owningNamespace <> null and +owningNamespace.oclIsKindOf(Feature) and +owningNamespace.oclAsType(Feature).ownedCrossFeature() = self + + + + + + + + + <p>If this <code>Feature</code> is an end <code>Feature</code> of its <code>owningType</code>, then return the first <code>ownedMember</code> of the <code>Feature</code> that is a <code>Feature</code>, but not a <code>Multiplicity</code> or a <code>MetadataFeature</code>, and whose <code>owningMembership</code> is <em>not</em> a <code>FeatureMembership</code>. If this exists, it is the <code>crossFeature</code> of the end <code>Feature</code>.</p> + + + + OCL2.0 + if not isEnd or owningType = null then null +else + let ownedMemberFeatures: Sequence(Feature) = + ownedMember->selectByKind(Feature)-> + reject(oclIsKindOf(Multiplicity) or + oclIsKindOf(MetadataFeature) or + oclIsKindOf(FeatureValue))-> + reject(owningMembership.oclIsKindOf(FeatureMembership)) in + if ownedMemberFeatures.isEmpty() then null + else ownedMemberFeatures->first() + endif + + + + + + + + + + <p>Return this <code>Feature</code> and all the <code>Features</code> that are directly or indirectly <code>Redefined</code> by this <code>Feature</code>.</p> + + + + OCL2.0 + ownedRedefinition.redefinedFeature-> + closure(ownedRedefinition.redefinedFeature)-> + asOrderedSet()->prepend(self) + + + + + + + + + + + <p>Return if the <code>featuringTypes</code> of this <code>Feature</code> are compatible with the given <code>type</code>. If <code>type</code> is null, then check if this <code>Feature</code> is explicitly or implicitly featured by <em><code>Base::Anything</code></em>. If this <code>Feature</code> has <code>isVariable = true</code>, then also consider it to be featured within its <code>owningType</code>. If this <code>Feature</code> is a feature chain whose first <code>chainingFeature</code> has <code>isVariable = true</code>, then also consider it to be featured within the <code>owningType</code> of its first <code>chainingFeature</code>.</p> + + + + OCL2.0 + if type = null then + featuringType->forAll(f | f = resolveGlobal('Base::Anything').memberElement) +else + featuringType->forAll(f | type.isCompatibleWith(f)) or + isVariable and type.specializes(owningType) or + chainingFeature->notEmpty() and chainingFeature->first().isVariable and + type.specializes(chainingFeature->first().owningType) +endif + + + + + + + + + + + + + <p>A <code>Feature</code> can access another <code>feature</code> if the other <code>feature</code> is featured within one of the direct or indirect <code>featuringTypes</code> of this <code>Feature</code>.</p> + + + + OCL2.0 + let anythingType: Element = + subsettingFeature.resolveGlobal('Base::Anything').memberElement in +let allFeaturingTypes : Sequence(Type) = + featuringTypes->closure(t | + if not t.oclIsKindOf(Feature) then Sequence{} + else + let featuringTypes : OrderedSet(Type) = t.oclAsType(Feature).featuringType in + if featuringTypes->isEmpty() then Sequence{anythingType} + else featuringTypes + endif + endif) in +allFeaturingTypes->exists(t | feature.isFeaturedWithin(t)) + + + + + + + + + + <p>Return whether the given <code>type</code> must be a <code>featuringType</code> of this <code>Feature</code>. If this <code>Feature</code> has <code>isVariable = false</code>, then return true if the <code>type</code> is the <code>owningType</code> of the <code>Feature</code>. If <code>isVariable = true</code>, then return true if the <code>type</code> is a <code>Feature</code> representing the <em><code>snapshots</code></em> of the <code>owningType</code> of this <code>Feature</code>.</p> + + + + OCL2.0 + owningType <> null and +if not isVariable then type = owningType +else if owningType = resolveGlobal('Occurrences::Occurrence').memberElement then + type = resolveGlobal('Occurrences::Occurrence::snapshots').memberElement +else + type.oclIsKindOf(Feature) and + let feature : Feature = type.oclAsType(Feature) in + feature.featuringType->includes(owningType) and + feature.redefinesFromLibrary('Occurrences::Occurrence::snapshots') +endif + + + + + + + + + + + + <p><code>FeatureTyping</code> is <code>Specialization</code> in which the <code>specific</code> <code>Type</code> is a <code>Feature</code>. This means the set of instances of the (specific) <code>typedFeature</code> is a subset of the set of instances of the (general) <code>type</code>. In the simplest case, the <code>type</code> is a <code>Classifier</code>, whereupon the <code>typedFeature</code> has values that are instances of the <code>Classifier</code>.</p> + + + + + + <p>The <code>Feature</code> that has a <code>type</code> determined by this <code>FeatureTyping</code>.</p> + + + + + + + <p>The <code>Type</code> that is being applied by this <code>FeatureTyping</code>.</p> + + + + + + + + <p>A <code>typedFeature</code> that is also the <code>owningRelatedElement</code> of this <code>FeatureTyping</code>.</p> + + + + + + + + <p><code>Subsetting</code> is <code>Specialization</code> in which the <code>specific</code> and <code>general</code> <code>Types</code> are <code>Features</code>. This means all values of the <code>subsettingFeature</code> (on instances of its domain, i.e., the intersection of its <code>featuringTypes</code>) are values of the <code>subsettedFeature</code> on instances of its domain. To support this the domain of the <code>subsettingFeature</code> must be the same or specialize (at least indirectly) the domain of the <code>subsettedFeature</code> (via <code>Specialization</code>), and the co-domain (intersection of the <code>types</code>) of the <code>subsettingFeature</code> must specialize the co-domain of the <code>subsettedFeature</code>.</p> + + + + + <p>The <code>subsettedFeature</code> must be accessible by the <code>subsettingFeature</code>.</p> + + + OCL2.0 + subsettingFeature.canAccess(subsettedFeature) + + + + + <p>If the <code>subsettedFeature</code> of a <code>Subsetting</code> has <code>isUnique = true</code>, then the <code>subsettingFeature</code> must have <code>isUnique = true</code>.</p> + + + OCL2.0 + subsettedFeature.isUnique implies subsettingFeature.isUnique + + + + + <p>If the <code>subsettedFeature</code> of a <code>Subsetting</code> has <code>isConstant = true</code> and the <code>subsettingFeature</code> has <code>isVariable = true</code>, then the <code>subsettingFeature</code> must have <code>isConstant = true</code>.</p> + + + OCL2.0 + subsettedFeature.isConstant and subsettingFeature.isVariable implies + subsettingFeature.isConstant + + + + + + + <p>The <code>Feature</code> that is subsetted by the <code>subsettingFeature</code> of this <code>Subsetting</code>.</p> + + + + + + + + <p>The <code>Feature</code> that is a subset of the <code>subsettedFeature</code> of this <code>Subsetting</code>.</p> + + + + + + + + <p>A <code>subsettingFeature</code> that is also the <code>owningRelatedElement</code> of this <code>Subsetting</code>.</p> + + + + + + + + + + + <p>The Redefinitions with a certain Feature as the <code>redefiningFeature</code>.</p> + + + + + + + + + + <p>The Subsettings with a certain Feature as the <code>subsettedFeature</code>.</p> + + + + + + + + + <p>A <code>Type</code> that has the <code>multiplicity</code> as an <code>ownedMember</code>.</p> + + + + + + + + + + <p>The <code>TypeFeaturings</code> for which a certain <code>Feature</code> is the <code>featureOfType</code>.</p> + + + + + + + + + <p>The Features for which a certain Type is a <code>featuringType</code>.</p> + + + + + + + + <p>A <code>TypeFeaturing</code> is a <code>Featuring</code> <code>Relationship</code> in which the <code>featureOfType</code> is the <code>source</code> and the <code>featuringType</code> is the <code>target</code>.</p> + + + + + <p>The <code>Feature</code> that is featured by the <code>featuringType</code>. It is the <code>source</code> of the <code>TypeFeaturing</code>.</p> + + + + + + + <p>The <code>Type</code> that features the <code>featureOfType</code>. It is the <code>target</code> of the <code>TypeFeaturing</code>.</p> + + + + + + + <p>A <code>featureOfType</code> that is also the <code>owningRelatedElement</code> of this <code>TypeFeaturing</code>.</p> + + + + + + + + + + <p>The <code>TypeFeaturings</code> for which a certain <code>Type</code> is the <code>featuringType</code>.</p> + + + + + + + + + <p><code>EndFeatureMembership</code> is a <code>FeatureMembership</code> that requires its <code>memberFeature</code> be owned and have <code>isEnd = true</code>.</p> + + + + + <p>The <code>ownedMemberFeature</code> of an <code>EndFeatureMembership</code> must be an end <code>Feature</code>.</p> + + + OCL2.0 + ownedMemberFeature.isEnd + + + + + + + + + + + <p>Relationship for chainedFeatures.</p> + + + + <p>The <code>FeatureChainings</code> that identify a <code>Feature</code> as their <code>chainingFeature</code>.</p> + + + + + + + + <p><code>FeatureChaining</code> is a <code>Relationship</code> that makes its target <code>Feature</code> one of the <code>chainingFeatures</code> of its owning <code>Feature</code>.</p> + + + + + <p>The <code>Feature</code> whose values partly determine values of <code>featureChained</code>, as described in <code>Feature::chainingFeature</code>.</p> + + + + + + + + <p>The <code>Feature</code> whose values are partly determined by values of the <code>chainingFeature</code>, as described in <code>Feature::chainingFeature</code>.</p> + + + + + + + + + + <p>The <code>Features</code> that have a particular <code>chainingFeature</code> in their <code>Feature</code> chain, whose values are partly determined by values of the <code>chainingFeature</code>, as described in <code>chainingFeature</code>.</p> + + + + + + + + + + + + + + <p>A <code>FeatureInverting</code> is a <code>Relationship</code> between <code>Features</code> asserting that their interpretations (sequences) are the reverse of each other, identified as <code>featureInverted</code> and <code>invertingFeature</code>. For example, a <code>Feature</code> identifying each person&#39;s parents is the inverse of a <code>Feature</code> identifying each person&#39;s children. A person identified as a parent of another will identify that other as one of their children.</p> + + + + + + <p>The <code>Feature</code> that is an inverse of the <code>invertingFeature</code>.</p> + + + + + + + <p>The <code>Feature</code> that is an inverse of the <code>invertedFeature</code>.</p> + + + + + + + <p>A <code>featureInverted</code> that is also the <code>owningRelatedElement</code> of this <code>FeatureInverting</code>.</p> + + + + + + + + + + <p>The FeatureInvertings that identify this Feature as their <code>featureInverted</code>.</p> + + + + + + + + + <p>The FeatureInvertings that identify this Feature as their <code>invertingFeature</code>.</p> + + + + + + + + + + <p><code>ReferenceSubsetting</code> is a kind of <code>Subsetting</code> in which the <code>referencedFeature</code> is syntactically distinguished from other <code>Features</code> subsetted by the <code>referencingFeature</code>. <code>ReferenceSubsetting</code> has the same semantics as <code>Subsetting</code>, but the <code>referencedFeature</code> may have a special purpose relative to the <code>referencingFeature</code>. For instance, <code>ReferenceSubsetting</code> is used to identify the <code>relatedFeatures</code> of a <code>Connector</code>.</p> + +<p><code>ReferenceSubsetting</code> is always an <code>ownedRelationship</code> of its <code>referencingFeature</code>. A <code>Feature</code> can have at most one <code>ownedReferenceSubsetting</code>.</p> + + + + + + <p>The <code>Feature</code> that is referenced by the <code>referencingFeature</code> of this <code>ReferenceSubsetting</code>.</p> + + + + + + + + <p>The <code>Feature</code> that owns this <code>ReferenceSubsetting</code> relationship, which is also its <code>subsettingFeature</code>.</p> + + + + + + + + + + <p>The <code>ReferenceSubsetting</code> with a certain <code>Feature</code> as the <code>referencedFeature</code>.</p> + + + + + + + + + <p>The <code>Features</code> that identify a <code>Feature</code> as their <code>featureTarget</code>.</p> + + + <p>The <code>Features</code> that are the same as or the <code>chainedFeature</code> for a <code>targetFeature</code>.</p> + + + + + + + + + + <p>The <code>CrossSubsetting</code> with a certain <code>Feature</code> as the <code>crossedFeature</code>.</p> + + + + + + + + + <p>The <code>Features</code> with a certain other <code>Feature</code> as the <code>crossFeature</code>.</p> + + + + + + + + <p><code>CrossSubsetting</code> is a kind of <code>Subsetting</code> for end <code>Features</code>, as identified by <code>crossingFeature</code>, to subset a chained <code>Feature</code>, identified by <code>crossedFeature.</code> It navigates to instances of the end <code>Feature</code>’s type from instances of other end <code>Feature</code> types on the same <code>owningType</code> (at least two end <code>Features</code> are required for any of them to have a <code>CrossSubsetting</code>).</p> + +<p>The <code>crossedFeature</code> of a <code>CrossSubsetting</code> must have a feature chain of exactly two <code>Features</code>. The second <code>Feature</code> in the chain is the <code>crossFeature</code> of the <code>crossingFeature</code> (end <code>Feature</code>), which has the same type as the <code>crossingFeature</code>. When the <code>owningType</code> of the <code>crossingFeature</code> has exactly two end <code>Features</code>, the first <code>Feature</code> in the chain of the <code>crossedFeature</code> is the other end <code>Feature</code>. The <code>crossFeature</code>’s <code>featuringType</code> in this case is the other end <code>Feature</code>. When the <code>owningType</code> has more than two end <code>Features</code>, the first <code>Feature</code> in the chain is a <code>Feature</code> that <code>CrossMultiplies</code> all the other end <code>Features</code>, which is also the <code>featuringType</code> of the <code>crossFeature</code>.</p> + +<p>A <code>crossFeature</code> must be owned by its <code>featureCrossing</code> (end <code>Feature</code>) when the <code>featureCrossing</code> <code>owningType</code> has more than two end <code>Features</code>. Otherwise, for exactly two end <code>Features</code>, the <code>crossFeatures</code> of each the ends can instead optionally be inherited by the other end from one of its <code>types</code> or a subsetted <code>Feature</code>.</p> + + + + <p>The <code>crossedFeature</code> of a <code>CrossSubsetting</code> must have exactly two <code>chainingFeatures</code>. If the <code>crossingFeature</code> of the <code>CrossSubsetting</code> is one of two end <code>Features</code>, then the first <code>chainingFeature</code> must be the other end <code>Feature</code>.</p> + + + OCL2.0 + crossingFeature.isEnd and crossingFeature.owningType <> null implies + let endFeatures: Sequence(Feature) = crossingFeature.owningType.endFeature in + let chainingFeatures: Sequence(Feature) = crossedFeature.chainingFeature in + chainingFeatures->size() = 2 and + endFeatures->size() = 2 implies + chainingFeatures->at(1) = endFeatures->excluding(crossingFeature)->at(1) + + + + + <p>The <code>crossingFeature</code> of a <code>CrossSubsetting</code> must be an end <code>Feature</code> that is owned by a <code>Type</code> with at least two end <code>Features</code>.</p> + + + OCL2.0 + crossingFeature.isEnd and +crossingFeature.owningType<>null and +crossingFeature.owningType.endFeature ->size() > 1 + + + + + + <p>The chained <code>Feature</code> that is cross subset by the <code>crossingFeature</code> of this <code>CrossSubsetting</code>.</p> + + + + + + + + <p>The end <code>Feature</code> that owns this <code>CrossSubsetting</code> relationship and is also its </code>subsettingFeature</code>.</p> + + + + + + + + + + The Kernel layer completes the KerML metamodel. + + + + + + + + + + + + + <p>The ItemFlow that has a certain <code>sourceOutputFeature</code>.</p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>PayloadFeature</code> is the <code>ownedFeature</code> of a <code>Flow</code> that identifies the things carried by the kinds of transfers that are instances of the <code>Flow</code>.</p> + + + + <p>A <code>PayloadFeature</code> must redefine the <code>Feature</code> <code><em>Transfers::Transfer::payload</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + redefinesFromLibrary('Transfers::Transfer::payload') + + + + + + + <p>The ItemFlow that has a certain <code>itemType</code>.</p> + + + + + + + + + <p>An <code>Interaction</code> is a <code>Behavior</code> that is also an <code>Association</code>, providing a context for multiple objects that have behaviors that impact one another.</p> + + + + + + + + <p>A <code>SuccessionFlow</code> is a <code>Flow</code> that also provides temporal ordering. It classifies <code><em>Transfers</em></code> that cannot start until the source <code><em>Occurrence</em></code> has completed and that must complete before the target <code><em>Occurrence</em></code> can start.</p> + + + + <p>A <code>SuccessionFlow</code> must directly or indirectly specialize the <code>Step</code> <code><em>Transfers::flowTransfersBefore</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Transfers::flowTransfersBefore') + + + + + + + + + <p>The ItemFlow that has a certain <code>targetInputFeature</code>.</p> + + + + + + + + <p>An <code>Flow</code> is a <code>Step</code> that represents the transfer of values from one <code>Feature</code> to another. <code>Flows</code> can take non-zero time to complete.</p> + + + + + <p>A <code>Flow</code> must directly or indirectly specialize the <code>Step</code> <code><em>Transfers::transfers</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Transfers::transfers') + + + + + <p>The <code>payloadTypes</code> of a <code>Flow</code> are the <code>types</code> of the <code>payloadFeature</code> of the <code>Flow</code> (if any).</p> + + + OCL2.0 + payloadType = + if payloadFeature = null then Sequence{} + else payloadFeature.type + endif + + + + + <p>The <code>sourceOutputFeature</code> of a <code>Flow</code> is the first <code>ownedFeature</code> of the first <code>connectorEnd</code> of the <code>Flow</code>.</p> + + + OCL2.0 + sourceOutputFeature = + if connectorEnd->isEmpty() or + connectorEnd.ownedFeature->isEmpty() + then null + else connectorEnd.ownedFeature->first() + endif + + + + + <p>The <code>targetInputFeature</code> of a <code>Flow</code> is the first <code>ownedFeature</code> of the second <code>connectorEnd</code> of the <code>Flow</code>.</p> + + + OCL2.0 + targetInputFeature = + if connectorEnd->size() < 2 or + connectorEnd->at(2).ownedFeature->isEmpty() + then null + else connectorEnd->at(2).ownedFeature->first() + endif + + + + + <p>The <code>flowEnds</code> of a <code>Flow</code> are all its <code>connectorEnds</code> that are <code>FlowEnds</code>.</p> + + + OCL2.0 + flowEnd = connectorEnd->selectByKind(FlowEnd) + + + + + <p>The <code>payloadFeature</code> of a <code>Flow</code> is the single one of its <code>ownedFeatures</code> that is a <code>PayloadFeature</code>.</p> + + + OCL2.0 + payloadFeature = + let payloadFeatures : Sequence(PayloadFeature) = + ownedFeature->selectByKind(PayloadFeature) in + if payloadFeatures->isEmpty() then null + else payloadFeatures->first() + endif + + + + + <p>A <code>Flow</code> must have at most one <code>ownedFeature</code> that is an <code>PayloadFeature</code>.</p> + + + OCL2.0 + ownedFeature->selectByKind(PayloadFeature)->size() <= 1 + + + + + <p>A <code>Flow</code> with <code>ownedEndFeatures</code> must specialize the <code>Step</code> <code><em>Transfers::flowTransfers</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + ownedEndFeatures->notEmpty() implies + specializesFromLibrary('Transfers::flowTransfers') + + + + + + + <p>The type of values transferred, which is the <code>type</code> of the <code>payloadFeature</code> of the <code>Flow</code>.</p> + + + + + + + + + <p>The <code>Feature</code> that receives the values carried by the <code>Flow</code>. It must be a <code>feature</code> of the <code>target</code> of the <code>Flow</code>.</p> + + + + + + + <p>The <code>Feature</code> that provides the items carried by the <code>Flow</code>. It must be a <code>feature</code> of the <code>source</code> of the <code>Flow</code>.</p> + + + + + + + + <p>The <code>connectorEnds</code> of this <code>Flow</code> that are <code>FlowEnds</code>.</p> + + + + + + + + <p>The <code>ownedFeature</code> of the <code>Flow</code> that is a <code>PayloadFeature</code> (if any).</p> + + + + + + + + <p>The <code>Interactions</code> that type this <code>Flow</code>. <code>Interactions</code> are both <code>Associations</code> and <code>Behaviors</code>, which can type <code>Connectors</code> and <code>Steps</code>, respectively.</p> + + + + + + + + <p>A <code>FlowEnd</code> is a <code>Feature</code> that is one of the <code>connectorEnds</code> giving the <code><em>source</em></code> or <code><em>target</em></code> of a <code>Flow</code>. For <code>Flows</code> typed by <code><em>FlowTransfer</em></code> or its specializations, <code>FlowEnds</code> must have exactly one <code>ownedFeature</code>, which redefines <code><em>Transfer::source::sourceOutput</em></code> or <code><em>Transfer::target::targetInput</em></code> and redefines the corresponding feature of the <code>relatedElement</code> for its end.</p> + + + + <p>A <code>FlowEnd</code> must be an end <code>Feature</code>.</p> + + + OCL2.0 + isEnd + + + + + <p>A <code>FlowEnd</code> must have exactly one <code>ownedFeature</code>.</p> + + + OCL2.0 + ownedFeature->size() = 1 + + + + + <p>The <code>owningType</code> of a <code>FlowEnd</code> must be a <code>Flow</code>.</p> + + + OCL2.0 + owningType <> null and owningType.oclIsKindOf(Flow) + + + + + + + + + <p>A <code>LibraryPackage</code> is a <code>Package</code> that is the container for a model library. A <code>LibraryPackage</code> is itself a library <code>Element</code> as are all <code>Elements</code> that are directly or indirectly contained in it.</p> + + + + + + <p>Whether this <code>LibraryPackage</code> contains a standard library model. This should only be set to true for <code>LibraryPackages</code> in the standard Kernel Model Libraries or in normative model libraries for a language built on KerML.</p> + + + + + + + <p>The <code>libraryNamespace</code> for a <code>LibraryPackage</code> is itself.</p> + + + + OCL2.0 + self + + + + + + + + + + + <p><code>ElementFilterMembership</code> is a <code>Membership</code> between a <code>Namespace</code> and a model-level evaluable <code><em>Boolean</em></code>-valued <code>Expression</code>, asserting that imported <code>members</code> of the <code>Namespace</code> should be filtered using the <code>condition</code> <code>Expression</code>. A general <code>Namespace</code> does not define any specific filtering behavior, but such behavior may be defined for various specialized kinds of <code>Namespaces</code>.</p> + + + + + <p>The <code>condition</code> <code>Expression</code> must be model-level evaluable.</p> + + + OCL2.0 + condition.isModelLevelEvaluable + + + + + <p>The <code>result</code> <code>parameter</code> of the <code>condition</code> <code>Expression</code> must directly or indirectly specialize <code><em>ScalarValues::Boolean</em></code>.</p> + + + OCL2.0 + condition.result.specializesFromLibrary('ScalarValues::Boolean') + + + + + + <p>The model-level evaluable <code>Boolean</code>-valued <code>Expression</code> used to filter the imported <code>members</code> of the <code>membershipOwningNamespace</code> of this <code>ElementFilterMembership</code>.</p> + + + + + + + + + + <p>The Package that has a certain Expression as a <code>filterCondition</code>.</p> + + + + + + + + <p>A <code>Package</code> is a <code>Namespace</code> used to group <code>Elements</code>, without any instance-level semantics. It may have one or more model-level evaluable <code>filterCondition</code> <code>Expressions</code> used to filter its <code>importedMemberships</code>. Any imported <code>member</code> must meet all of the <code>filterConditions</code>.</p> + + + + <p>The <code>filterConditions</code> of a <code>Package</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> + + + OCL2.0 + filterCondition = ownedMembership-> + selectByKind(ElementFilterMembership).condition + + + + + + <p>The model-level evaluable <code><em>Boolean</em></code>-valued <code>Expression</code> used to filter the <code>members</code> of this <code>Package</code>, which are owned by the <code>Package</code> are via <code>ElementFilterMemberships</code>.</p> + + + + + + + + <p>Exclude <code>Elements</code> that do not meet all the <code>filterConditions</code>.</p> + + + + + OCL2.0 + self.oclAsType(Namespace).importedMemberships(excluded)-> + select(m | self.includeAsMember(m.memberElement)) + + + + + + + + + + + + + + <p>Determine whether the given <code>element</code> meets all the <code>filterConditions</code>.</p> + + + + OCL2.0 + let metadataFeatures: Sequence(AnnotatingElement) = + element.ownedAnnotation.annotatingElement-> + selectByKind(MetadataFeature) in + self.filterCondition->forAll(cond | + metadataFeatures->exists(elem | + cond.checkCondition(elem))) + + + + + + + + + + + + <p>The ElementFilterMembership that owns the <code>condition</code>.</p> + + + + + + + + + + <p>A <code>Class</code> is a <code>Classifier</code> of things (in the universe) that can be distinguished without regard to how they are related to other things (via <code>Features</code>). This means multiple things classified by the same <code>Class</code> can be distinguished, even when they are related other things in exactly the same way.</p> + + + + + <p>A <code>Class</code> must directly or indirectly specialize the base <code>Class</code> <code><em>Occurrences::Occurrence</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Occurrences::Occurrence') + + + + + <p>A <code>Class</code> must not specialize a <code>DataType</code> and it can only specialize an <code>Association</code> if it is also itself a kind of <code>Association</code> (such as an <code>AssociationStructure</code> or <code>Interaction</code>).</p> + + + OCL2.0 + ownedSpecialization.general-> + forAll(not oclIsKindOf(DataType)) and +not oclIsKindOf(Association) implies + ownedSpecialization.general-> + forAll(not oclIsKindOf(Association)) + + + + + + + + + <p><code>LiteralBoolean</code> is a <code>LiteralExpression</code> that provides a <code><em>Boolean</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have type <code><em>Boolean</em></code>.</p> + + + + + <p>A <code>LiteralBoolean</code> must directly or indirectly specialize <em><code>Performances::literalBooleanEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalBooleanEvaluations') + + + + + + <p>The <code><em>Boolean</em></code> value that is the result of evaluating this <code>LiteralBoolean</code>.</p> + + + <p>The Boolean value that is the result of evaluating this Expression.</p> + + + + + + + + <p>A <code>LiteralExpression</code> is an <code>Expression</code> that provides a basic <code><em>DataValue</em></code> as a result.</p> + + + + + <p>A <code>LiteralExpression</code> is always model-level evaluable.</p> + + + OCL2.0 + isModelLevelEvaluable = true + + + + + <p>A <code>LiteralExpression</code> must directly or indirectly specialize the base <code>LiteralExpression</code> <code><em>Performances::literalEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalEvaluations') + + + + + + <p>A <code>LiteralExpression</code> is always model-level evaluable.</p> + + + + OCL2.0 + true + + + + + + + + + + + + + <p>The model-level value of a <code>LiteralExpression</code> is itself.</p> + + + + OCL2.0 + Sequence{self} + + + + + + + + + + + + <p>A <code>LiteralRational</code> is a <code>LiteralExpression</code> that provides a <code><em>Rational</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>Rational</em></code>.</p> + + + + + <p>A <code>LiteralRational</code> must directly or indirectly specialize <em><code>Performances::literalRationalEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalRationalEvaluations') + + + + + + <p>The value whose rational approximation is the result of evaluating this <code>LiteralRational</code>.</p> + + + + <p>The Real value that is the result of evaluating this Expression.</p> + + + + + + + <p>A <code>LiteralInfinity</code> is a <code>LiteralExpression</code> that provides the positive infinity value (<code>*</code>). It's <code>result</code> must have the type <code><em>Positive</em></code>.</p> + + + + + <p>A <code>LiteralInfinity</code> must directly or indirectly specialize <em><code>Performances::literalIntegerEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalIntegerEvaluations') + + + + + + + <p>A <code>LiteralInteger</code> is a <code>LiteralExpression</code> that provides an <code><em>Integer</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>Integer</em></code>.</p> + + + + + <p>A <code>LiteralInteger</code> must directly or indirectly specialize <em><code>Performances::literalIntegerEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalIntegerEvaluations') + + + + + + <p>The <code><em>Integer</em></code> value that is the result of evaluating this <code>LiteralInteger</code>.</p> + + + <p>The Integer value that is the result of evaluating this Expression.</p> + + + + + + + + <p>A <code>NullExpression</code> is an <code>Expression</code> that results in a null value.</p> + + + + + <p>A <code>NullExpression</code> must directly or indirectly specialize the base <code>NullExpression</code> <code><em>Performances::nullEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::nullEvaluations') + + + + + + <p>A <code>NullExpression</code> is always model-level evaluable.</p> + + + + OCL2.0 + true + + + + + + + + + + + + + <p>The model-level value of a <code>NullExpression</code> is an empty sequence.</p> + + + + OCL2.0 + Sequence{} + + + + + + + + + + + + <p>A <code>LiteralString</code> is a <code>LiteralExpression</code> that provides a <code><em>String</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>String</em></code>.</p> + + + + + <p>A <code>LiteralString</code> must directly or indirectly specialize <em><code>Performances::literalStringEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalStringEvaluations') + + + + + + <p>The String value that is the result of evaluating this Expression.</p> + + + <p>The <code><em>String</em></code> value that is the result of evaluating this <code>LiteralString</code>.</p> + + + + + + + + <p>An <code>InvocationExpression</code> is an <code>InstantiationExpression</code> whose <code>instantiatedType</code> must be a <code>Behavior</code> or a <code>Feature</code> typed by a single <code>Behavior</code> (such as a <code>Step</code>). Each of the input <code>parameters</code> of the <code>instantiatedType</code> are bound to the <code>result</code> of an <code>argument</code> <code>Expression</code>. If the <code>instantiatedType</code> is a <code>Function</code> or a <code>Feature</code> typed by a <code>Function</code>, then the <code>result</code> of the <code>InvocationExpression</code> is the <code>result</code> of the invoked <code>Function</code>. Otherwise, the <code>result</code> is an instance of the <code>instantiatedType</code> (essentially like a behavioral <code>ConstructorExpression</code>).</p> + + + + + <p>If the <code>instantiatedType</code> of an <code>InvocationExpression</code> is neither a <code>Function</code> nor a <code>Feature</code> whose type is a <code>Function</code>, then the <code>InvocationExpression</code> must own a <code>BindingConnector</code> between itself and its <code>result</code> parameter.</p> + + + OCL2.0 + not instantiatedType.oclIsKindOf(Function) and +not (instantiatedType.oclIsKindOf(Feature) and + instantiatedType.oclAsType(Feature).type->exists(oclIsKindOf(Function))) implies + ownedFeature.selectByKind(BindingConnector)->exists( + relatedFeature->includes(self) and + relatedFeature->includes(result)) + + + + + <p>An <code>InvocationExpression</code> must own a <code>BindingConnector</code> between the <code>featureWithValue</code> and <code>value</code> <code>Expression</code> of any <code>FeatureValue</code> that is the effective default value for a <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + TBD + + + + + <p>The <code>arguments</code> of an <code>InvocationExpression</code> are the <code>value</code> <code>Expressions</code> of the <code>FeatureValues</code> of its <code>ownedFeatures</code>, in an order corresponding to the order of the <code>input</code> parameters of the <code>instantiatedType</code> that the <code>ownedFeatures</code> redefine.</p> + + + OCL2.0 + instantiatedType.input->collect(inp | + ownedFeatures->select(redefines(inp)).valuation-> + select(v | v <> null).value +) + + + + + <p>Each <code>input</code> parameter of an <code>InvocationExpression</code> must redefine exactly one <code>input</code> parameter of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + let parameters : OrderedSet(Feature) = instantiatedType.input in +input->forAll(inp | + inp.ownedRedefinition.redefinedFeature-> + intersection(parameters)->size() = 1) + + + + + <p>Two different <code>ownedFeatures</code> of an <code>InvocationExpression</code> must not redefine the same <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + let features : OrderedSet(Feature) = instantiatedType.feature in +input->forAll(inp1 | input->forAll(inp2 | + inp1 <> inp2 implies + inp1.ownedRedefinition.redefinedFeature-> + intersection(inp2.ownedRedefinition.redefinedFeature)-> + intersection(features)->isEmpty())) + + + + + <p>If the <code>instantiatedType</code> of an <code>InvocationExpression</code> is neither a <code>Function</code> nor a <code>Feature</code> whose type is a <code>Function</code>, then the <code>result</code> of the <code>InvocationExpression</code> must specialize the <code>instantiatedType</code>.</p> + + + OCL2.0 + not instantiatedType.oclIsKindOf(Function) and +not (instantiatedType.oclIsKindOf(Feature) and + instantiatedType.oclAsType(Feature).type->exists(oclIsKindOf(Function))) implies + result.specializes(instantiatedType) + + + + + <p>An <code>InvocationExpression</code> must specialize its <code>instantiatedType</code>.</p> + + + OCL2.0 + specializes(instantiatedType) + + + + + <p>The <code>instantiatedType</code> of an <code>InvocationExpression</code> must be either a <code>Behavior</code> or a <code>Feature</code> with a single <code>type</code>, which is a <code>Behavior</code>.</p> + + + OCL2.0 + instantiatedType.oclIsKindOf(Behavior) or +instantiatedType.oclIsKindOf(Feature) and + instantiatedType.type->exists(oclIsKindOf(Behavior)) and + instantiatedType.type->size(1) + + + + + <p>Other than its <code>result</code>, all the <code>ownedFeatures</code> of an <code>InvocationExpression</code> must have <code>direction = in</code>.</p> + + + OCL2.0 + ownedFeature->forAll(f | + f <> result implies + f.direction = FeatureDirectionKind::_'in') + + + + + + <p>An <code>InvocationExpression</code> is model-level evaluable if all its <code>argument</code> <code>Expressions</code> are model-level evaluable and its <code>function</code> is model-level evaluable.</p> + + + + + OCL2.0 + argument->forAll(modelLevelEvaluable(visited)) and + function.isModelLevelEvaluable + + + + + + + + + + + + + <p>Apply the <code>Function</code> that is the <code>type</code> of this <code>InvocationExpression</code> to the argument values resulting from evaluating each of the <code>argument</code> <code>Expressions</code> on the given <code>target</code>. If the application is not possible, then return an empty sequence.</p> + + + + + + + + + + + + <p>A <code>FeatureReferenceExpression</code> is an <code>Expression</code> whose <code>result</code> is bound to a <code>referent</code> <code>Feature</code>.</p> + + + + <p>The <code>referent</code> of a <code>FeatureReferenceExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>ParameterMembership</code>.</p> + + + OCL2.0 + referent = + let nonParameterMemberships : Sequence(Membership) = ownedMembership-> + reject(oclIsKindOf(ParameterMembership)) in + if nonParameterMemberships->isEmpty() or + not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) + then null + else nonParameterMemberships->first().memberElement.oclAsType(Feature) + endif + + + + + <p>A <code>FeatureReferenceExpression</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between the <code>referent</code> and <code>result</code> of the <code>FeatureReferenceExpression</code>.</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(targetFeature) and + b.relatedFeatures->includes(result)) + + + + + <p>The first <code>ownedMembership</code> of a <code>FeatureReferenceExpression</code> that is not a <code>ParameterMembership</code> must have a <code>Feature</code> as its <code>memberElement</code>.</p> + + + OCL2.0 + let membership : Membership = + ownedMembership->reject(m | m.oclIsKindOf(ParameterMembership)) in +membership->notEmpty() and +membership->at(1).memberElement.oclIsKindOf(Feature) + + + + + <p>The <code>result</code> parameter of a <code>FeatureReferenceExpression</code> must specialize the <code>referent</code> of the <code>FeatureReferenceExpression</code>.</p> + + + OCL2.0 + result.owningType() = self and result.specializes(referent) + + + + + <p>A <code>FeatureReferenceExpression</code> must own its <code>result</code> parameter.</p> + + + OCL2.0 + result.owningType = self + + + + + + <p>The <code>Feature</code> that is referenced by this <code>FeatureReferenceExpression</code>, which is its first non-<code>parameter</code> <code>member</code>.<p> + + + + + + + <p>A <code>FeatureReferenceExpression</code> is model-level evaluable if it&#39;s <code>referent</code></p> + +<ul> + <li>conforms to the self-reference feature <code><em>Anything::self</em></code>;</li> + <li>is an <code>Expression</code> that is model-level evaluable;</li> + <li>has an <code>owningType</code> that is a <code>Metaclass</code> or <code>MetadataFeature</code>; or</li> + <li>has no <code>featuringTypes</code> and, if it has a <code>FeatureValue</code>, the <code>value</code> <code>Expression</code> is model-level evaluable.</li> +</ul> + + + + + OCL2.0 + referent.conformsTo('Anything::self') or +visited->excludes(referent) and +(referent.oclIsKindOf(Expression) and + referent.oclAsType(Expression).modelLevelEvaluable(visited->including(referent)) or +referent.owningType <> null and + (referent.owningType.isOclKindOf(MetaClass) or + referent.owningType.isOclKindOf(MetadataFeature)) or +referent.featuringType->isEmpty() and + (referent.valuation = null or + referent.valuation.modelLevelEvaluable(visited->including(referent)))) + + + + + + + + + + + + + <p>First, determine a <code>value</code> <code>Expression</code> for the <code>referent</code>:</p> + +<ul> + <li>If the <code>target</code> <code>Element</code> is a Type that has a <code>feature</code> that is the <code>referent</code> or (directly or indirectly) redefines it, then the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> for that <code>feature</code> (if any).</li> + <li>Else, if the <code>referent</code> has no <code>featuringTypes</code>, the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> for the <code>referent</code> (if any).</li> +</ul> + +<p>Then:</p> + +<ul> + <li>If such a value <code>Expression</code> exists, return the result of evaluating that <code>Expression</code> on the <code>target</code>.</li> + <li>Else, if the <code>referent</code> is not an <code>Expression</code>, return the <code>referent</code>.</li> + <li>Else return the empty sequence.</li> +</ul> + + + + + OCL2.0 + if not target.oclIsKindOf(Type) then Sequence{} +else + let feature: Sequence(Feature) = + target.oclAsType(Type).feature->select(f | + f.ownedRedefinition.redefinedFeature-> + includes(referent)) in + if feature->notEmpty() then + feature.valuation.value.evaluate(target) + else if referent.featuringType->isEmpty() + then referent + else Sequence{} + endif endif +endif + + + + + + + + + + + + + <p>A <code>FeatureReferenceExpression</code> that has a certain <code>referent</code> <code>Feature</code>.</p> + + + + + + + + <p>A <code>SelectExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"select"</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::select</code></em> from the Kernel Functions Library.</p> + + + + <p>The <code>operator</code> of a <code>SelectExpression</code> must be <code>'select'</code>.</p> + + + OCL2.0 + operator = 'select' + + + + + <p>The <code>result</code> of a <code>SelectExpression</code> must specialize the <code>result</code> parameter of the first <code>argument</code> of the <code>SelectExpression</code>.</p> + + + OCL2.0 + arguments->notEmpty() implies + result.specializes(arguments->first().result) + + + + + + + + + + + <p>An <code>OperatorExpression</code> is an <code>InvocationExpression</code> whose <code>function</code> is determined by resolving its <code>operator</code> in the context of one of the standard packages from the Kernel Function Library.</p> + + + + + <p>An <code>operator</code> symbol that names a corresponding <code>Function</code> from one of the standard packages from the Kernel Function Library .</p> + + + + + + <p>The <code>instantiatedType</code> of an <code>OperatorExpression</code> is the resolution of it's <code>operator</code> from one of the packages <em><code>BaseFunctions</code></em>, <em><code>DataFunctions</code></em>, or <em><code>ControlFunctions</code></em> from the Kernel Function Library.</p> + + + + OCL2.0 + let libFunctions : Sequence(Element) = + Sequence{'BaseFunctions', 'DataFunctions', 'ControlFunctions'}-> + collect(ns | resolveGlobal(ns + "::'" + operator + "'"). + memberElement) in +if libFunctions->isEmpty() then null +else libFunctions->first().oclAsType(Type) +endif + + + + + + + + <p>A <code>CollectExpression</code> is an <code>OperatorExpression</code> whose <code>operator</code> is <code>"collect"</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::collect</code></em> from the Kernel Functions Library.</p> + + + + <p>The <code>operator</code> of a <code>CollectExpression</code> must be <code>"collect"</code>.</p> + + + OCL2.0 + operator = 'collect' + + + + + + + + + + + <p>A <code>FeatureChainExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"."</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::'.'</code></em> from the Kernel Functions Library. It evaluates to the result of chaining the <code>result</code> <code>Feature</code> of its single <code>argument</code> <code>Expression</code> with its <code>targetFeature</code>.</p> + + + + <p>The first <code>ownedFeature</code> of the first owned input <code>parameter</code> of a <code>FeatureChainExpression</code> must redefine the <code>Feature</code> <code><em>ControlFunctions::'.'::source::target</em></code> from the Kernel Functions Library.</p> + + + OCL2.0 + let sourceParameter : Feature = sourceTargetFeature() in +sourceTargetFeature <> null and +sourceTargetFeature.redefinesFromLibrary('ControlFunctions::\'.\'::source::target') + + + + + <p>The first <code>ownedFeature</code> of the first owned input <code>parameter</code> of a <code>FeatureChainExpression</code> must redefine its <code>targetFeature</code>.</p> + + + OCL2.0 + let sourceParameter : Feature = sourceTargetFeature() in +sourceTargetFeature <> null and +sourceTargetFeature.redefines(targetFeature) + + + + + <p>The <code>targetFeature</code> of a <code>FeatureChainExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>ParameterMembership</code>.</p> + + + OCL2.0 + targetFeature = + let nonParameterMemberships : Sequence(Membership) = ownedMembership-> + reject(oclIsKindOf(ParameterMembership)) in + if nonParameterMemberships->isEmpty() or + not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) + then null + else nonParameterMemberships->first().memberElement.oclAsType(Feature) + endif + + + + + <p>The <code>targetFeature</code> of a <code>FeatureChainExpression</code> must be featured within the <code>result</code> parameter of the <code>argument</code> <code>Expression</code> of the <code>FeatureChainExpression</code>.</p> + + + + + OCL2.0 + argument->notEmpty() implies + targetFeature.isFeaturedWithin(argument->first().result) + + + + + <p>The <code>operator</code> of a <code>FeatureChainExpression</code> must be <code>"."</code>.</p> + + + OCL2.0 + operator = '.' + + + + + <p>The <code>result</code> parameter of a <code>FeatureChainExpression</code> must specialize the feature chain of the <code>FeatureChainExpression</code>.</p> + + + OCL2.0 + let inputParameters : Sequence(Feature) = + ownedFeatures->select(direction = _'in') in +let sourceTargetFeature : Feature = + owningExpression.sourceTargetFeature() in +sourceTargetFeature <> null and +result.subsetsChain(inputParameters->first(), sourceTargetFeature) and +result.owningType = self + + + + + + + + + + <p>The <code>Feature</code> that is accessed by this <code>FeatureChainExpression<code>, which is its first non-<code>parameter</code> <code>member</code>.<p> + + + + + + + <p>Return the first <code>ownedFeature</code> of the first owned input <code>parameter</code> of this <code>FeatureChainExpression</code> (if any).</p> + + + + OCL2.0 + let inputParameters : Feature = ownedFeatures-> + select(direction = _'in') in +if inputParameters->isEmpty() or + inputParameters->first().ownedFeature->isEmpty() +then null +else inputParameters->first().ownedFeature->first() +endif + + + + + + + + + + + + + + + + + + <p>The <code>MetadataAccessExpressions</code> having a certain <code>Element</code> as their <code>referencedElement</code>.</p> + + + + + + + + <p>A <code>MetadataAccessExpression</code> is an <code>Expression</code> whose <code>result</code> is a sequence of instances of <code>Metaclasses</code> representing all the <code>MetadataFeature</code> annotations of the <code>referencedElement</code>. In addition, the sequence includes an instance of the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code>, with values for all the abstract syntax properties of the <code>referencedElement</code>.</p> + + + + <p>A <code>MetadataAccessExpression</code> must directly or indirectly specialize the base <code>MetadataAccessExpression</code> <code><em>Performances::metadataAccessEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::metadataAccessEvaluations') + + + + + <p>A <code>MetadataAccessExpression</code> must have at least one <code>ownedMember</code> that is not a <code>FeatureMembership</code>.</p> + + + OCL2.0 + ownedMembership->exists(not oclIsKindOf(FeatureMembership)) + + + + + <p>The <code>referencedElement</code> of a <code>MetadataAccessExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>FeatureMembership</code>.</p> + + + OCL2.0 + referencedElement = + let elements : Sequence(Element) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement in + if elements->isEmpty() then null + else elements->first() + endif + + + + + + <p>The <code>Element</code> whose metadata is being accessed.</p> + + + + + + + <p>A <code>MetadataAccessExpression</code> is always model-level evaluable.</p> + + + + OCL2.0 + true + + + + + + + + + + + + + <p>Return the <code>ownedElements</code> of the <code>referencedElement</code> that are <code>MetadataFeatures</code> and have the <code>referencedElement</code> as an <code>annotatedElement</code>, plus a <code>MetadataFeature</code> whose <code>annotatedElement</code> is the <code>referencedElement</code>, whose <code>metaclass</code> is the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code> and whose <code>ownedFeatures</code> are bound to the values of the MOF properties of the <code>referencedElement</code>.</p> + + + + OCL2.0 + referencedElement.ownedElement-> + select(oclIsKindOf(MetadataFeature) + and annotatedElement->includes(referencedElement))-> + including(metaclassFeature()) + + + + + + + + + + + <p>Return a <code>MetadataFeature</code> whose <code>annotatedElement</code> is the <code>referencedElement</code>, whose <code>metaclass</code> is the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code> and whose <code>ownedFeatures</code> are bound to the MOF properties of the <code>referencedElement</code>.</p> + + + + + + + <p>An <code>IndexExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"#"</code>, which resolves to the <code>Function</code> <em><code>BasicFunctions::'#'</code></em> from the Kernel Functions Library.</p> + + + + <p>The <code>result</code> of an <code>IndexExpression</code> must specialize the <code>result</code> parameter of the first <code>argument</code> of the <code>IndexExpression</code>, unless that <code>result</code> already directly or indirectly specializes the <code>DataType</code> <em><code>Collections::Array</code></em> from the Kernel Data Type Library.</p> + + + OCL2.0 + arguments->notEmpty() and +not arguments->first().result.specializesFromLibrary('Collections::Array') implies + result.specializes(arguments->first().result) + + + + + <p>The <code>operator</code> of an <code>IndexExpression</code> must be <code>"#"</code>.</p> + + + OCL2.0 + operator = '#' + + + + + + + + + + + <p>An <code>InstantiationExpression</code> is an <code>Expression</code> that instantiates its <code>instantiatedType</code>, binding some or all of the <code>features</code> of that <code>Type</code> to the <code>results</code> of its <code>arguments</code>.</p> + +<p><code>InstantiationExpression</code> is abstract, with concrete subclasses <code>InvocationExpression</code> and <code>ConstructorExpression</code>.</p> + + + + <p>An <code>InstantiationExpression</code> must own its <code>result</code> parameter.</p> + + + OCL2.0 + result.owningType = self + + + + + <p>The <code>instantiatedType</code> of an <code>InstantiationExpression</code> is given by the result of the <code>instantiatedType()</code> operation.</p> + + + OCL2.0 + instantiatedType = instantiatedType() + + + + + <p>An <code>InstantiationExpression</code> must have an <code>InstantiatedType</code>.</p> + + + OCL2.0 + instantiatedType() <> null + + + + + + <p>The <code>Expressions</code> whose <code>results</code> are bound to <code>features</code> of the <code>instantiatedType</code>. The <code>arguments</code> are ordered consistent with the order of the <code>features</code>, though they may not be one-to-one with all the <code>features</code>.</p> + +<p><strong>Note.</strong> The derivation of <code>argument</code> is given in the concrete subclasses of <code>InstantiationExpression</code>.</p> + + + + + + + <p>The <code>Type</code> that is being instantiated.</p> + + + + + + + <p>Return the <code>Type</code> to act as the <code>instantiatedType</code> for this <code>InstantiationExpression</code>. By default, this is the <code>memberElement</code> of the first <code>ownedMembership</code> that is not a <code>FeatureMembership</code>, which must be a <code>Type</code>.</p> + +<p><b>Note.</b> This operation is overridden in the subclass <code>OperatorExpression</code>.</p> + + + + OCL2.0 + let members : Sequence(Element) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement in +if members->isEmpty() or not members->first().oclIsKindOf(Type) then null +else typeMembers->first().oclAsType(Type) +endif + + + + + + + + + + + + + + + + + <p>A <code>ConstructorExpression</code> is an <code>InstantiationExpression</code> whose <code>result</code> specializes its <code>instantiatedType</code>, binding some or all of the <code>features</code> of the <code>instantiatedType</code> to the <code>results</code> of its <code>argument</code> <code>Expressions</code>.</p> + + + + <p>The <code>arguments</code> of a <code>ConstructorExpression</code> are the <code>value</code> <code>Expressions</code> of the <code>FeatureValues</code> of the <code>ownedFeatures</code> of its <code>result</code> parameter, in an order corresponding to the order of the <code>features</code> of the <code>instantiatedType</code> that the <code>result</code> <code>ownedFeatures</code> redefine.</p> + + + OCL2.0 + instantiatedType.feature->collect(f | + result.ownedFeatures->select(redefines(f)).valuation-> + select(v | v <> null).value +) + + + + + <p>Two different <code>ownedFeatures</code> of the <code>result</code> of a <code>ConstructorExpression</code> must not redefine the same <code>feature</code> of the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> + + + OCL2.0 + let features : OrderedSet(Feature) = instantiatedType.feature-> + select(visibility = VisibilityKind::public) in +result.ownedFeature->forAll(f1 | result.ownedFeature->forAll(f2 | + f1 <> f2 implies + f1.ownedRedefinition.redefinedFeature-> + intersection(f2.ownedRedefinition.redefinedFeature)-> + intersection(features)->isEmpty())) + + + + + <p>Each <code>ownedFeature</code> of the result of a <code>ConstructionExpression</code> must redefine exactly one public <code>feature</code> of the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> + + + OCL2.0 + let features : OrderedSet(Feature) = instantiatedType.feature-> + select(owningMembership.visibility = VisibilityKind::public) in +result.ownedFeature->forAll(f | + f.ownedRedefinition.redefinedFeature-> + intersection(features)->size() = 1) + + + + + <p>The <code>result</code> of a <code>ConstructorExpression</code> must own a <code>BindingConnector</code> between the <code>featureWithValue</code> and <code>value</code> <code>Expression</code> of any <code>FeatureValue</code> that is the effective default value for a <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + TBD + + + + + <p>A <code>ConstructorExpression</code> must directly or indirectly specialize the <code>Expression</code> <em><code>Performances::constructorEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializes('Performances::constructorEvaluations') + + + + + <p>The <code>result</code> of a <code>ConstructorExpression</code> must specialize the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> + + + OCL2.0 + result.specializes(instantiatedType) + + + + + <p>A <code>ConstructorExpression</code> must not have any <code>ownedFeatures</code> other than its <code>result</code>.</p> + + + OCL2.0 + ownedFeatures->excluding(result)->isEmpty() + + + + + + <p>A <code>ConstructorExpression</code> is model-level evaluable if all its argument <code>Expressions</code> are model-level evaluable.</p> + + + + + OCL2.0 + argument->forAll(modelLevelEvaluable(visited)) + + + + + + + + + + + + + + + <p>A <code>InstantiationExpression</code> that has a certain <code>argument</code> <code>Expression</code>.</p> + + + + + + + + + + <p>A <code>Structure</code> is a <code>Class</code> of objects in the modeled universe that are primarily structural in nature. While such an object is not itself behavioral, it may be involved in and acted on by <code>Behaviors</code>, and it may be the performer of some of them.</p> + + + + + <p>A <code>Structure</code> must directly or indirectly specialize the base <code>Structure</code> <code><em>Objects::Object</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Objects::Object') + + + + + <p>A <code>Structure</code> must not specialize a <code>Behavior</code>.</p> + + + OCL2.0 + ownedSpecialization.general->forAll(not oclIsKindOf(Behavior)) + + + + + + + + + + <p>The Expressions that have a certain Feature its owned or inherited <code>result</code>.</p> + + + + + + + + <p>A <code>Predicate</code> is a <code>Function</code> whose <code>result</code> <code>parameter</code> has type <code><em>Boolean</em></code> and multiplicity <code>1..1</code>.</p> + + + + + <p>A <code>Predicate</code> must directly or indirectly specialize the base <code>Predicate</code> <code><em>Performances::BooleanEvaluation</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::BooleanEvaluation') + + + + + + + <p>A <code>ReturnParameterMembership</code> is a <code>ParameterMembership</code> that indicates that the <code>ownedMemberParameter</code> is the <code>result</code> <code>parameter</code> of a <code>Function</code> or <code>Expression</code>. The <code>direction</code> of the <code>ownedMemberParameter</code> must be <code>out</code>.</p> + + + + + <p>The <code>owningType</code> of a <code>ReturnParameterMembership</code> must be a <code>Function</code> or <code>Expression</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(Function) or owningType.oclIsKindOf(Expression) + + + + + + <p>The <code>ownedMemberParameter</code> of a <code>ReturnParameterMembership</code> must have direction <code>out</code>. (This is a leaf operation that cannot be further redefined.)</p> + + + + OCL2.0 + FeatureDirectionKind::out + + + + + + + + + + + + <p>The Functions that have a certain Feature its owned or inherited <code>result</code>.</p> + + + + + + + + <p>An <code>Invariant</code> is a <code>BooleanExpression</code> that is asserted to have a specific <code><em>Boolean</em></code> result value. If <code>isNegated = false</code>, then the result is asserted to be true. If <code>isNegated = true</code>, then the result is asserted to be false.</p> + + + + + <p>An <code>Invariant</code> must directly or indirectly specialize either of the following <code>BooleanExpressions</code> from the Kernel Semantic Library: <code><em>Performances::trueEvaluations</em></code>, if <code>isNegated = false</code>, or <code><em>Performances::falseEvaluations</em></code>, if <code>isNegated = true</code>.</p> + + + OCL2.0 + if isNegated then + specializesFromLibrary('Performances::falseEvaluations') +else + specializesFromLibrary('Performances::trueEvaluations') +endif + + + + + + <p>Whether this <code>Invariant</code> is asserted to be false rather than true.</p> + + + + + + + + + <p>A <code>BooleanExpression</code> is a <em><code>Boolean</code></em>-valued <code>Expression</code> whose type is a <code>Predicate</code>. It represents a logical condition resulting from the evaluation of the <code>Predicate</code>.</p> + + + + + <p>A <code>BooleanExpression</code> must directly or indirectly specialize the base <code>BooleanExpression</code> <code><em>Performances::booleanEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::booleanEvaluations') + + + + + + <p>The Predicate that types the Expression.</p> + + + + <p>The <code>Predicate</code> that types this <code>BooleanExpression</code>.</p> + + + + + + + + <p>An <code>Expression</code> is a <code>Step</code> that is typed by a <code>Function</code>. An <code>Expression</code> that also has a <code>Function</code> as its <code>featuringType</code> is a computational step within that <code>Function</code>. An <code>Expression</code> always has a single <code>result</code> parameter, which redefines the <code>result</code> parameter of its defining <code>function</code>. This allows <code>Expressions</code> to be interconnected in tree structures, in which inputs to each <code>Expression</code> in the tree are determined as the results of other <code>Expression</code> in the tree.</p> + + + + + <p>Whether an <code>Expression</code> <code>isModelLevelEvaluable</code> is determined by the <code>modelLevelEvaluable()</code> operation.</p> + + + OCL2.0 + isModelLevelEvaluable = modelLevelEvaluable(Set(Element){}) + + + + + <p>An <code>Expression</code> must directly or indirectly specialize the base <code>Expression</code> <code><em>Performances::evaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::evaluations') + + + + + <p>If this <code>Expression</code> is owned by a <code>FeatureValue</code>, then it must have the same <code>featuringTypes</code> as the <code>featureWithValue</code> of the <code>FeatureValue</code>.</p> + + + OCL2.0 + owningMembership <> null and +owningMembership.oclIsKindOf(FeatureValue) implies + let featureWithValue : Feature = + owningMembership.oclAsType(FeatureValue).featureWithValue in + featuringType = featureWithValue.featuringType + + + + + <p>If an <code>Expression</code> has an <code>Expression</code> owned via a <code>ResultExpressionMembership</code>, then the owning <code>Expression</code> must also own a <code>BindingConnector</code> between its <code>result</code> <code>parameter</code> and the <code>result</code> <code>parameter</code> of the result <code>Expression</code>.</p> + + + OCL2.0 + ownedMembership.selectByKind(ResultExpressionMembership)-> + forAll(mem | ownedFeature.selectByKind(BindingConnector)-> + exists(binding | + binding.relatedFeature->includes(result) and + binding.relatedFeature->includes(mem.ownedResultExpression.result))) + + + + + <p>The <code>result</code> parameter of an <code>Expression</code> is its <code>parameter</code> owned (possibly in a supertype) via a <code>ReturnParameterMembership</code> (if any).</p> + + + OCL2.0 + result = + let resultParams : Sequence(Feature) = + featureMemberships-> + selectByKind(ReturnParameterMembership). + ownedMemberParameter in + if resultParams->notEmpty() then resultParams->first() + else null + endif + + + + + + <p>An <code>Expression</code> must have exactly one <code>featureMembership</code> (owned or inherited) that is a <code>ResultParameterMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ReturnParameterMembership)-> + size() = 1 + + + + + <p>An <code>Expression</code> must have at most one <code>ResultExpressionMembership</code>.</p> + + + OCL2.0 + membership->selectByKind(ResultExpressionMembership)->size() <= 1 + + + + + + <p>The <code>Function</code> that types this <code>Expression</code>.</p> + + + + <p>This is the Function that types the Expression.</p> + + + + + + + + <p><p>An <code>output</code> <code>parameter</code> of the <code>Expression</code> whose value is the result of the <code>Expression</code>. The result of an <code>Expression</code> is either inherited from its <code>function</code> or it is related to the <code>Expression</code> via a <code>ReturnParameterMembership</code>, in which case it redefines the <code>result</code> <code>parameter</code> of its <code>function</code>.</p> + + + + + + + + <p>Whether this <code>Expression</code> meets the constraints necessary to be evaluated at <em>model level</em>, that is, using metadata within the model.</p> + + + + + + <p>Return whether this <code>Expression</code> is model-level evaluable. The <code>visited</code> parameter is used to track possible circular <code>Feature</code> references made from <code>FeatureReferenceExpressions</code> (see the redefinition of this operation for <code>FeatureReferenceExpression</code>). Such circular references are not allowed in model-level evaluable expressions.</p> + +<p>An <code>Expression</code> that is not otherwise specialized is model-level evaluable if it has no (non-implied) <code>ownedSpecializations</code> and all its <code>ownedFeatures</code> are either <code>in</code> parameters, the <code>result</code> <code>parameter</code> or a result <code>Expression</code> owned via a <code>ResultExpressionMembership</code>. The <code>parameters</code> must not have any <code>ownedFeatures</code> or a <code>FeatureValue</code>, and the result <code>Expression</code> must be model-level evaluable.</p> + + + + OCL2.0 + ownedSpecialization->forAll(isImplied) and +ownedFeature->forAll(f | + (directionOf(f) = FeatureDirectionKind::_'in' or f = result) and + f.ownedFeature->isEmpty() and f.valuation = null or + f.owningFeatureMembership.oclIsKindOf(ResultExpressionMembership) and + f.oclAsType(Expression).modelLevelEvaluable(visited) + + + + + + + + + + + + + + <p>If this <code>Expression</code> <code>isModelLevelEvaluable</code>, then evaluate it using the <code>target</code> as the context <code>Element</code> for resolving <code>Feature</code> names and testing classification. The result is a collection of <code>Elements</code>, which, for a fully evaluable <code>Expression</code>, will be a <code>LiteralExpression</code> or a <code>Feature</code> that is not an <code>Expression</code>.</p> + + + + OCL2.0 + isModelLevelEvaluable + + + + + OCL2.0 + let resultExprs : Sequence(Expression) = + ownedFeatureMembership-> + selectByKind(ResultExpressionMembership). + ownedResultExpression in +if resultExpr->isEmpty() then Sequence{} +else resultExprs->first().evaluate(target) +endif + + + + + + + + + + + <p>Model-level evaluate this <code>Expression</code> with the given <code>target</code>. If the result is a <code>LiteralBoolean</code>, return its <code>value</code>. Otherwise return <code>false</code>.</p> + + + + + OCL2.0 + let results: Sequence(Element) = evaluate(target) in + result->size() = 1 and + results->first().oclIsKindOf(LiteralBoolean) and + results->first().oclAsType(LiteralBoolean).value + + + + + + + + + + + + <p>The ResultExpressionMembership that owns the <code>ownedResultExpression</code>.</p> + + + + + + + + + <p>The Functions that hasve a certain <code>expression</code> as a step.</p> + + + + + + + + <p>A <code>Function</code> is a <code>Behavior</code> that has an <code>out</code> <code>parameter</code> that is identified as its <code>result</code>. A <code>Function</code> represents the performance of a calculation that produces the values of its <code>result</code> <code>parameter</code>. This calculation may be decomposed into <code>Expressions</code> that are <code>steps</code> of the <code>Function</code>.</p> + + + + + <p>A <code>Function</code> must have exactly one <code>featureMembership</code> (owned or inherited) that is a <code>ResultParameterMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ReturnParameterMembership)-> + size() = 1 + + + + + <p>A <code>Function</code> must directly or indirectly specialize the base <code>Function</code> <code><em>Performances::Evaluation</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::Evaluation') + + + + + <p>If a <code>Function</code> has an <code>Expression</code> owned via a <code>ResultExpressionMembership</code>, then the owning <code>Function</code> must also own a <code>BindingConnector</code> between its <code>result</code> <code>parameter</code> and the <code>result</code> <code>parameter</code> of the result <code>Expression</code>.</p> + + + OCL2.0 + ownedMembership.selectByKind(ResultExpressionMembership)-> + forAll(mem | ownedFeature.selectByKind(BindingConnector)-> + exists(binding | + binding.relatedFeature->includes(result) and + binding.relatedFeature->includes(mem.ownedResultExpression.result))) + + + + + <p>The <code>result</code> <code>parameter</code> of a <code>Function</code> is its <code>parameter</code> owned (possibly in a supertype) via a <code>ReturnParameterMembership</code> (if any).</p> + + + OCL2.0 + result = + let resultParams : Sequence(Feature) = + featureMemberships-> + selectByKind(ReturnParameterMembership). + ownedMemberParameter in + if resultParams->notEmpty() then resultParams->first() + else null + endif + + + + + <p>A <code>Function</code> must have at most one <code>ResultExpressionMembership</code>.</p> + + + OCL2.0 + membership->selectByKind(ResultExpressionMembership)->size() <= 1 + + + + + + <p>The <code>Expressions</code> that are <code>steps</code> in the calculation of the <code>result</code> of this <code>Function</code>.</p> + + + + <p>The set of expressions that represent computational steps or parts of a system of equations within the Function.</p> + + + + + + + + <p>The object or value that is the result of evaluating the Function.</p> + + + <p>The <code>result</code> <code>parameter</code> of the <code>Function</code>, which is owned by the <code>Function</code> via a <code>ReturnParameterMembership</code>.</p> + + + + + + + + <p>Whether this <code>Function</code> can be used as the <code>function</code> of a model-level evaluable <code>InvocationExpression</code>. Certain <code>Functions</code> from the Kernel Functions Library are considered to have <code>isModelLevelEvaluable = true</code>. For all other <code>Functions</code> it is <code>false</code>.</p> + +<p><strong>Note:</strong> See the specification of the KerML concrete syntax notation for <code>Expressions</code> for an identification of which library <code>Functions</code> are model-level evaluable.</p> + + + + + + + + <p>The Expressions that are typed by a certain <code>function</code>.</p> + + + + + + + + <p>A <code>ResultExpressionMembership</code> is a <code>FeatureMembership</code> that indicates that the <code>ownedResultExpression</code> provides the result values for the <code>Function</code> or <code>Expression</code> that owns it. The owning <code>Function</code> or <code>Expression</code> must contain a <code>BindingConnector</code> between the <code>result</code> <code>parameter</code> of the <code>ownedResultExpression</code> and the <code>result</code> <code>parameter</code> of the owning <code>Function</code> or <code>Expression</code>.</p> + + + + + <p>The <code>owningType</code> of a <code>ResultExpressionMembership</code> must be a <code>Function</code> or <code>Expression</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(Function) or owningType.oclIsKindOf(Expression) + + + + + + <p>The <code>Expression</code> that provides the result for the owner of the <code>ResultExpressionMembership</code>.</p> + + + + + + + + + + + + + + + + + <p>A <code>MultiplicityRange</code> is a <code>Multiplicity</code> whose value is defined to be the (inclusive) range of natural numbers given by the result of a <code>lowerBound</code> <code>Expression</code> and the result of an <code>upperBound</code> <code>Expression</code>. The result of these <code>Expressions</code> shall be of type <code><em>Natural</em></code>. If the result of the <code>upperBound</code> <code>Expression</code> is the unbounded value <code>*</code>, then the specified range includes all natural numbers greater than or equal to the <code>lowerBound</code> value. If no <code>lowerBound</code> <code>Expression</code>, then the default is that the lower bound has the same value as the upper bound, except if the <code>upperBound</code> evaluates to <code>*</code>, in which case the default for the lower bound is 0.</p> + + + + + <p>The <code>bounds</code> of a <code>MultiplicityRange</code> must have the same <code>featuringTypes</code> as the <code>MultiplicityRange</code>.</p> + + + OCL2.0 + bound->forAll(b | b.featuringType = self.featuringType) + + + + + <p>The <code>results</code> of the <code>bound</code> <code>Expression(s)</code> of a <code>MultiplicityRange</code> must be typed by <code><em>ScalarValues::Intger</em></code> from the Kernel Data Types Library. If a <code>bound</code> is model-level evaluable, then it must evaluate to a non-negative value.</p> + + + OCL2.0 + bound->forAll(b | + b.result.specializesFromLibrary('ScalarValues::Integer') and + let value : UnlimitedNatural = valueOf(b) in + value <> null implies value >= 0 +) + + + + + <p>If a <code>MultiplicityRange</code> has two <code>ownedMembers</code> that are <code>Expressions</code>, then the <code>lowerBound</code> is the first of these, otherwise it is <code>null</code>.</p> + + + OCL2.0 + lowerBound = + let ownedExpressions : Sequence(Expression) = + ownedMember->selectByKind(Expression) in + if ownedExpressions->size() < 2 then null + else ownedExpressions->first() + endif + + + + + <p>If a <code>MultiplicityRange</code> has one <code>ownedMember</code> that is an <code>Expression</code>, then this is the <code>upperBound</code>. If it has more than one <code>ownedMember</code> that is an <code>Expression</code>, then the <code>upperBound</code> is the second of those. Otherwise, it is null.</p> + + + OCL2.0 + upperBound = + let ownedExpressions : Sequence(Expression) = + ownedMember->selectByKind(Expression) in + if ownedExpressions->isEmpty() then null + else if ownedExpressions->size() = 1 then ownedExpressions->at(1) + else ownedExpressions->at(2) + endif endif + + + + + <p>The <code>bounds</code> of a <code>MultiplicityRange</code> are the <code>lowerBound</code> (if any) followed by the <code>upperBound</code>.</p> + + + OCL2.0 + bound = + if upperBound = null then Sequence{} + else if lowerBound = null then Sequence{upperBound} + else Sequence{lowerBound, upperBound} + endif endif + + + + + <p>The <code>lowerBound</code> (if any) and <code>upperBound</code> <code>Expressions</code> must be the first <code>ownedMembers</code> of a <code>MultiplicityRange</code>.</p> + + + OCL2.0 + if lowerBound = null then + ownedMember->notEmpty() and + ownedMember->at(1) = upperBound +else + ownedMember->size() > 1 and + ownedMember->at(1) = lowerBound and + ownedMember->at(2) = upperBound +endif + + + + + + <p>The <code>Expression</code> whose result provides the lower bound of the <code>MultiplicityRange</code>. If no <code>lowerBound</code> <code>Expression</code> is given, then the lower bound shall have the same value as the upper bound, unless the upper bound is unbounded (<code>*</code>), in which case the lower bound shall be 0.</p> + + + + + + + + <p>The <code>Expression</code> whose result is the upper bound of the <code>MultiplicityRange</code>.</p> + + + + + + + <p>The owned <code>Expressions</code> of the <code>MultiplicityRange</code> whose results provide its bounds. These must be the first <code>ownedMembers</code> of the <code>MultiplicityRange</code>.</p> + + + + + + + <p>Check whether this <code>MultiplicityRange</code> represents the range bounded by the given values <code>lower</code> and <code>upper</code>, presuming the <code>lowerBound</code> and <code>upperBound</code> <code>Expressions</code> are model-level evaluable.</p> + + + + OCL2.0 + valueOf(upperBound) = upper and +let lowerValue: UnlimitedNatural = valueOf(lowerBound) in +(lowerValue = lower or + lowerValue = null and + (lower = upper or + lower = 0 and upper = *)) + + + + + + + + + + + + + + + + <p>Evaluate the given <code>bound</code> <code>Expression</code> (at model level) and return the result represented as a MOF <code>UnlimitedNatural</code> value.</p> + + + + OCL2.0 + if bound = null or not bound.isModelLevelEvaluable then + null +else + let boundEval: Sequence(Element) = bound.evaluate(owningType) in + if boundEval->size() <> 1 then null else + let valueEval: Element = boundEval->at(1) in + if valueEval.oclIsKindOf(LiteralInfinity) then * + else if valueEval.oclIsKindOf(LiteralInteger) then + let value : Integer = + valueEval.oclAsKindOf(LiteralInteger).value in + if value >= 0 then value else null endif + else null + endif endif + endif +endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>Step</code> is a <code>Feature</code> that is typed by one or more <code>Behaviors</code>. <code>Steps</code> may be used by one <code>Behavior</code> to coordinate the performance of other <code>Behaviors</code>, supporting a steady refinement of behavioral descriptions. <code>Steps</code> can be ordered in time and can be connected using <code>Flows</code> to specify things flowing between their <code>parameters</code>.</p> + + + + + <p>A <code>Step</code> must directly or indirectly specialize the base <code>Step</code> <code><em>Performances::performances</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::performances') + + + + + <p>A<code>Step</code> whose <code>owningType</code> is a <code>Behavior</code> or another <code>Step</code> must directly or indirectly specialize the <code>Step</code> <code><em>Performances::Performance::enclosedPerformance</em></code>.</p> + + + OCL2.0 + owningType <> null and + (owningType.oclIsKindOf(Behavior) or + owningType.oclIsKindOf(Step)) implies + specializesFromLibrary('Performances::Performance::enclosedPerformance') + + + + + <p>A composite <code>Step</code> whose <code>owningType</code> is a <code>Structure</code> or a <code>Feature</code> typed by a <code>Structure</code> must directly or indirectly specialize the <code>Step</code> <code><em>Objects::Object::ownedPerformance</em></code>.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(Structure) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKindOf(Structure)) implies + specializesFromLibrary('Objects::Object::ownedPerformance') + + + + + <p>A<code>Step</code> whose <code>owningType</code> is a <code>Behavior</code> or another <code>Step</code>, and which is composite, must directly or indirectly specialize the <code>Step</code> <code><em>Performances::Performance::subperformance</em></code>.</p> + + + OCL2.0 + owningType <> null and + (owningType.oclIsKindOf(Behavior) or + owningType.oclIsKindOf(Step)) and + self.isComposite implies + specializesFromLibrary('Performances::Performance::subperformance') + + + + + <p>The <code>behaviors</code> of a <code>Step</code> are all its <code>types</code> that are <code>Behaviors</code>.</p> + + + OCL2.0 + behavior = type->selectByKind(Behavior) + + + + + + <p>The <code>Behaviors</code> that type this <code>Step</code>.</p> + + + + + + + + <p>The <code>parameters</code> of this <code>Step</code>, which are defined as its <code>directedFeatures</code>, whose values are passed into and/or out of a performance of the <code>Step</code>.</p> + + + + + + + + + <p>A <code>Behavior </code>coordinates occurrences of other <code>Behaviors</code>, as well as changes in objects. <code>Behaviors</code> can be decomposed into <code>Steps</code> and be characterized by <code>parameters</code>.</p> + + + + + <p>A <code>Behavior</code> must not specialize a <code>Structure</code>.</p> + + + OCL2.0 + ownedSpecialization.general->forAll(not oclIsKindOf(Structure)) + + + + + <p>A <code>Behavior</code> must directly or indirectly specialize the base <code>Behavior</code> <code><em>Performances::Performance</em></code> from the Kernel Semantic Library.</p> + + + English + specializesFromLibrary('Performances::Performance') + + + + + <p>The <code>steps</code> of a <code>Behavior</code> are its <code>features</code> that are <code>Steps</code>.</p> + + + OCL2.0 + step = feature->selectByKind(Step) + + + + + + <p>The <code>Steps</code> that make up this <code>Behavior</code>.</p> + + + + + + + + <p>The parameters of this <code>Behavior</code>, which are defined as its <code>directedFeatures</code>, whose values are passed into and/or out of a performance of the <code>Behavior</code>.</p> + + + + + + + + + + + + + + + + + + + + + <p>A <code>ParameterMembership</code> is a <code>FeatureMembership</code> that identifies its <code>memberFeature</code> as a parameter, which is always owned, and must have a <code>direction</code>. A <code>ParameterMembership</code> must be owned by a <code>Behavior</code>, a <code>Step</code>, or the <code>result</code> parameter of a <code>ConstructorExpression</code>.</p> + + + + <p>The <code>ownedMemberParameter</code> of a <code>ParameterMembership</code> must have a <code>direction</code> equal to the result of the <code>parameterDirection()</code> operation.</p> + + + OCL2.0 + ownedMemberParameter.direction = parameterDirection() + + + + + <p>A <code>ParameterMembership</code> must be owned by a <code>Behavior</code>,<code>Step</code>, or the <code>result</code> parameter of a <code>ConstructorExpression</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(Behavior) or owningType.oclIsKindOf(Step) or +owningType.owningMembership.oclIsKindOf(ReturnParameterMembership) and + owningType.owningNamespace.oclIsKindOf(ConstructorExpression) + + + + + + <p>The <code>Feature</code> that is identified as a <code>parameter</code> by this <code>ParameterMembership</code>.</p> + + + + + + + + <p>Return the required value of the <code>direction</code> of the <code>ownedMemberParameter</code>. By default, this is <code>in</code>.</p> + + + + OCL2.0 + FeatureDirectionKind::_'in' + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>Metaclass</code> is a <code>Structure</code> used to type <code>MetadataFeatures</code>.</p> + + + + <p>A <code>Metaclass</code> must directly or indirectly specialize the base <code>Metaclass</code> <code><em>Metaobjects::Metaobject</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Metaobjects::Metaobject') + + + + + + + <p>A <code>MetadataFeature</code> is a <code>Feature</code> that is an <code>AnnotatingElement</code> used to annotate another <code>Element</code> with metadata. It is typed by a <code>Metaclass</code>. All its <code>ownedFeatures</code> must redefine <code>features</code> of its <code>metaclass</code> and any feature bindings must be model-level evaluable.</p> + + + + + + <p>A <code>MetadataFeature</code> must have exactly one <code>type</code> that is a <code>Metaclass</code>.</p> + + + OCL2.0 + type->selectByKind(Metaclass).size() = 1 + + + + + <p>The <code>metaclass</code> of a <code>MetadataFeature</code> must not be abstract.</p> + + + OCL2.0 + not metaclass.isAbstract + + + + + <p>A <code>MetadataFeature</code> must directly or indirectly specialize the base <code>MetadataFeature</code> <code><em>Metaobjects::metaobjects</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Metaobjects::metaobjects') + + + + + <p>Each <code>ownedFeature</code> of a <code>MetadataFeature</code> must have no declared name, redefine a single <code>Feature</code>, either have no <code>featureValue</code> or a <code>featureValue</code> with a <code>value</code> <code>Expression</code> that is model-level evaluable, and only have <code>ownedFeatures</code> that also meet these restrictions.</p> + + + OCL2.0 + ownedFeature->closure(ownedFeature)->forAll(f | + f.declaredName = null and f.declaredShortName = null and + f.valuation <> null implies f.valuation.value.isModelLevelEvaluable and + f.redefinition.redefinedFeature->size() = 1) + + + + + <p>The <code>metaclass</code> of a <code>MetadataFeature</code> is one of its <code>types</code> that is a <code>Metaclass</code>. + + + OCL2.0 + metaclass = + let metaclassTypes : Sequence(Type) = type->selectByKind(Metaclass) in + if metaclassTypes->isEmpty() then null + else metaClassTypes->first() + endif + + + + + <p>The <code>annotatedElements</code> of a <code>MetadataFeature</code> must have an abstract syntax metaclass consistent with the <code>annotatedElement</code> declarations for the <code>MetadataFeature</code>.</p> + + + OCL2.0 + let baseAnnotatedElementFeature : Feature = + resolveGlobal('Metaobjects::Metaobject::annotatedElement').memberElement. + oclAsType(Feature) in +let annotatedElementFeatures : OrderedSet(Feature) = feature-> + select(specializes(baseAnnotatedElementFeature))-> + excluding(baseAnnotatedElementFeature) in +annotatedElementFeatures->notEmpty() implies + let annotatedElementTypes : Set(Feature) = + annotatedElementFeatures.typing.type->asSet() in + let metaclasses : Set(Metaclass) = + annotatedElement.oclType().qualifiedName->collect(qn | + resolveGlobal(qn).memberElement.oclAsType(Metaclass)) in + metaclasses->forAll(m | annotatedElementTypes->exists(t | m.specializes(t))) + + + + + <p>If this <code>MetadataFeature</code> is an application of <code><em>SemanticMetadata</em></code>, then its <code>annotatingElement</code> must be a <code>Type</code>. The annotated <code>Type</code> must then directly or indirectly specialize the specified value of the <code><em>baseType</em></code>, <em>unless</em> the <code>Type</code> is a <code>Classifier</code> and the <code><em>baseType</em></code> represents a kind of <code>Feature</code>, in which case the <code>Classifier</code> must directly or indirectly specialize each of the <code>types</code> of the <code>Feature</code>.</p> + + + OCL2.0 + isSemantic() implies + let annotatedTypes : Sequence(Type) = + annotatedElement->selectAsKind(Type) in + let baseTypes : Sequence(MetadataFeature) = + evaluateFeature(resolveGlobal( + 'Metaobjects::SemanticMetadata::baseType'). + memberElement. + oclAsType(Feature))-> + selectAsKind(MetadataFeature) in + annotatedTypes->notEmpty() and + baseTypes()->notEmpty() and + baseTypes()->first().isSyntactic() implies + let annotatedType : Type = annotatedTypes->first() in + let baseType : Element = baseTypes->first().syntaxElement() in + if annotatedType.oclIsKindOf(Classifier) and + baseType.oclIsKindOf(Feature) then + baseType.oclAsType(Feature).type-> + forAll(t | annotatedType.specializes(t)) + else if baseType.oclIsKindOf(Type) then + annotatedType.specializes(baseType.oclAsType(Type)) + else + true + endif + + + + + + + <p>The <code>type</code> of this <code>MetadataFeature</code>, which must be a <code>Metaclass</code>.</p> + + + + + + + <p>If the given <code>baseFeature</code> is a <code>feature</code> of this <code>MetadataFeature</code>, or is directly or indirectly redefined by a <code>feature</code>, then return the result of evaluating the appropriate (model-level evaluable) <code>value</code> <code>Expression</code> for it (if any), with the <code>MetadataFeature</code> as the target.</p> + + + + OCL2.0 + let selectedFeatures : Sequence(Feature) = feature-> + select(closure(ownedRedefinition.redefinedFeature)-> + includes(baseFeature)) in +if selectedFeatures->isEmpty() then null +else + let selectedFeature : Feature = selectedFeatures->first() in + let featureValues : FeatureValue = selectedFeature-> + closure(ownedRedefinition.redefinedFeature).ownedMember-> + selectAsKind(FeatureValue) in + if featureValues->isEmpty() then null + else featureValues->first().value.evaluate(self) + endif + + + + + + + + + + + <p>Check if this <code>MetadataFeature</code> has a <code>metaclass</code> which is a kind of <code><em>SemanticMetadata</code>.<p> + + + + OCL2.0 + specializesFromLibrary('Metaobjects::SemanticMetadata') + + + + + + + + + <p>Check if this <code>MetadataFeature</code> has a <code>metaclass</code> that is a kind of <code><em>KerML::Element</em></code> (that is, it is from the reflective abstract syntax model).</p> + + + + OCL2.0 + specializesFromLibrary('KerML::Element') + + + + + + + + + <p>If this <code>MetadataFeature</code> reflectively represents a model element, then return the corresponding <code>Element</code> instance from the MOF abstract syntax representation of the model.</p> + + + + English + No OCL + + + + + OCL2.0 + isSyntactic() + + + + + + + + + + + + <p>The MetadataFeatures whose <code>type</code> is a certain Metaclass.</p> + + + + + + + + + + <p>A <code>DataType</code> is a <code>Classifier</code> of things (in the universe) that can only be distinguished by how they are related to other things (via Features). This means multiple things classified by the same <code>DataType</code></p> + +<ul> + <li>Cannot be distinguished when they are related to other things in exactly the same way, even when they are intended to be about different things.</li> + <li>Can be distinguished when they are related to other things in different ways, even when they are intended to be about the same thing.</li> +</ul> + + + + + <p>A <code>DataType</code> must not specialize a <code>Class</code> or an <code>Association</code>.</p> + + + OCL2.0 + ownedSpecialization.general-> + forAll(not oclIsKindOf(Class) and + not oclIsKindOf(Association)) + + + + + <p>A <code>DataType</code> must directly or indirectly specialize the base <code>DataType</code> <code><em>Base::DataValue</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::DataValue') + + + + + + + + + <p>An <code>AssociationStructure</code> is an <code>Association</code> that is also a <code>Structure</code>, classifying link objects that are both links and objects. As objects, link objects can be created and destroyed, and their non-end <code>Features</code> can change over time. However, the values of the end <code>Features</code> of a link object are fixed and cannot change over its lifetime.</p> + + + + <p>An <code>AssociationStructure</code> must directly or indirectly specialize the base <code>AssociationStructure</code> <code><em>Objects::LinkObject</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Objects::LinkObject') + + + + + <p>A binary <code>AssociationStructure</code> must directly or indirectly specialize the base <code>AssociationStructure</code> <code><em>Objects::BinaryLinkObject</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + endFeature->size() = 2 implies + specializesFromLibrary('Objects::BinaryLinkObject') + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <p>An <code>Association</code> is a <code>Relationship</code> and a <code>Classifier</code> to enable classification of links between things (in the universe). The co-domains (<code>types</code>) of the <code>associationEnd</code> <code>Features</code> are the <code>relatedTypes</code>, as co-domain and participants (linked things) of an <code>Association</code> identify each other.</p> + + + + + <p>The <code>relatedTypes</code> of an <code>Association</code> are the <code>types</code> of its <code>associationEnds</code>.</p> + + + OCL2.0 + relatedType = associationEnd.type + + + + + <p>An <code>Association</code> must directly or indirectly specialize the base <code>Association</code> <code><em>Links::Link</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Links::Link') + + + + + <p>If an <code>Association</code> is also a kind of <code>Structure</code>, then it must be an <code>AssociationStructure</code>.</p> + + + English + oclIsKindOf(Structure) = oclIsKindOf(AssociationStructure) + + + + + <p>A binary <code>Association</code> must directly or indirectly specialize the base <code>Association</code> <code><em>Links::binaryLink</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + associationEnd->size() = 2 implies + specializesFromLibrary('Links::BinaryLink') + + + + + <p>If an <code>Association</code> is concrete (not abstract), then it must have at least two <code>relatedTypes</code>.</p> + + + OCL2.0 + not isAbstract implies relatedType->size() >= 2 + + + + + <p>If an <code>Association</code> has more than two <code>associationEnds</code>, then it must <em>not</em> specialize, directly or indirectly, the <code>Association</code> <em><code>BinaryLink</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + associationEnds->size() > 2 implies + not specializesFromLibrary('Links::BinaryLink') + + + + + <p>The <code>sourceType</code> of an <code>Association</code> is its first <code>relatedType</code> (if any).</p> + + + OCL2.0 + sourceType = + if relatedType->isEmpty() then null + else relatedType->first() endif + + + + + OCL2.0 + targetType = + if relatedType->size() < 2 then OrderedSet{} + else + relatedType-> + subSequence(2, relatedType->size())-> + asOrderedSet() + endif + + + + + <p>The <code>ownedEndFeatures</code> of an <code>Association</code> must have exactly one <code>type</code></p>. + + + OCL2.0 + ownedEndFeature->forAll(type->size() = 1) + + + + + + + <p>The <code>types</code> of the <code>associationEnds</code> of the <code>Association</code>, which are the <code>relatedElements</code> of the <code>Association</code> considered as a <code>Relationship</code>.</p> + + + + + + + + <p>The source <code>relatedType</code> for this <code>Association</code>. It is the first <code>relatedType</code> of the <code>Association</code>.</p> + + + + + + + + <p>The target <code>relatedTypes</code> for this <code>Association</code>. This includes all the <code>relatedTypes</code> other than the <code>sourceType</code>.</p> + + + + + + + + <p>The <code>features</code> of the <code>Association</code> that identify the things that can be related by it. A concrete <code>Association</code> must have at least two <code>associationEnds</code>. When it has exactly two, the <code>Association</code> is called a <em>binary</em> <code>Association</code>.</p> + + + + + + + + + + + + <p>The (at most one) <code>ownedMembership</code> of this Feature that is the FeatureValue that provides the value of the Feature.</p> + + + + + + + + + <p>The FeatureValue that owns the <code>value</code> Expression.</p> + + + + + + + + <p>A <code>FeatureValue</code> is a <code>Membership</code> that identifies a particular member <code>Expression</code> that provides the value of the <code>Feature</code> that owns the <code>FeatureValue</code>. The value is specified as either a bound value or an initial value, and as either a concrete or default value. A <code>Feature</code> can have at most one <code>FeatureValue</code>.</p> + +<p>The result of the <code>value</code> <code>Expression</code> is bound to the <code>featureWithValue</code> using a <code>BindingConnector</code>. If <code>isInitial = false</code>, then the <code>featuringType</code> of the <code>BindingConnector</code> is the same as the <code>featuringType</code> of the <code>featureWithValue</code>. If <code>isInitial = true</code>, then the <code>featuringType</code> of the <code>BindingConnector</code> is restricted to its <code>startShot</code>. + +<p>If <code>isDefault = false</code>, then the above semantics of the <code>FeatureValue</code> are realized for the given <code>featureWithValue</code>. Otherwise, the semantics are realized for any individual of the <code>featuringType</code> of the <code>featureWithValue</code>, unless another value is explicitly given for the <code>featureWithValue</code> for that individual.</p> + + + + + <p>If <code>isDefault = false</code>, then the <code>featureWithValue</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> whose <code>relatedElements</code> are the <code>featureWithValue</code> and a feature chain consisting of the <code>value</code> <code>Expression</code> and its <code>result</code>. If <code>isInitial = false</code>, then this <code>BindingConnector</code> must have <code>featuringTypes</code> that are the same as those of the <code>featureWithValue</code>. If <code>isInitial = true</code>, then the <code>BindingConnector</code> must have <code><em>that.startShot</em><code> as its <code>featuringType</code>.</p> + + + OCL2.0 + not isDefault implies + featureWithValue.ownedMember-> + selectByKind(BindingConnector)->exists(b | + b.relatedFeature->includes(featureWithValue) and + b.relatedFeature->exists(f | + f.chainingFeature = Sequence{value, value.result}) and + if not isInitial then + b.featuringType = featureWithValue.featuringType + else + b.featuringType->exists(t | + t.oclIsKindOf(Feature) and + t.oclAsType(Feature).chainingFeature = + Sequence{ + resolveGlobal('Base::things::that'). + memberElement, + resolveGlobal('Occurrences::Occurrence::startShot'). + memberElement + } + ) + endif) + + + + + <p>All <code>Features</code> directly or indirectly redefined by the <code>featureWithValue</code> of a <code>FeatureValue</code> must have only default <code>FeatureValues</code>.</p> + + + OCL2.0 + featureWithValue.redefinition.redefinedFeature-> + closure(redefinition.redefinedFeature).valuation-> + forAll(isDefault) + + + + + <p>If a <code>FeatureValue</code> has <code>isInitial = true</code>, then its <code>featureWithValue</code> must have <code>isVariable = true</code>.</p> + + + OCL2.0 + isInitial implies featureWithValue.isVariable + + + + + + <p>The Feature to be provided a value.</p> + + + <p>The <code>Feature</code> to be provided a value.</p> + + + + + + + + <p>The Expression that provides the value as a result.</p> + + + <p>The <code>Expression</code> that provides the value of the <code>featureWithValue</code> as its <code>result</code>.</p> + + + + + + + + <p>Whether this <code>FeatureValue</code> specifies a bound value or an initial value for the <code>featureWithValue</code>.</p> + + + + + + + <p>Whether this <code>FeatureValue</code> is a concrete specification of the bound or initial value of the <code>featureWithValue</code>, or just a default value that may be overridden.</p> + + + + + + + + + + <p>A <code>Connector</code> is a usage of <code>Associations</code>, with links restricted according to instances of the <code>Type</code> in which they are used (domain of the <code>Connector</code>). The <code>associations</code> of the <code>Connector</code> restrict what kinds of things might be linked. The <code>Connector</code> further restricts these links to be between values of <code>Features</code> on instances of its domain.</p> + + + + + <p>The <code>relatedFeatures</code> of a <code>Connector</code> are the referenced <code>Features</code> of its <code>connectorEnds</code>.</p> + + + OCL2.0 + relatedFeature = connectorEnd.ownedReferenceSubsetting-> + select(s | s <> null).subsettedFeature + + + + + <p>Each <code>relatedFeature</code> of a <code>Connector</code> must have each <code>featuringType</code> of the <code>Connector</code> as a direct or indirect <code>featuringType</code> (where a <code>Feature</code> with no <code>featuringType</code> is treated as if the <code>Classifier</code> <code><em>Base::Anything</em></code> was its <code>featuringType</code>).</p> + + + OCL2.0 + relatedFeature->forAll(f | + if featuringType->isEmpty() then f.isFeaturedWithin(null) + else featuringType->forAll(t | f.isFeaturedWithin(t)) + endif) + + + + + <p>The <code>sourceFeature</code> of a <code>Connector</code> is its first <code>relatedFeature</code> (if any).</p> + + + OCL2.0 + sourceFeature = + if relatedFeature->isEmpty() then null + else relatedFeature->first() + endif + + + + + <p>The <code>targetFeatures</code> of a <code>Connector</code> are the <code>relatedFeatures</code> other than the <code>sourceFeature</code>.</p> + + + OCL2.0 + targetFeature = + if relatedFeature->size() < 2 then OrderedSet{} + else + relatedFeature-> + subSequence(2, relatedFeature->size())-> + asOrderedSet() + endif + + + + + <p>If a <code>Connector</code> is concrete (not abstract), then it must have at least two <code>relatedFeatures</code>.</p> + + + OCL2.0 + not isAbstract implies relatedFeature->size() >= 2 + + + + + <p>A <code>Connector</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Links::links</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Links::links') + + + + + <p>A <code>Connector</code> for an <code>AssociationStructure</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Objects::linkObjects</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + association->exists(oclIsKindOf(AssociationStructure)) implies + specializesFromLibrary('Objects::linkObjects') + + + + + <p>A binary <code>Connector</code> for an <code>AssociationStructure</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Objects::binaryLinkObjects</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + connectorEnds->size() = 2 and +association->exists(oclIsKindOf(AssociationStructure)) implies + specializesFromLibrary('Objects::binaryLinkObjects') + + + + + <p>A binary <code>Connector</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Links::binaryLinks</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + connectorEnd->size() = 2 implies + specializesFromLibrary('Links::binaryLinks') + + + + + <p>If a <code>Connector</code> has more than two <code>connectorEnds</code>, then it must <em>not</em> specialize, directly or indirectly, the <code>Association</code> <em><code>BinaryLink</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + connectorEnds->size() > 2 implies + not specializesFromLibrary('Links::BinaryLink') + + + + + <p>The <code>defaultFeaturingType</code> of a <code>Connector</code> is the innermost common direct or indirect <code>featuringType</code> of the <code>relatedFeatures</code> of the <code>Connector</code>, so that each <code>relatedElement</code> is featured within the <code>defaultFeaturingType</code>, if such exists.</p> + + + OCL2.0 + let commonFeaturingTypes : OrderedSet(Type) = + relatedFeature->closure(featuringType)->select(t | + relatedFeature->forAll(f | f.isFeaturedWithin(t)) + ) in +let nearestCommonFeaturingTypes : OrderedSet(Type) = + commonFeaturingTypes->reject(t1 | + commonFeaturingTypes->exists(t2 | + t2 <> t1 and t2->closure(featuringType)->contains(t1) + )) in +if nearestCommonFeaturingTypes->isEmpty() then null +else nearestCommonFeaturingTypes->first() +endif + + + + + + + <p>The <code>Features</code> that are related by this <code>Connector</code> considered as a <code>Relationship</code> and that restrict the links it identifies, given by the referenced <code>Features</code> of the <code>connectorEnds</code> of the <code>Connector</code>.</p> + + + + + + + + <p>The <code>Associations</code> that type the <code>Connector</code>.</p> + + + + + + + + <p>The <code>endFeatures</code> of a <code>Connector</code>, which redefine the <code>endFeatures</code> of the <code>associations</code> of the <code>Connector</code>. The <code>connectorEnds</code> determine via <code>ReferenceSubsetting</code> <code>Relationships</code> which <code>Features</code> are related by the <code>Connector</code>.</p> + + + + + + + <p>The source <code>relatedFeature</code> for this <code>Connector</code>. It is the first <code>relatedFeature</code>.</p> + + + + + + + <p>The target <code>relatedFeatures</code> for this <code>Connector</code>. This includes all the <code>relatedFeatures</code> other than the <code>sourceFeature</code>.</p> + + + + + + + <p>The innermost <code>Type</code> that is a common direct or indirect <code>featuringType</code> of the <code>relatedFeatures</code>, such that, if it exists and was the <code>featuringType</code> of this <code>Connector</code>, the <code>Connector</code> would satisfy the <code>checkConnectorTypeFeaturing</code> constraint.</p> + + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>BindingConnector</code> is a binary <code>Connector</code> that requires its <code>relatedFeatures</code> to identify the same things (have the same values).</p> + + + + + <p>A <code>BindingConnector</code> must be binary.</p> + + + OCL2.0 + relatedFeature->size() = 2 + + + + + <p>A <code>BindingConnector</code> must directly or indirectly specialize the base <code>BindingConnector</code> <code><em>Links::selfLinks</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Links::selfLinks') + + + + + + + + + + + + + <p>A <code>Succession</code> is a binary <code>Connector</code> that requires its <code>relatedFeatures</code> to happen separately in time.</p> + + + + + <p>A <code>Succession</code> must directly or indirectly specialize the Feature <code><em>Occurrences::happensBeforeLinks</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Occurrences::happensBeforeLinks') + + + + + + + + + + + + + + + + + + + + <p>A <code>Connector</code> with a certain <code>defaultFeaturingType</code>.</p> + + + + + + + + + + + + + <p>A <code>PortUsage</code> is a usage of a <code>PortDefinition</code>. A <code>PortUsage</code> itself as well as all its <code>nestedUsages</code> must be referential (non-composite).</p> + + + + <p>The <code>nestedUsages</code> of a <code>PortUsage</code> that are not themselves <code>PortUsages</code> must not be composite.</p> + + + OCL2.0 + nestedUsage-> + reject(oclIsKindOf(PortUsage))-> + forAll(not isComposite) + + + + + <p>A <code>PortUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Ports::ports</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Ports::ports') + + + + + <p>A composite <code>PortUsage</code> with an <code>owningType</code> that is a <code>PortDefinition</code> or <code>PortUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Ports::Port::subports</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(PortDefinition) or + owningType.oclIsKindOf(PortUsage)) implies + specializesFromLibrary('Ports::Port::subports') + + + + + <p>Unless a <code>PortUsage</code> has an <code>owningType</code> that is a <code>PortDefinition</code> or a <code>PortUsage</code>, it must be referential (non-composite).</p> + + + OCL2.0 + owningType = null or +not owningType.oclIsKindOf(PortDefinition) and +not owningType.oclIsKindOf(PortUsage) implies + isReference + + + + + <p>A <code>PortUsage</code> whose <code>owningType</code> is a <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Parts::Part::ownedPorts</code></em> from the Systems Model Library.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::ownedPorts') + + + + + + <p>The <code>occurrenceDefinitions</code> of this <code>PortUsage</code>, which must all be <code>PortDefinitions<code>.</p> + + + + + + + + + <p>The PortUsages that are typed by a certain PortDefinition.</p> + + + + + + + + <p>A <code>PortDefinition</code> defines a point at which external entities can connect to and interact with a system or part of a system. Any <code>ownedUsages</code> of a <code>PortDefinition</code>, other than <code>PortUsages</code>, must not be composite.</p> + + + + + + + <p>The <code>conjugatedPortDefinition</code> of a <code>PortDefinition</code> is the <code>ownedMember</code> that is a <code>ConjugatedPortDefinition</code>.</p> + + + OCL2.0 + conjugatedPortDefinition = +let conjugatedPortDefinitions : OrderedSet(ConjugatedPortDefinition) = + ownedMember->selectByKind(ConjugatedPortDefinition) in +if conjugatedPortDefinitions->isEmpty() then null +else conjugatedPortDefinitions->first() +endif + + + + + <p>The <code>ownedUsages</code> of a <code>PortDefinition</code> that are not <code>PortUsages</code> must not be composite.</p> + + + OCL2.0 + ownedUsage-> + reject(oclIsKindOf(PortUsage))-> + forAll(not isComposite) + + + + + <p>Unless it is a <code>ConjugatedPortDefinition</code>, a <code>PortDefinition</code> must have exactly one <code>ownedMember</code> that is a <code>ConjugatedPortDefinition</code>.</p> + + + OCL2.0 + not oclIsKindOf(ConjugatedPortDefinition) implies + ownedMember-> + selectByKind(ConjugatedPortDefinition)-> + size() = 1 + + + + + <p>A <code>PortDefinition</code> must directly or indirectly specialize the <code>PortDefinition</code> <em><code>Ports::Port</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Ports::Port') + + + + + + + <p>The <codeConjugatedPortDefinition</code> that is conjugate to this <code>PortDefinition</code>.</p> + + + + + + + + + + <p>The PortConjugation that relates a certain PortDefinition to its ConjugatedPortDefinition (if any).</p> + + + + + + + + <p>A <code>ConjugatedPortDefinition</code> is a <code>PortDefinition</code> that is a <code>PortDefinition</code> of its original <code>PortDefinition</code>. That is, a <code>ConjugatedPortDefinition</code> inherits all the <code>features</code> of the original <code>PortDefinition</code>, but input <code>flows</code> of the original <code>PortDefinition</code> become outputs on the <code>ConjugatedPortDefinition</code> and output <code>flows</code> of the original <code>PortDefinition</code> become inputs on the <code>ConjugatedPortDefinition</code>. Every <code>PortDefinition</code> (that is not itself a <code><code>ConjugatedPortDefinition</code></code>) has exactly one corresponding <code>ConjugatedPortDefinition</code>, whose effective name is the name of the <code>originalPortDefinition</code>, with the character <code>~</code> prepended.</p> + + + + <p>The <code>originalPortDefinition</code> of the <code>ownedPortConjugator</code> of a <code>ConjugatedPortDefinition</code> must be the <code>originalPortDefinition</code> of the <code>ConjugatedPortDefinition</code>.</p> + + + OCL2.0 + ownedPortConjugator.originalPortDefinition = originalPortDefinition + + + + + <p>A <code>ConjugatedPortDefinition</code> must not itself have a <code>conjugatedPortDefinition</code>. + + + OCL2.0 + conjugatedPortDefinition = null + + + + + + <p>The original <code>PortDefinition</code> for this <code>ConjugatedPortDefinition</code>, which is the <code>owningNamespace</code> of the <code>ConjugatedPortDefinition</code>.</p> + + + + + + + <p>The <code>PortConjugation</code> that is the <code>ownedConjugator</code> of this <code>ConjugatedPortDefinition</code>, linking it to its <code>originalPortDefinition</code>.</p> + + + + + + + <p>If the <code>name</code> of the <code>originalPortDefinition</code> is non-empty, then return that with the character <code>~</code> prepended.</p> + + + + OCL2.0 + let originalName : String = originalPortDefinition.name in +if originalName = null then null +else '~' + originalName +endif + + + + + + + + + + + + <p>A <code>PortConjugation</code> is a <code>Conjugation</code> <code>Relationship</code> between a <code>PortDefinition</code> and its corresponding <code>ConjugatedPortDefinition</code>. As a result of this <code>Relationship</code>, the <code>ConjugatedPortDefinition</code> inherits all the <code>features</code> of the original <code>PortDefinition</code>, but input <code>flows</code> of the original <code>PortDefinition</code> become outputs on the <code>ConjugatedPortDefinition</code> and output <code>flows</code> of the original <code>PortDefinition</code> become inputs on the <code>ConjugatedPortDefinition</code>.</code></p> + + + + + + <p>The <code>PortDefinition</code> being conjugated.</p> + + + + + + + <p>The <code>ConjugatedPortDefinition</code> that is conjugate to the <code>originalPortDefinition</code>.</p> + + + + + + + + + <p>A <code>ConjugatedPortTyping</code> is a <code>FeatureTyping</code> whose <code>type</code> is a <code>ConjugatedPortDefinition</code>. (This relationship is intended to be an abstract-syntax marker for a special surface notation for conjugated typing of ports.)</p> + + + + <p>The <code>portDefinition</code> of a <code>ConjugatedPortTyping</code> is the <code>originalPortDefinition</code> of the <code>conjugatedPortDefinition</code> of the <code>ConjugatedPortTyping</code>.</p> + + + OCL2.0 + portDefinition = conjugatedPortDefinition.originalPortDefinition + + + + + + <p>The <code>originalPortDefinition</code> of the <code>conjugatedPortDefinition</code> of this <code>ConjugatedPortTyping</code>.</p> + + + + + + + <p>The <code>type</code> of this <code>ConjugatedPortTyping</code> considered as a <code>FeatureTyping</code>, which must be a <code>ConjugatedPortDefinition</code>.</p> + + + + + + + + + + <p>The ConjugatedPortTypings whose <code>conjugatedPortDefinition</code> a certain ConjugatedPortDefinition.</p> + + + + + + + + + <p>The ConjugatedPortTypings whose <code>portDefinition</code> is a certain PortDefinition.</p> + + + + + + + + + + <p>An <code>AttributeDefinition</code> is a <code>Definition</code> and a <code>DataType</code> of information about a quality or characteristic of a system or part of a system that has no independent identity other than its value. All <code>features</code> of an <code>AttributeDefinition</code> must be referential (non-composite).</p> + +<p>As a <code>DataType</code>, an <code>AttributeDefinition</code> must specialize, directly or indirectly, the base <code>DataType</code> <code><em>Base::DataValue</em></code> from the Kernel Semantic Library.</p> + + + + <p>All <code>features</code> of an <code>AttributeDefinition</code> must be non-composite.</p> + + + OCL2.0 + feature->forAll(not isComposite) + + + + + + + + + <p>The AttributeUsages that are typed by a certain DataType.</p> + + + + + + + + <p>An <code>AttributeUsage</code> is a <code>Usage</code> whose type is a <code>DataType</code>. Nominally, if the type is an <code>AttributeDefinition</code>, an <code>AttributeUsage</code> is a usage of a <code>AttributeDefinition</code> to represent the value of some system quality or characteristic. However, other kinds of kernel <code>DataTypes</code> are also allowed, to permit use of <code>DataTypes</code> from the Kernel Model Libraries. An <code>AttributeUsage</code> itself as well as all its nested <code>features</code> must be referential (non-composite).</p> + +<p>An <code>AttributeUsage</code> must specialize, directly or indirectly, the base <code>Feature</code> <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> + + + + <p>An <code>AttributeUsage</code> is always referential.</p> + + + OCL2.0 + isReference + + + + + <p>All <code>features</code> of an <code>AttributeUsage</code> must be non-composite.</p> + + + OCL2.0 + feature->forAll(not isComposite) + + + + + <p>An <code>AttributeUsage</code> must directly or indirectly specialize <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::dataValues') + + + + + + <p>The <code>DataTypes</code> that are the types of this <code>AttributeUsage</code>. Nominally, these are <code>AttributeDefinitions</code>, but other kinds of kernel <code>DataTypes</code> are also allowed, to permit use of <code>DataTypes</code> from the Kernel Model Libraries.</p> + + + + + + + <p>Always true for an <code>AttributeUsage</code>.</p> + + + + + + + + + + + <p>The PerformActionUsages that have a certain ActionUsage as their <code>performedAction</code>.</p> + + + + + + + + <p>An <code>AcceptActionUsage</code> is an <code>ActionUsage</code> that specifies the acceptance of an <em><code>incomingTransfer</code></em> from the <code><em>Occurrence</em></code> given by the result of its <code>receiverArgument</code> Expression. (If no <code>receiverArgument</code> is provided, the default is the <em><code>this</code></em> context of the AcceptActionUsage.) The payload of the accepted <em><code>Transfer</em></code> is output on its <code>payloadParameter</code>. Which <em><code>Transfers</em></code> may be accepted is determined by conformance to the typing and (potentially) binding of the <code>payloadParameter</code>.</p> + + + + + <p>An <code>AcceptUsageAction</code> must have at least two input <code>parameters</code>, corresponding to its <em><code>payload</code></em> and <em><code>receiver</code>, respectively (even if they have no <code>FeatureValue</code>). (Note that the <code>payloadParameter</code> is an input as well as an output.)</p> + + + OCL2.0 + inputParameters()->size() >= 2 + + + + + <p>The <code>receiverArgument</code> of an <code>AcceptUsageAction</code> is its second argument <code>Expression</code>.</p> + + + OCL2.0 + receiverArgument = argument(2) + + + + + <p>The <code>payloadArgument</code> of an <code>AcceptUsageAction</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + payloadArgument = argument(1) + + + + + <p>The <code>payloadParameter</code> of an <code>AcceptActionUsage<code> is its first <code>parameter</code>.</p> + + + OCL2.0 + payloadParameter = + if parameter->isEmpty() then null + else parameter->first() endif + + + + + <p>An <code>AcceptActionUsage</code> that is not the <code>triggerAction</code> of a <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::acceptActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + not isTriggerAction() implies + specializesFromLibrary('Actions::acceptActions') + + + + + <p>A composite <code>AcceptActionUsage</code> that is a subaction usage, but is <em>not</em> the <code>triggerAction</code> of a <code>TransitionUsage</code>, must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::acceptSubactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() and not isTriggerAction() implies + specializesFromLibrary('Actions::Action::acceptSubactions') + + + + + <p>An <code>AcceptActionUsage</code> that is the <code>triggerAction</code> of <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::TransitionAction::accepter</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isTriggerAction() implies + specializesFromLibrary('Actions::TransitionAction::accepter') + + + + + <p>If the <code>payloadArgument</code> of an <code>AcceptActionUsage</code> is a <code>TriggerInvocationExpression</code>, then the <code>AcceptActionusage</code> must have an <code>ownedFeature</code> that is a <code>BindingConnector</code> between its <code><em>receiver</em></code> <code>parameter</code> and the <code><em>receiver</em></code> <code>parameter</code> of the <code>TriggerInvocationExpression</code>.</p> + + + OCL2.0 + payloadArgument <> null and +payloadArgument.oclIsKindOf(TriggerInvocationExpression) implies + let invocation : Expression = + payloadArgument.oclAsType(Expression) in + parameter->size() >= 2 and + invocation.parameter->size() >= 2 and + ownedFeature->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(parameter->at(2)) and + b.relatedFeatures->includes(invocation.parameter->at(2))) + + + + + + <p>An <code>Expression</code> whose <code>result</code> is bound to the <em><code>receiver</code></em> input <code>parameter</code> of this <code>AcceptActionUsage</code>.</p> + + + + + + + + <p>The <code>nestedReference</code> of this <code>AcceptActionUsage</code> that redefines the <code>payload</code> output <code>parameter</code> of the base <code>AcceptActionUsage</code> <em><code>AcceptAction</code></em> from the Systems Model Library.</p> + + + + + + + <p>An <code>Expression</code> whose <code>result</code> is bound to the <code><em>payload</em></code> <code>parameter</code> of this <code>AcceptActionUsage</code>. If provided, the <code>AcceptActionUsage</code> will only accept a <code><em>Transfer</em></code> with exactly this <code><em>payload</em></code>.</p> + + + + + + + + <p>Check if this <code>AcceptActionUsage</code> is the <code>triggerAction</code> of a <code>TransitionUsage</code>.</p> + + + + OCL2.0 + owningType <> null and +owningType.oclIsKindOf(TransitionUsage) and +owningType.oclAsType(TransitionUsage).triggerAction->includes(self) + + + + + + + + + + + <p>The <code>SendActionUsage</code> that has a certain <code>Expression<code> as its <code>receiverArgument</code>.</p> + + + + + + + + <p>A <code>SendActionUsage</code> is an <code>ActionUsage</code> that specifies the sending of a payload given by the result of its <code>payloadArgument</code> <code>Expression</code> via a <em><code>MessageTransfer</code></em> whose <em><code>source</code></em> is given by the result of the <code>senderArgument</code> <code>Expression</code> and whose <code>target</code> is given by the result of the <code>receiverArgument</code> <code>Expression</code>. If no <code>senderArgument</code> is provided, the default is the <em><code>this</code></em> context for the action. If no <code>receiverArgument</code> is given, then the receiver is to be determined by, e.g., outgoing <em><code>Connections</code></em> from the sender.</p> + + + + + <p>The <code>senderArgument</code> of a <code>SendActionUsage</code> is its second argument <code>Expression</code>.</p> + + + OCL2.0 + senderArgument = argument(2) + + + + + <p>The <code>payloadArgument</code> of a <code>SendActionUsage</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + payloadArgument = argument(1) + + + + + <p>A <code>SendActionUsage</code> must have at least three owned input <code>parameters</code>, corresponding to its <em><code>payload</code></em>, <em><code>sender</code></em> and <em><code>receiver</code></em>, respectively (whether or not they have <code>FeatureValues</code>).</p> + + + OCL2.0 + inputParameters()->size() >= 3 + + + + + <p>The <code>receiverArgument</code> of a <code>SendActionUsage</code> is its third argument <code>Expression</code>.</p> + + + OCL2.0 + receiverArgument = argument(3) + + + + + <p>A composite <code>SendActionUsage</code> that is a subaction must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::sendSubactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::acceptSubactions') + + + + + <p>A <code>SendActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::sendActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::sendActions') + + + + + + <p>An <code>Expression</code> whose result is bound to the <em><code>receiver</code></em> input parameter of this <code>SendActionUsage</code>.</p> + + + + + + + + <p>An <code>Expression</code> whose result is bound to the <code><em>payload</em></code> input parameter of this <code>SendActionUsage</code>.</p> + + + + + + + + <p>An <code>Expression</code> whose result is bound to the <em><code>sender</code></em> input parameter of this <code>SendActionUsage</code>.</p> + + + + + + + + + <p>A <code>PerformActionUsage</code> is an <code>ActionUsage</code> that represents the performance of an <code>ActionUsage</code>. Unless it is the <code>PerformActionUsage</code> itself, the <code>ActionUsage</code> to be performed is related to the <code>PerformActionUsage</code> by a <code>ReferenceSubsetting</code> relationship. A <code>PerformActionUsage</code> is also an <code>EventOccurrenceUsage</code>, with its <code>performedAction</code> as the <code>eventOccurrence</code>.</p> + + + + <p>If a <code>PerformActionUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(ActionUsage) + + + + + <p>If a <code>PerformActionUsage</code> has an <code>owningType</code> that is a <code>PartDefinition</code> or <code>PartUsage</code>, then it must directly or indirectly specialize the <code>ActionUsage</code> <code><em>Parts::Part::performedActions</em></code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::performedActions') + + + + + + + <p>The <code>ActionUsage</code> to be performed by this <code>PerformedActionUsage</code>. It is the <code>eventOccurrence</code> of the <code>PerformActionUsage</code> considered as an <code>EventOccurrenceUsage</code>, which must be an <code>ActionUsage</code>.</p> + + + + + + + + <p>The naming <code>Feature</code> of a <code>PerformActionUsage</code> is its <code>performedAction</code>, if this is different than the <code>PerformActionUsage</code>. If the <code>PerformActionUsage</code> is its own <code>performedAction</code>, then the naming <code>Feature</code> is the same as the usual default for a <code>Usage</code>.</p> + + + + OCL2.0 + if performedAction <> self then performedAction +else self.oclAsType(Usage).namingFeature() +endif + + + + + + + + + + + <p>A <code>ForkNode</code> is a <code>ControlNode</code> that must be followed by successor <code>Actions</code> as given by all its outgoing <code>Successions</code>.</p> + + + + <p>A <code>ForkNode</code> may have at most one incoming <code>Succession</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)->size() <= 1 + + + + + <p>A <code>ForkNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::forks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::forks') + + + + + + + <p>A <code>JoinNode</code> is a <code>ControlNode</code> that waits for the completion of all the predecessor <code>Actions</code> given by incoming <code>Successions</code>.</p> + + + + <p>A <code>JoinNode</code> may have at most one outgoing <code>Succession</code>.</p> + + + OCL2.0 + sourceConnector->selectByKind(Succession)->size() <= 1 + + + + + <p>A <code>JoinNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::joins</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::join') + + + + + + + <p>A <code>ControlNode</code> is an <code>ActionUsage</code> that does not have any inherent behavior but provides constraints on incoming and outgoing <code>Successions</code> that are used to control other <code>Actions</code>. A <code>ControlNode</code> must be a composite owned <code>usage</code> of an <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> + + + + + <p>All outgoing <code>Successions</code> from a <code>ControlNode</code> must have a source <code>multiplicity</code> of <code>1..1</code>.</p> + + + OCL2.0 + sourceConnector->selectByKind(Succession)-> + collect(connectorEnd->at(1).multiplicity)-> + forAll(sourceMult | + multiplicityHasBounds(sourceMult, 1, 1)) + + + + + <p>The <code>owningType</code> of a <code>ControlNode</code> must be an <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(ActionDefinition) or + owningType.oclIsKindOf(ActionUsage)) + + + + + <p>All incoming <code>Successions</code> to a <code>ControlNode</code> must have a target <code>multiplicity</code> of <code>1..1</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)-> + collect(connectorEnd->at(2).multiplicity)-> + forAll(targetMult | + multiplicityHasBounds(targetMult, 1, 1)) + + + + + <p>A <code>ControlNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::control</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Action::Action::controls') + + + + + <p>A <code>ControlNode</code> must be composite.</p> + + + OCL2.0 + isComposite + + + + + + <p>Check that the given <code>Multiplicity</code> has <code>lowerBound</code> and <code>upperBound</code> expressions that are model-level evaluable to the given <code>lower</code> and <code>upper</code> values.</p> + + + + OCL2.0 + mult <> null and +if mult.oclIsKindOf(MultiplicityRange) then + mult.oclAsType(MultiplicityRange).hasBounds(lower, upper) +else + mult.allSuperTypes()->exists( + oclisKindOf(MultiplicityRange) and + oclAsType(MultiplicityRange).hasBounds(lower, upper) +endif + + + + + + + + + + + + + + + + + <p>An <code>ActionUsage</code> is a <code>Usage</code> that is also a <code>Step</code>, and, so, is typed by a <code>Behavior</code>. Nominally, if the type is an <code>ActionDefinition</code>, an <code>ActionUsage</code> is a <code>Usage</code> of that <code>ActionDefinition</code> within a system. However, other kinds of kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> + + + + + <p>A composite <code>ActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::subactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::subactions') + + + + + <p>An <code>ActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::actions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::actions') + + + + + <p>A composite <code>ActionUsage</code> whose <code>owningType</code> is <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Parts::Part::ownedActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::ownedActions') + + + + + <p>An <code>ActionUsage</code> that is the <code><em>entry</em></code>, <code><em>do</em></code>, or <code><em>exit</em></code> <code><em>Action</em></code> of a <code>StateDefinition</code> or <code>StateUsage</code> must redefine the <code>entryAction</code>, <code>doAction</code>, or <code>exitAction</code> <code>feature</code>, respectively, of the <code>StateDefinition</code> <code><em>States::StateAction</em></code> from the Systems Model Library.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies + let kind : StateSubactionKind = + owningFeatureMembership.oclAsType(StateSubactionMembership).kind in + if kind = StateSubactionKind::entry then + redefinesFromLibrary('States::StateAction::entryAction') + else if kind = StateSubactionKind::do then + redefinesFromLibrary('States::StateAction::doAction') + else + redefinesFromLibrary('States::StateAction::exitAction') + endif endif + + + + + + + <p>The <code>Behaviors</code> that are the <code>types</code> of this <code>ActionUsage</code>. Nominally, these would be <code>ActionDefinitions</code>, but other kinds of Kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> + + + + + + + + <p>Return the owned input <code>parameters</code> of this <code>ActionUsage</code>.</p> + + + + OCL2.0 + input->select(f | f.owner = self) + + + + + + + + + + <p>Return the <code>i</code>-th owned input <code>parameter</code> of the <code>ActionUsage</code>. Return null if the <code>ActionUsage</code> has less than <code>i</code> owned input <code>parameters</code>.</p> + + + + OCL2.0 + if inputParameters()->size() < i then null +else inputParameters()->at(i) +endif + + + + + + + + + + + + + <p>Return the <code>i</code>-th argument <code>Expression</code> of an <code>ActionUsage</code>, defined as the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> of the <code>i</code>-th owned input <code>parameter</code> of the <code>ActionUsage</code>. Return null if the <code>ActionUsage</code> has less than <code>i</code> owned input <code>parameters</code> or the <code>i</code>-th owned input <code>parameter</code> has no <code>FeatureValue</code>.</p> + + + + OCL2.0 + if inputParameter(i) = null then null +else + let featureValue : Sequence(FeatureValue) = inputParameter(i). + ownedMembership->select(oclIsKindOf(FeatureValue)) in + if featureValue->isEmpty() then null + else featureValue->at(1).value + endif +endif + + + + + + + + + + + + + <p>Check if this <code>ActionUsage</code> is composite and has an <code>owningType</code> that is an <code>ActionDefinition</code> or <code>ActionUsage</code> but is <em>not</em> the <code>entryAction</code> or <code>exitAction</em></code> of a <code>StateDefinition</code> or <code>StateUsage</code>. If so, then it represents an <code><em>Action</em></code> that is a <code><em>subaction</em></code> of another <code><em>Action</em></code>.</p> + + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ActionDefinition) or + owningType.oclIsKindOf(ActionUsage)) and +(owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies + owningFeatureMembership.oclAsType(StateSubactionMembership).kind = + StateSubactionKind::do) + + + + + + + + + + + <p>The Activities that feature a certain ActionUsage.</p> + + + + + + + + <p>A <code>DecisionNode</code> is a <code>ControlNode</code> that makes a selection from its outgoing <code>Successions</code>.</p> + + + + <p>A <code>DecisionNode</code> may have at most one incoming <code>Succession</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)->size() <= 1 + + + + + <p>All outgoing <code>Successions</code> from a <code>DecisionNode</code> must have a target <code>multiplicity</code> of <code>0..1</code>.</p> + + + OCL2.0 + sourceConnector->selectAsKind(Succession)-> + collect(connectorEnd->at(2))-> + forAll(targetMult | + multiplicityHasBounds(targetMult, 0, 1)) + + + + + <p>A <code>DecisionNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::decisions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::decisions') + + + + + <p>All outgoing <code>Successions</code> from a <code>DecisionNode</code> must subset the inherited <em><code>outgoingHBLink</code></em> <code>feature</code> of the <code>DecisionNode</code>.</p> + + + OCL2.0 + sourceConnector->selectByKind(Succession)-> + forAll(subsetsChain(self, + resolveGlobal('ControlPerformances::MergePerformance::outgoingHBLink'))) + + + + + + + <p>A <code>MergeNode</code> is a <code>ControlNode</code> that asserts the merging of its incoming <code>Successions</code>. A <code>MergeNode</code> may have at most one outgoing <code>Successions</code>.</p> + + + + <p>A <code>MergeNode</code> may have at most one outgoing <code>Succession</code>.</p> + + + OCL2.0 + sourceConnector->selectAsKind(Succession)->size() <= 1 + + + + + <p>All incoming <code>Successions</code> to a <code>MergeNode</code> must have a source <code>multiplicity</code> of <code>0..1</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)-> + collect(connectorEnd->at(1))-> + forAll(sourceMult | + multiplicityHasBounds(sourceMult, 0, 1)) + + + + + <p>All incoming <code>Successions</code> to a <code>MergeNode</code> must subset the inherited <em><code>incomingHBLink</code></em> <code>feature</code> of the <code>MergeNode</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)-> + forAll(subsetsChain(self, + resolveGlobal('ControlPerformances::MergePerformance::incomingHBLink'))) + + + + + <p>A <code>MergeNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::merges</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::merges') + + + + + + + + <p>The ActionUsages being typed by a certain Behavior.</p> + + + + + + + + <p>An <code>ActionDefinition</code> is a <code>Definition</code> that is also a <code>Behavior</code> that defines an <em><code>Action</code></em> performed by a system or part of a system.</p> + + + + <p>An <code>ActionDefinition</code> must directly or indirectly specialize the <code>ActionDefinition</code> <em><code>Actions::Action</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action') + + + + + <p> The <code>actions</code> of a <code>ActionDefinition</code> are those of its <code>usages</code> that are <code>ActionUsages</code>.</p> + + + OCL2.0 + action = usage->selectByKind(ActionUsage) + + + + + + + <p>The <code>ActionUsages</code> that are <code>steps</code> in this <code>ActionDefinition</code>, which define the actions that specify the behavior of the <code>ActionDefinition</code>.</p> + + + + + + + + + + <p>The <code>SendActionUsage</code> that has a certain <code>Expression</code> as its <code>itemsArgument</code>.</p> + + + + + + + + + <p>The AcceptActionUsage that has a certain Expression as its <code>receiverArgument</code>.</p> + + + + + + + + + <p>The AssignmentActionUsages that gave a certain <code>referent</code> Expression.</p> + + + + + + + + + <p>The <code>ForLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>seqArgument</code>.</p> + + + + + + + + <p>An <code>IfActionUsage</code> is an <code>ActionUsage</code> that specifies that the <code>thenAction</code> <code>ActionUsage</code> should be performed if the result of the <code>ifArgument</code> <code>Expression</code> is true. It may also optionally specify an <code>elseAction</code> <code>ActionUsage</code> that is performed if the result of the <code>ifArgument</code> is false.</p> + + + + <p>The <code>thenAction</code> of an <code>ifActionUsage</code> is its second <code>parameter</code>, which must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + thenAction = + let parameter : Feature = inputParameter(2) in + if parameter <> null and parameter.oclIsKindOf(ActionUsage) then + parameter.oclAsType(ActionUsage) + else + null + endif + + + + + <p>A composite <code>IfActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::ifSubactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::ifSubactions') + + + + + <p>A <code>IfActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::ifThenActions</code></em> from the Systems Model Library. If it has an <code>elseAction</code>, then it must directly or indirectly specialize <em><code>Actions::ifThenElseActions</code></em>. + + + OCL2.0 + if elseAction = null then + specializesFromLibrary('Actions::ifThenActions') +else + specializesFromLibrary('Actions::ifThenElseActions') +endif + + + + + <p>The <code>ifArgument</code> of an <code>ifActionUsage</code> is its first <code>parameter</code>, which must be an <code>Expression</code>.</p> + + + OCL2.0 + ifArgument = + let parameter : Feature = inputParameter(1) in + if parameter <> null and parameter.oclIsKindOf(Expression) then + parameter.oclAsType(Expression) + else + null + endif + + + + + <p>The <code>elseAction</code> of an <code>ifActionUsage</code> is its third <code>parameter</code>, if there is one, which must then be an <code>ActionUsage</code>.</p> + + + OCL2.0 + elseAction = + let parameter : Feature = inputParameter(3) in + if parameter <> null and parameter.oclIsKindOf(ActionUsage) then + parameter.oclAsType(ActionUsage) + else + null + endif + + + + + <p>An <code>IfActionUsage</code> must have at least two owned <code>input</code> <code>parameters</code>.</p> + + + OCL2.0 + inputParameters()->size() >= 2 + + + + + + <p>The <code>ActionUsage</code> that is to be performed if the result of the <code>ifArgument</code> is false. It is the (optional) third <code>parameter</code> of the <code>IfActionUsage</code>.</p> + + + + + + + + <p>The <code>ActionUsage</code> that is to be performed if the result of the <code>ifArgument</code> is true. It is the second <code>parameter<code> of the <code>IfActionUsage</code>.</p> + + + + + + + + <p>The <code>Expression</code> whose result determines whether the <code>thenAction</code> or (optionally) the <code>elseAction</code> is performed. It is the first <code>parameter<code> of the <code>IfActionUsage</code>.</p> + + + + + + + + + + <p>The AssignmentActionUsage that has a certain Expression as its <code>targetArgument</code>.</p> + + + + + + + + + <p>The <code>WhileLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>untilArgument</code>.</p> + + + + + + + + + <p>The <code>WhileLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>whileArgument</code>.</p> + + + + + + + + + <p>The <code>LoopActionUsage</code> that has a certain <code>ActionUsage</code> as its <code>bodyAction</code>.</p> + + + + + + + + + <p>The IfActionUsage that has a certain ActionUsage as its <code>elseAction</code>.</p> + + + + + + + + + <p>The <code>IfActionUsage</code> that has a certain <code>Expression</code> as its <code>ifArgument</code>.</p> + + + + + + + + + <p>The <code>IfActionUsage</code> that has a certain <code>ActionUsage</code> as its <code>thenAction</code>.</p> + + + + + + + + <p>A <code>LoopActionUsage</code> is an <code>ActionUsage</code> that specifies that its <code>bodyAction</code> should be performed repeatedly. Its subclasses <code>WhileLoopActionUsage</code> and <code>ForLoopActionUsage</code> provide different ways to determine how many times the <code>bodyAction</code> should be performed.</p> + + + + <p>The <code>bodyAction</code> of a <code>LoopActionUsage</code> is its second input <code>parameter</code>, which must be an <code>Action</code>.</p> + + + OCL2.0 + bodyAction = + let parameter : Feature = inputParameter(2) in + if parameter <> null and parameter.oclIsKindOf(Action) then + parameter.oclAsType(Action) + else + null + endif + + + + + + + <p>The <code>ActionUsage</code> to be performed repeatedly by the <code>LoopActionUsage</code>. It is the second <code>parameter</code> of the <code>LoopActionUsage</code>.</p> + + + + + + + + + + <p>The AssignmentActionUsage that has a certain Expression as its <code>valueArgument</code>.</p> + + + + + + + + <p>A <code>ForLoopActionUsage</code> is a <code>LoopActionUsage</code> that specifies that its <code>bodyAction</code> <code>ActionUsage</code> should be performed once for each value, in order, from the sequence of values obtained as the result of the <code>seqArgument</code> <code>Expression</code>, with the <code>loopVariable</code> set to the value for each iteration.</p> + + + + <p>The <code>seqArgument</code> of a <code>ForLoopActionUsage</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + seqArgument = argument(1) + + + + + + <p>A composite <code>ForLoopActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::forLoops</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::forLoops') + + + + + <p>The <code>loopVariable</code> of a <code>ForLoopActionUsage</code> must redefine the <code>ActionUsage</code> <code><em>Actions::ForLoopAction::var</em></code>.</p> + + + OCL2.0 + loopVariable <> null and +loopVariable.redefinesFromLibrary('Actions::ForLoopAction::var') + + + + + <p>A <code>ForLoopActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::forLoopActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::forLoopActions') + + + + + <p>The <code>loopVariable</code> of a <code>ForLoopActionUsage</code> is its first <code>ownedFeature</code>, which must be a <code>ReferenceUsage</code>.</p> + + + OCL2.0 + loopVariable = + if ownedFeature->isEmpty() or + not ownedFeature->first().oclIsKindOf(ReferenceUsage) then + null + else + ownedFeature->first().oclAsType(ReferenceUsage) + endif + + + + + <p>The first <code>ownedFeature</code> of a <code>ForLoopActionUsage</code> must be a <code>ReferenceUsage</code>.</p> + + + OCL2.0 + ownedFeature->notEmpty() and +ownedFeature->at(1).oclIsKindOf(ReferenceUsage) + + + + + + <p>A <code>ForLoopActionUsage</code> must have two owned <code>input</code> <code>parameters</code>.</p> + + + OCL2.0 + inputParameters()->size() = 2 + + + + + + <p>The <code>Expression</code> whose result provides the sequence of values to which the <code>loopVariable</code> is set for each iterative performance of the <code>bodyAction</code>. It is the <code>Expression</code> whose <code>result</code> is bound to the <em><code>seq</code></em> <code>input</code> <code>parameter</code> of this <code>ForLoopActionUsage</code>.</p> + + + + + + + + <p>The <code>ownedFeature</code> of this <co>ForLoopActionUsage</code> that acts as the loop variable, which is assigned the successive values of the input sequence on each iteration. It is the <code>ownedFeature</code> that redefines <em><code>ForLoopAction::var</code></em>.</p> + + + + + + + + <p>An <code>AssignmentActionUsage</code> is an <code>ActionUsage</code> that is defined, directly or indirectly, by the <code>ActionDefinition</code> <em><code>AssignmentAction</code></em> from the Systems Model Library. It specifies that the value of the <code>referent</code> <code>Feature</code>, relative to the target given by the result of the <code>targetArgument</code> <code>Expression</code>, should be set to the result of the <code>valueExpression</code>.</p> + + + + + <p>An <code>AssignmentActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::assignmentActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::assignmentActions') + + + + + <p>The first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine <code><em>AssignmentAction::target::startingAt</em></code>.</p> + + + OCL2.0 + let targetParameter : Feature = inputParameter(1) in +targetParameter <> null and +targetParameter.ownedFeature->notEmpty() and +targetParameter.ownedFeature->first(). + redefines('AssignmentAction::target::startingAt') + + + + + <p>The <code>valueExpression</code> of a <code>AssignmentActionUsage</code> is its second argument <code>Expression</code>.</p> + + + OCL2.0 + valueExpression = argument(2) + + + + + <p>The <code>targetArgument</code> of a <code>AssignmentActionUsage</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + targetArgument = argument(1) + + + + + <p>A composite <code>AssignmentActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::assignments</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::assignments') + + + + + <p>The first <code>ownedFeature</code> of the first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine <code><em>AssignmentAction::target::startingAt::accessedFeature</em></code>.</p> + + + OCL2.0 + let targetParameter : Feature = inputParameter(1) in +targetParameter <> null and +targetParameter.ownedFeature->notEmpty() and +targetParameter->first().ownedFeature->notEmpty() and +targetParameter->first().ownedFeature->first(). + redefines('AssigmentAction::target::startingAt::accessedFeature') + + + + + <p>The first <code>ownedFeature</code> of the first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine the <code>referent</code> of the <code>AssignmentActionUsage</code>.</p> + + + OCL2.0 + let targetParameter : Feature = inputParameter(1) in +targetParameter <> null and +targetParameter.ownedFeature->notEmpty() and +targetParameter->first().ownedFeature->notEmpty() and +targetParameter->first().ownedFeature->first().redefines(referent) + + + + + <p>The <code>referent</code> of an <code>AssignmentActionUsage</code> is the first <code>Feature</code> that is the <code>memberElement</code> of a <code>ownedMembership</code> that is not a <code>FeatureMembership</code>.</p> + + + OCL2.0 + referent = + let unownedFeatures : Sequence(Feature) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement-> + selectByKind(Feature) in + if unownedFeatures->isEmpty() then null + else unownedFeatures->first().oclAsType(Feature) + endif + + + + + <p>An <code>AssignmentActionUsage</code> must have an <code>ownedMembership</code> that is not an <code>OwningMembership</code> and whose <code>memberElement</code> is a <code>Feature</code>.</p> + + + OCL2.0 + ownedMembership->exists( + not oclIsKindOf(OwningMembership) and + memberElement.oclIsKindOf(Feature)) + + + + + <p>The <code>featureTarget</code> of the <code>referent</code> of an <code>AssignmentActionUsage</code> must be able to have time-varying values.</p> + + + OCL2.0 + referent <> null implies referent.featureTarget.mayTimeVary + + + + + + <p>The <code>Expression</code> whose value is an occurrence in the domain of the <code>referent</code> <code>Feature</code>, for which the value of the <code>referent</code> will be set to the result of the <code>valueExpression</code> by this <code>AssignmentActionUsage</code>.</p> + + + + + + + <p>The <code>Expression</code> whose result is to be assigned to the <code>referent</code> <code>Feature</code>.</p> + + + + + + + <p>The <code>Feature</code> whose value is to be set.</p> + + + + + + + + <p>A <code>WhileLoopActionUsage</code> is a <code>LoopActionUsage</code> that specifies that the <code>bodyAction</code> <code>ActionUsage</code> should be performed repeatedly while the result of the <code>whileArgument</code> <code>Expression</code> is true or until the result of the <code>untilArgument</code> <code>Expression</code> (if provided) is true. The <code>whileArgument</code> <code>Expression</code> is evaluated before each (possible) performance of the <code>bodyAction</code>, and the <code>untilArgument</code> <code>Expression</code> is evaluated after each performance of the <code>bodyAction</code>.</p> + + + + <p>A composite <code>WhileLoopActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::whileLoops</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::whileLoops') + + + + + <p>The <code>whileArgument</code> of a <code>WhileLoopActionUsage</code> is its third input <code>parameter</code>, which, if it exists, must be an <code>Expression</code>.</p> + + + OCL2.0 + untilArgument = + let parameter : Feature = inputParameter(3) in + if parameter <> null and parameter.oclIsKindOf(Expression) then + parameter.oclAsType(Expression) + else + null + endif + + + + + + <p>A <code>WhileLoopActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::whileLoopActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::whileLoopActions') + + + + + <p>The <code>whileArgument</code> of a <code>WhileLoopActionUsage</code> is its first input <code>parameter</code>, which must be an <code>Expression</code>.</p> + + + OCL2.0 + whileArgument = + let parameter : Feature = inputParameter(1) in + if parameter <> null and parameter.oclIsKindOf(Expression) then + parameter.oclAsType(Expression) + else + null + endif + + + + + + <p>A <code>WhileLoopActionUsage</code> must have at least two owned <code>input</code> <code>parameters</code>.</p> + + + OCL2.0 + inputParameters()->size() >= 2 + + + + + + <p>The <code>Expression</code> whose result, if true, determines that the <code>bodyAction</code> should continue to be performed. It is the first owned <code>parameter</code> of the <code>WhileLoopActionUsage</code>.</p> + + + + + + + + <p>The <code>Expression</code> whose result, if false, determines that the <code>bodyAction</code> should continue to be performed. It is the (optional) third owned <code>parameter</code> of the <code>WhileLoopActionUsage</code>.</p> + + + + + + + + + + The <code>ForLoopActionUsage</code> that has a certain <code>ReferenceUsage</code> as its <code>loopVariable</code>. + + + + + + + + + <p>The AcceptActionUsage that owns the <code>payloadParameter</code>.</p> + + + + + + + + <p><code>TriggerKind</code> enumerates the kinds of triggers that can be represented by a <code>TriggerInvocationExpression</code>.</p> + + + + <p>Indicates a <em>change trigger</em>, corresponding to the <em><code>TriggerWhen</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the Kernel Semantic Library.</p> + + + + + <p>Indicates an <em>absolute time trigger</em>, corresponding to the <em><code>TriggerAt</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the Kernel Semantic Library.</p> + + + + + <p>Indicates a <em>relative time trigger</em>, corresponding to the <em><code>TriggerAfter</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the <code>Kernel Semantic Library.</p> + + + + + + + + + + + + <p>A <code>TriggerInvocationExpression</code> is an <code>InvocationExpression</code> that invokes one of the trigger <code>Functions</code> from the Kernel Semantic Library <code><em>Triggers<em></code> package, as indicated by its <code>kind</code>.</p> + + + + <p>If a <code>TriggerInvocationExpression</code> has <code>kind = after</code>, then it must have an argument <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>Quantities::ScalarQuantityValue</code></em> and a <code>feature</code> that directly or indirectly redefines <em><code>Quantities::TensorQuantityValue::mRef</code></em> and directly or indirectly specializes <em><code>ISQBase::DurationUnit</code></em>.</p> + + + OCL2.0 + kind = TriggerKind::after implies + argument->notEmpty() and + argument->at(1).result.specializesFromLibrary('Quantities::ScalarQuantityValue') and + let mRef : Element = + resolveGlobal('Quantities::TensorQuantityValue::mRef').ownedMemberElement in + argument->at(1).result.feature-> + select(ownedRedefinition.redefinedFeature-> + closure(ownedRedefinition.redefinedFeature)-> + includes(mRef))-> + exists(specializesFromLibrary('ISQBase::DurationUnit')) + + + + + <p>If a <code>TriggerInvocationExpression</code> has <code>kind = at</code>, then it must have an argument <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>Time::TimeInstantValue</code></em>.</p> + + + OCL2.0 + kind = TriggerKind::at implies + argument->notEmpty() and + argument->at(1).result.specializesFromLibrary('Time::TimeInstantValue') + + + + + <p>If a <code>TriggerInvocationExpression</code> has <code>kind = when</code>, then it must have an <code>argument</code> that is a <code>FeatureReferenceExpression</code> whose <code>referent</code> is an <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>ScalarValues::Boolean</code></em>.</p> + + + OCL2.0 + kind = TriggerKind::when implies + argument->notEmpty() and + argument->at(1).oclIsKindOf(FeatureReferenceExpression) and + let referent : Feature = + argument->at(1).oclAsType(FeatureReferenceExpression).referent in + referent.oclIsKindOf(Expression) and + referent.oclAsType(Expression).result.specializesFromLibrary('ScalarValues::Boolean') + + + + + + <p>Indicates which of the <code>Functions</code> from the <code><em>Triggers</em></code> model in the Kernel Semantic Library is to be invoked by this <code>TriggerInvocationExpression</code>.</p> + + + + + <p>Return one of the <code>Functions</code> <em><code>TriggerWhen</code></em>, <em><code>TriggerAt</code></em> or <em><code>TriggerAfter</code></em>, from the Kernel Semantic Library <em><code>Triggers</code></em> package, depending on whether the <code>kind</code> of this <code>TriggerInvocationExpression</code> is <code>when</code>, <code>at</code> or <code>after</code>, respectively.</p> + + + + OCL2.0 + resolveGlobal( + if kind = TriggerKind::when then + 'Triggers::TriggerWhen' + else if kind = TriggerKind::at then + 'Triggers::TriggerAt' + else + 'Triggers::TriggerAfter' + endif endif +).memberElement.oclAsType(Type) + + + + + + + + + <p>The <code>SendActionUsage</code> that has a certain <code>Expression</code> as its <code>senderArgument</code>.</p> + + + + + + + + <p>A <code>TerminateActionUsage</code> is an <code>ActionUsage</code> that directly or indirectly specializes the <code>ActionDefinition</code> <em><code>TerminateAction</code></em> from the Systems Model Library, which causes a given <em><code>terminatedOccurrence</code></em> to end during its performance. By default, the <code>terminatedOccurrence</code> is the featuring instance (<em><code>that</code></em>) of the performance of the <code>TerminateActionUsage</code>, generally the performance of its immediately containing <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> + + + + <p>A <code>TerminateActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::terminateActions</code></em> from the Systems Modeling Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::terminateActions') + + + + + <p>The <code>terminatedOccurrenceArgument</code> of a <code>TerminateActionUsage</code> is its first argument.</p> + + + OCL2.0 + terminatedOccurrenceArgument = argument(1) + + + + + <p>A composite <code>TerminateActionUsage</code> that is a subaction must must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::terminateSubactions</code></em> from the Systems Modeling Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::terminateSubactions') + + + + + + <p>The <code>Expression</code> that is the <code>featureValue</code> of the <em><code>terminateOccurrence</code></em> <code>parameter</code> of this <code>TerminateActionUsage</code>. + + + + + + + + + <p>The <code>TerminateActionUsage</code> that has a certain <code>Expression</code> as its <code>terminatedOccurrenceArgument</code>.</p> + + + + + + + + + + + <p>The Definitions that have a certain Usage as a <code>flow</code>.</p> + + + + + + + + + <p>The Definitions that feature a certain Usage.</p> + + + + + + + + + <p>The Usage in which the <code>nestedPort</code> is nested (if any).</p> + + + + + + + + <p>A <code>Definition</code> is a <code>Classifier</code> of <code>Usages</code>. The actual kinds of <code>Definition</code> that may appear in a model are given by the subclasses of <code>Definition</code> (possibly as extended with user-defined <em><code>SemanticMetadata</code></em>).</p> + +<p>Normally, a <code>Definition</code> has owned Usages that model <code>features</code> of the thing being defined. A <code>Definition</code> may also have other <code>Definitions</code> nested in it, but this has no semantic significance, other than the nested scoping resulting from the <code>Definition</code> being considered as a <code>Namespace</code> for any nested <code>Definitions</code>.</p> + +<p>However, if a <code>Definition</code> has <code>isVariation</code> = <code>true</code>, then it represents a <em>variation point</em> <code>Definition</code>. In this case, all of its <code>members</code> must be <code>variant</code> <code>Usages</code>, related to the <code>Definition</code> by <code>VariantMembership</code> <code>Relationships</code>. Rather than being <code>features</code> of the <code>Definition</code>, <code>variant</code> <code>Usages</code> model different concrete alternatives that can be chosen to fill in for an abstract <code>Usage</code> of the variation point <code>Definition</code>.</p> + + + + + <p>If a <code>Definition</code> is a variation, then all it must not have any <code>ownedFeatureMemberships</code>.</p> + + + OCL2.0 + isVariation implies ownedFeatureMembership->isEmpty() + + + + + <p>The <code>variants</code> of a <code>Definition</code> are the <code>ownedVariantUsages</code> of its <code>variantMemberships</code>.</p> + + + OCL2.0 + variant = variantMembership.ownedVariantUsage + + + + + <p>The <code>variantMemberships</code> of a <code>Definition</code> are those <code>ownedMemberships</code> that are <code>VariantMemberships</code>.</p> + + + OCL2.0 + variantMembership = ownedMembership->selectByKind(VariantMembership) + + + + + <p>A variation <code>Definition</code> may not specialize any other variation <code>Definition</code>.</p> + + + OCL2.0 + isVariation implies + not ownedSpecialization.specific->exists( + oclIsKindOf(Definition) and + oclAsType(Definition).isVariation) + + + + + <p>The <code>usages</code> of a <code>Definition</code> are all its <code>features</code> that are <code>Usages</code>.</p> + + + OCL2.0 + usage = feature->selectByKind(Usage) + + + + + <p>The <code>directedUsages</code> of a <code>Definition</code> are all its <code>directedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + directedUsage = directedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedUsages</code> of a <code>Definition</code> are all its <code>ownedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + ownedUsage = ownedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedAttributes</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AttributeUsages</code>.</p> + + + OCL2.0 + ownedAttribute = ownedUsage->selectByKind(AttributeUsage) + + + + + <p>The <code>ownedReferences</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ReferenceUsages</code>.</p> + + + OCL2.0 + ownedReference = ownedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedEnumerations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>EnumerationUsages</code>.</p> + + + OCL2.0 + ownedEnumeration = ownedUsage->selectByKind(EnumerationUsage) + + + + + <p>The <code>ownedOccurrences</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>OccurrenceUsages</code>.</p> + + + OCL2.0 + ownedOccurrence = ownedUsage->selectByKind(OccurrenceUsage) + + + + + <p>The <code>ownedItems</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ItemUsages</code>.</p> + + + OCL2.0 + ownedItem = ownedUsage->selectByKind(ItemUsage) + + + + + <p>The <code>ownedParts</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>PartUsages</code>.</p> + + + OCL2.0 + ownedPart = ownedUsage->selectByKind(PartUsage) + + + + + <p>The <code>ownedPorts</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>PortUsages</code>.</p> + + + OCL2.0 + ownedPort = ownedUsage->selectByKind(PortUsage) + + + + + <p>The <code>ownedConnections</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConnectorAsUsages</code>.</p> + + + OCL2.0 + ownedConnection = ownedUsage->selectByKind(ConnectorAsUsage) + + + + + <p>The <code>ownedFlows</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>FlowUsages</code>.</p> + + + OCL2.0 + ownedFlow = ownedUsage->selectByKind(FlowConnectionUsage) + + + + + <p>The <code>ownedInterfaces</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>InterfaceUsages</code>.</p> + + + OCL2.0 + ownedInterface = ownedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedAllocations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AllocationUsages</code>.</p> + + + OCL2.0 + ownedAllocation = ownedUsage->selectByKind(AllocationUsage) + + + + + <p>The <code>ownedActions</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ActionUsages</code>.</p> + + + OCL2.0 + ownedAction = ownedUsage->selectByKind(ActionUsage) + + + + + <p>The <code>ownedStates</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>StateUsages</code>.</p> + + + OCL2.0 + ownedState = ownedUsage->selectByKind(StateUsage) + + + + + <p>The <code>ownedTransitions</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>TransitionUsages</code>.</p> + + + OCL2.0 + ownedTransition = ownedUsage->selectByKind(TransitionUsage) + + + + + <p>The <code>ownedCalculations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>CalculationUsages</code>.</p> + + + OCL2.0 + ownedCalculation = ownedUsage->selectByKind(CalculationUsage) + + + + + <p>The <code>ownedConstraints</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConstraintUsages</code>.</p> + + + OCL2.0 + ownedConstraint = ownedUsage->selectByKind(ConstraintUsage) + + + + + <p>The <code>ownedRequirements</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>RequirementUsages</code>.</p> + + + OCL2.0 + ownedRequirement = ownedUsage->selectByKind(RequirementUsage) + + + + + <p>The <code>ownedConcerns</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConcernUsages</code>.</p> + + + OCL2.0 + ownedConcern = ownedUsage->selectByKind(ConcernUsage) + + + + + <p>The <code>ownedCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>CaseUsages</code>.</p> + + + OCL2.0 + ownedCase = ownedUsage->selectByKind(CaseUsage) + + + + + <p>The <code>ownedAnalysisCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AnalysisCaseUsages</code>.</p> + + + OCL2.0 + ownedAnalysisCase = ownedUsage->selectByKind(AnalysisCaseUsage) + + + + + <p>The <code>ownedValidationCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ValidationCaseUsages</code>.</p> + + + OCL2.0 + ownedVerificationCase = ownedUsage->selectByKind(VerificationCaseUsage) + + + + + <p>The <code>ownedUseCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>UseCaseUsages</code>.</p> + + + OCL2.0 + ownedUseCase = ownedUsage->selectByKind(UseCaseUsage) + + + + + <p>The <code>ownedViews</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ViewUsages</code>.</p> + + + OCL2.0 + ownedView = ownedUsage->selectByKind(ViewUsage) + + + + + <p>The <code>ownedViewpoints</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ViewpointUsages</code>.</p> + + + OCL2.0 + ownedViewpoint = ownedUsage->selectByKind(ViewpointUsage) + + + + + <p>The <code>ownedRenderings</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>RenderingUsages</code>.</p> + + + OCL2.0 + ownedRendering = ownedUsage->selectByKind(RenderingUsage) + + + + + <p>The <code>ownedMetadata</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>MetadataUsages</code>.</p> + + + OCL2.0 + ownedMetadata = ownedUsage->selectByKind(MetadataUsage) + + + + + <p>If a <code>Definition</code> is a variation, then it must be abstract.</p> + + + OCL2.0 + isVariation implies isAbstract + + + + + + <p>Whether this <code>Definition</code> is for a variation point or not. If true, then all the <code>memberships</code> of the <code>Definition</code> must be <code>VariantMemberships</code>.</p> + + + + + + <p>The <code>Usages</code> which represent the variants of this <code>Definition</code> as a variation point <code>Definition</code>, if <code>isVariation</code> = true. If <code>isVariation = false</code>, the there must be no <code>variants</code>.</p> + + + + + + + <p>The <code>ownedMemberships</code> of this <code>Definition</code> that are <code>VariantMemberships</code>. If <code>isVariation</code> = true, then this must be all <code>ownedMemberships</code> of the <code>Definition</code>. If <code>isVariation</code> = false, then <code>variantMembership</code>must be empty.</p> + + + + + + + <p>The <code>Usages</code> that are <code>features</code> of this <code>Definition</code> (not necessarily owned).</p> + + + + + + + <p>The <code>usages</code> of this <code>Definition</code> that are <code>directedFeatures</code>.</p> + + + + + + + + <p>The <code>Usages</code> that are <code>ownedFeatures</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ReferenceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>AttributeUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.<p> + + + + + + + <p>The <code>EnumerationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.<p> + + + + + + + <p>The <code>OccurrenceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ItemUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>PartUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>PortUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ConnectorAsUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>. Note that this list includes <code>BindingConnectorAsUsages</code>, <code>SuccessionAsUsages</code>, and <code>FlowUsages</code> because these are <code>ConnectorAsUsages</code> even though they are not <code>ConnectionUsages</code>.</p> + + + + + + + <p>The <code>FlowUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>InterfaceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>AllocationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ActionUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>StateUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>TransitionUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>CalculationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ConstraintUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + + <p>The <code>RequirementUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ConcernUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The code>CaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>AnalysisCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>VerificationCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>UseCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ViewUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ViewpointUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>RenderingUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>MetadataUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + + + <p>The ItemUsages being typed by a certain Structure.</p> + + + + + + + + + <p>The Usage in which the <code>nestedAction</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedPort</code>.</p> + + + + + + + + + + <p>A <code>Usage</code> is a usage of a <code>Definition</code>.</p> + +<p>A <code>Usage</code> may have <code>nestedUsages</code> that model <code>features</code> that apply in the context of the <code>owningUsage</code>. A <code>Usage</code> may also have <code>Definitions</code> nested in it, but this has no semantic significance, other than the nested scoping resulting from the <code>Usage</code> being considered as a <code>Namespace</code> for any nested <code>Definitions</code>.</p> + +<p>However, if a <code>Usage</code> has <code>isVariation = true</code>, then it represents a <em>variation point</em> <code>Usage</code>. In this case, all of its <code>members</code> must be <code>variant</code> <code>Usages</code>, related to the <code>Usage</code> by <code>VariantMembership</code> <code>Relationships</code>. Rather than being <code>features</code> of the <code>Usage</code>, <code>variant</code> <code>Usages</code> model different concrete alternatives that can be chosen to fill in for the variation point <code>Usage</code>.</p> + + + + <p>The <code>variants</code> of a <code>Usage</code> are the <code>ownedVariantUsages</code> of its <code>variantMemberships</code>.</p> + + + OCL2.0 + variant = variantMembership.ownedVariantUsage + + + + + <p>The <code>variantMemberships</code> of a <code>Usage</code> are those <code>ownedMemberships</code> that are <code>VariantMemberships</code>.</p> + + + OCL2.0 + variantMembership = ownedMembership->selectByKind(VariantMembership) + + + + + <p>If a <code>Usage</code> is a variation, then it must not have any <code>ownedFeatureMemberships</code>.</p> + + + OCL2.0 + isVariation implies ownedFeatureMembership->isEmpty() + + + + + <p>A <code>Usage</code> is referential if it is not composite.</p> + + + OCL2.0 + isReference = not isComposite + + + + + <p>If a <code>Usage</code> has an <code>owningVariationUsage</code>, then it must directly or indirectly specialize that <code>Usage</code>.</p> + + + OCL2.0 + owningVariationUsage <> null implies + specializes(owningVariationUsage) + + + + + <p>A variation <code>Usage</code> may not specialize any variation <code>Definition</code> or <code>Usage</code>.</p> + + + OCL2.0 + isVariation implies + not ownedSpecialization.specific->exists( + oclIsKindOf(Definition) and + oclAsType(Definition).isVariation or + oclIsKindOf(Usage) and + oclAsType(Usage).isVariation) + + + + + <p>If a <code>Usage</code> has an <code>owningVariationDefinition</code>, then it must directly or indirectly specialize that <code>Definition</code>.</p> + + + OCL2.0 + owningVariationDefinition <> null implies + specializes(owningVariationDefinition) + + + + + <p>The <code>directedUsages</code> of a <code>Usage</code> are all its <code>directedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + directedUsage = directedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedActions</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ActionUsages</code>.</p> + + + OCL2.0 + nestedAction = nestedUsage->selectByKind(ActionUsage) + + + + + <p>The <code>ownedAllocations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AllocationUsages</code>.</p> + + + OCL2.0 + nestedAllocation = nestedUsage->selectByKind(AllocationUsage) + + + + + <p>The <code>ownedAnalysisCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AnalysisCaseUsages</code>.</p> + + + OCL2.0 + nestedAnalysisCase = nestedUsage->selectByKind(AnalysisCaseUsage) + + + + + <p>The <code>ownedAttributes</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AttributeUsages</code>.</p> + + + OCL2.0 + nestedAttribute = nestedUsage->selectByKind(AttributeUsage) + + + + + <p>The <code>ownedCalculations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>CalculationUsages</code>.</p> + + + OCL2.0 + nestedCalculation = nestedUsage->selectByKind(CalculationUsage) + + + + + <p>The <code>ownedCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>CaseUsages</code>.</p> + + + OCL2.0 + nestedCase = nestedUsage->selectByKind(CaseUsage) + + + + + <p>The <code>ownedConcerns</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConcernUsages</code>.</p> + + + OCL2.0 + nestedConcern = nestedUsage->selectByKind(ConcernUsage) + + + + + <p>The <code>ownedConnections</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConnectorAsUsages</code>.</p> + + + OCL2.0 + nestedConnection = nestedUsage->selectByKind(ConnectorAsUsage) + + + + + <p>The <code>ownedConstraints</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConstraintUsages</code>.</p> + + + OCL2.0 + nestedConstraint = nestedUsage->selectByKind(ConstraintUsage) + + + + + <p>The <code>ownedEnumerations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>EnumerationUsages</code>.</p> + + + OCL2.0 + ownedNested = nestedUsage->selectByKind(EnumerationUsage) + + + + + <p>The <code>ownedFlows</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>FlowConnectionUsages</code>.</p> + + + OCL2.0 + nestedFlow = nestedUsage->selectByKind(FlowConnectionUsage) + + + + + <p>The <code>ownedInterfaces</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>InterfaceUsages</code>.</p> + + + OCL2.0 + nestedInterface = nestedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedItems</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ItemUsages</code>.</p> + + + OCL2.0 + nestedItem = nestedUsage->selectByKind(ItemUsage) + + + + + <p>The <code>ownedMetadata</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>MetadataUsages</code>.</p> + + + OCL2.0 + nestedMetadata = nestedUsage->selectByKind(MetadataUsage) + + + + + <p>The <code>ownedOccurrences</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>OccurrenceUsages</code>.</p> + + + OCL2.0 + nestedOccurrence = nestedUsage->selectByKind(OccurrenceUsage) + + + + + <p>The <code>ownedParts</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>PartUsages</code>.</p> + + + OCL2.0 + nestedPart = nestedUsage->selectByKind(PartUsage) + + + + + <p>The <code>ownedPorts</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>PortUsages</code>.</p> + + + OCL2.0 + nestedPort = nestedUsage->selectByKind(PortUsage) + + + + + <p>The <code>ownedReferences</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ReferenceUsages</code>.</p> + + + OCL2.0 + nestedReference = nestedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedRenderings</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>RenderingUsages</code>.</p> + + + OCL2.0 + nestedRendering = nestedUsage->selectByKind(RenderingUsage) + + + + + <p>The <code>ownedRequirements</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>RequirementUsages</code>.</p> + + + OCL2.0 + nestedRequirement = nestedUsage->selectByKind(RequirementUsage) + + + + + <p>The <code>ownedStates</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>StateUsages</code>.</p> + + + OCL2.0 + nestedState = nestedUsage->selectByKind(StateUsage) + + + + + <p>The <code>ownedTransitions</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>TransitionUsages</code>.</p> + + + OCL2.0 + nestedTransition = nestedUsage->selectByKind(TransitionUsage) + + + + + <p>The <code>ownedUsages</code> of a <code>Usage</code> are all its <code>ownedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + nestedUsage = ownedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedUseCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>UseCaseUsages</code>.</p> + + + OCL2.0 + nestedUseCase = nestedUsage->selectByKind(UseCaseUsage) + + + + + <p>The <code>ownedValidationCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ValidationCaseUsages</code>.</p> + + + OCL2.0 + nestedVerificationCase = nestedUsage->selectByKind(VerificationCaseUsage) + + + + + <p>The <code>ownedViews</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ViewUsages</code>.</p> + + + OCL2.0 + nestedView = nestedUsage->selectByKind(ViewUsage) + + + + + <p>The <code>ownedViewpoints</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ViewpointUsages</code>.</p> + + + OCL2.0 + nestedViewpoint = nestedUsage->selectByKind(ViewpointUsage) + + + + + <p>The <code>usages</code> of a <code>Usage</code> are all its <code>features</code> that are <code>Usages</code>.</p> + + + OCL2.0 + usage = feature->selectByKind(Usage) + + + + + <p>A <code>Usage</code> that is directed, an end feature or has no <code>featuringTypes</code> must be referential.</p> + + + OCL2.0 + direction <> null or isEnd or featuringType->isEmpty() implies + isReference + + + + + <p>If a <code>Usage</code> is a variation, then it must be abstract.</p> + + + OCL2.0 + isVariation implies isAbstract + + + + + <p>A <code>Usage</code> <code>mayTimeVary</code> if and only if all of the following are true</p> +<ul> + <li>It has an <code>owningType</code> that specializes <em><code>Occurrences::Occurrence</code></em> (from the Kernel Semantic Library).</li> + <li>It is not a portion.</li> + <li>It does not specialize <em><code>Links::SelfLink</code></em> or <em><code>Occurrences::HappensLink</code></em> (from the Kernel Semantic Library).</li> + <li>If <code>isComposite = true</code>, it does not specialize <em><code>Actions::Action</code></em> (from the Systems Model Library). +</li></ul> + + + OCL2.0 + mayTimeVary = + owningType <> null and + owningType.specializesFromLibrary('Occurrences::Occurrence') and + not ( + isPortion or + specializesFromLibrary('Links::SelfLink') or + specializesFromLibrary('Occurrences::HappensLink') or + isComposite and specializesFromLibrary('Actions::Action') + ) + + + + + <p>If a <code>Usage</code> has an <code>owningVariationUsage</code>, then it must have the same <code>featuringTypes</code> as that <code>Usage</code>.</p> + + + OCL2.0 + owningVariationUsage <> null implies + featuringType->asSet() = owningVariationUsage.featuringType->asSet() + + + + + + <p>Whether this <code>Usage</code> may be time varying (that is, whether it is featured by the snapshots of its <code>owningType</code>, rather than being featured by the <code>owningType</code> itself). However, if <code>isConstant</code> is also true, then the value of the <code>Usage</code> is nevertheless constant over the entire duration of an instance of its <code>owningType</code> (that is, it has the same value on all snapshots).</p> + +<p>The property <code>mayTimeVary</code> redefines the KerML property <code>Feature::isVariable</code>, making it derived. The property <code>isConstant</code> is inherited from <code>Feature</code>.</p> + + + + + + <p>Whether this <code>Usage</code> is a referential <code>Usage</code>, that is, it has <code>isComposite = false</code>.<p> + + + + + + <p>The <code>Usages</code> which represent the variants of this <code>Usage</code> as a variation point <code>Usage</code>, if <code>isVariation = true</code>. If <code>isVariation = false</code>, then there must be no <code>variants</code>.</p> + + + + + + + <p>The <code>ownedMemberships</code> of this <code>Usage</code> that are <code>VariantMemberships</code>. If <code>isVariation = true</code>, then this must be all <code>memberships</code> of the <code>Usage</code>. If <code>isVariation = false</code>, then <code>variantMembership</code>must be empty.</p> + + + + + + + <p>The <code>Definition</code> that owns this <code>Usage</code> (if any).</p> + + + + + + + <p>The <code>Usage</code> in which this <code>Usage</code> is nested (if any).</p> + + + + + + + <p>The <code>Classifiers</code> that are the types of this <code>Usage</code>. Nominally, these are <code>Definitions</code>, but other kinds of Kernel <code>Classifiers</code> are also allowed, to permit use of <code>Classifiers</code> from the Kernel Model Libraries.</p> + + + + + + + <p>The <code>Usages</code> that are <code>features</code> of this <code>Usage</code> (not necessarily owned).</p> + + + + + + + + + + <p>The <code>usages</code> of this <code>Usage</code> that are <code>directedFeatures</code>.</p> + + + + + + + + <p>The <code>Usages</code> that are <code>ownedFeatures</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ReferenceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The code>AttributeUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The code>EnumerationUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.<p> + + + + + + + <p>The <code>OccurrenceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ItemUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>PartUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>PortUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ConnectorAsUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>. Note that this list includes <code>BindingConnectorAsUsages</code>, <code>SuccessionAsUsages</code>, and <code>FlowConnectionUsages</code> because these are <code>ConnectorAsUsages</code> even though they are not <code>ConnectionUsages</code>.</p> + + + + + + + <p>The code>FlowUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>InterfaceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>AllocationUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ActionUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>StateUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>TransitionUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>CalculationUsage</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ConstraintUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>RequirementUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ConcernUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>CaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>AnalysisCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>VerificationCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>UseCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ViewUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ViewpointUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>RenderingUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>MetadataUsages</code> that are <code>nestedUsages</code> of this of this <code>Usage</code>.</p> + + + + + + + <p>Whether this <code>Usage</code> is for a variation point or not. If true, then all the <code>memberships</code> of the <code>Usage</code> must be <code>VariantMemberships</code>.</p> + + + + + + <p>If this <code>Usage</code> is a variant, then its naming <code>Feature</code> is the <code>referencedFeature</code> of its <code>ownedReferenceSubsetting</code>.</p> + + + + OCL2.0 + if not owningMembership.oclIsKindOf(VariantMembership) then + self.oclAsType(Feature).namingFeature() +else if ownedReferenceSubsetting = null then null +else ownedReferenceSubsetting.referencedFeature +endif endif + + + + + + + + + + <p>If <code>ownedReferenceSubsetting</code> is not null, return the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code>.</p> + + + + OCL2.0 + if ownedReferenceSubsetting = null then null +else ownedReferenceSubsetting.referencedFeature.featureTarget +endif + + + + + + + + + <p>The Definition that owns the <code>ownedState</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedState</code> is nested.</p> + + + + + + + + + <p>The Usage in which the <code>nestedConstraint</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedTransition</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedConstraint</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedTransition</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedRequirement</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedRequirement</code> is nested.</p> + + + + + + + + <p>A <code>ReferenceUsage</code> is a <code>Usage</code> that specifies a non-compositional (<code>isComposite = false</code>) reference to something. The <code>definition</code> of a <code>ReferenceUsage</code> can be any kind of <code>Classifier</code>, with the default being the top-level <code>Classifier</code> <code><em>Base::Anything</em></code> from the Kernel Semantic Library. This allows the specification of a generic reference without distinguishing if the thing referenced is an attribute value, item, action, etc.</p> + + + + <p>A <code>ReferenceUsage</code> is always referential.</p> + + + OCL2.0 + isReference + + + + + + <p>Always <code>true</code> for a <code>ReferenceUsage</code>.</code> + + + + + + + <p>If this <code>ReferenceUsage</code> is the <em><code>payload</code></em> <code>parameter</code> of a <code>TransitionUsage</code>, then its naming <code>Feature</code> is the <code>payloadParameter</code> of the <code>triggerAction</code> of that <code>TransitionUsage</code> (if any).</p> + + + + OCL2.0 + if owningType <> null and owningType.oclIsKindOf(TransitionUsage) and + owningType.oclAsType(TransitionUsage).inputParameter(2) = self then + owningType.oclAsType(TransitionUsage).triggerPayloadParameter() +else self.oclAsType(Usage).namingFeature() +endif + + + + + + + + + + + + <p>The owning Definition of this VariantMembership, which must have <code>isVariation</code> = true.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedItem</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedInterface</code> is nested.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedReference</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAnalysisCase</code>.</p> + + + + + + + + + <p>The Usages that feature a certain Usage.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedPart</code>.</p> + + + + + + + + + <p>The Usages that have a certain Usage as a <code>flow</code>.</p> + + + + + + + + + + + + <p>The Usage in which the <code>nestedAnalysisCase</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedInterface</code>.</p> + + + + + + + + + <p>The variation point Definition that for which this Usage represents a variant, derived as the <code>owningVariationDefinition</code> of the <code>owningVariantMembership</code> of the Usage.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedReference</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedItem</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAction</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedPart</code> is nested.</p> + + + + + + + + + <p>The Usage in which the <code>nestedUsage</code> is nested.</p> + + + + + + + + + <p>The variation point Usage that for which this Usage represents a variant, derived as the <code>owningVariationUsage</code> of the <code>owningVariantMembership</code> of the Usage.</p> + + + + + + + + + <p>The Usage in which the <code>nestedAttribute</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAttribute</code>.</p> + + + + + + + + + <p>The Usages that have a certain Classifier as a <code>definition</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedConnection</code>.</p> + + + + + + + + <p>The Definition that owns this CaseUsage (if any).</p> + + + + <p>The Definition that owns the <code>ownedCase</code>.</p> + + + + + + + + <p>A <code>VariantMembership</code> is a <code>Membership</code> between a variation point <code>Definition</code> or <code>Usage</code> and a <code>Usage</code> that represents a variant in the context of that variation. The <code>membershipOwningNamespace</code> for the <code>VariantMembership</code> must be either a Definition or a <code>Usage</code> with <code>isVariation = true</code>.</p> + + + + <p>The <code>membershipOwningNamespace</code> of a <code>VariantMembership</code> must be a variation-point <code>Definition</code> or <code>Usage</code>.</p> + + + OCL2.0 + membershipOwningNamespace.oclIsKindOf(Definition) and + membershipOwningNamespace.oclAsType(Definition).isVariation or +membershipOwningNamespace.oclIsKindOf(Usage) and + membershipOwningNamespace.oclAsType(Usage).isVariation + + + + + + + <p>The <code>Usage</code> that represents a variant in the context of the <code>owningVariationDefinition</code> or <code>owningVariationUsage</code>.</p> + + + + + + + + + <p>The VariantMembership that owns this Usage, if the Usage represents a variant in the context of some variation point Definition or Usage.</p> + + + + + + + + + <p>The owning Definition of this VariantMembership, which must have <code>isVariation</code> = true.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedVerificationCase</code>.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedViewpoint</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedView</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedRendering</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedViewpoint</code>.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedRendering</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedVerificationCase</code>.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedView</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedEnumeration</code>.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedEnumeration</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAllocation</code>.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedAllocation</code>.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedConcern</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedConcern</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedOccurrence</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedOccurrence</code> is nested.</p> + + + + + + + + + <p>The <code>Usage</code> that owns the <code>nestedFlow</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedUseCase</code> is nested.</p> + + + + + + + + + <p>The <code>Definition</code> that owns the <code>ownedFlow</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedUseCase</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedMetadata</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedMetadata</code>.</p> + + + + + + + + + + <p>A <code>PartDefinition</code> is an <code>ItemDefinition</code> of a <code>Class</code> of systems or parts of systems. Note that all parts may be considered items for certain purposes, but not all items are parts that can perform actions within a system.</p> + + + + + </p>A <code>PartDefinition</code> must directly or indirectly specialize the base <code>PartDefinition</code> <em><code>Parts::Part</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Parts::Part') + + + + + + + <p>A <code>PartUsage</code> is a usage of a <code>PartDefinition</code> to represent a system or a part of a system. At least one of the <code>itemDefinitions</code> of the <code>PartUsage</code> must be a <code>PartDefinition</code>.</p> + +<p>A <code>PartUsage</code> must subset, directly or indirectly, the base <code>PartUsage</code> <em><code>parts</code></em> from the Systems Model Library.</p> + + + + <p>The <code>partDefinitions</code> of an <code>PartUsage</code> are those <code>itemDefinitions</code> that are <code>PartDefinitions</code>.</p> + + + OCL2.0 + itemDefinition->selectByKind(PartDefinition) + + + + + <p>At least one of the <code>itemDefinitions</code> of a <code>PartUsage</code> must be a <code>PartDefinition</code>.</p> + + + OCL2.0 + partDefinition->notEmpty() + + + + + <p>A <code>PartUsage</code> must directly or indirectly specialize the <code>PartUsage</code> <em><code>Parts::parts</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Parts::parts') + + + + + <p>A composite <code>PartUsage</code> whose <code>owningType</code> is a <code>ItemDefinition</code> or <code>ItemUsage</code> must directly or indirectly specialize the <code>PartUsage</code> <em><code>Items::Item::subparts</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ItemDefinition) or + owningType.oclIsKindOf(ItemUsage)) implies + specializesFromLibrary('Items::Item::subparts') + + + + + <p>If a <code>PartUsage</code> is owned via an <code>ActorMembership</code>, then it must directly or indirectly specialize either <code><em>Requirements::RequirementCheck::actors</em></code> (if its <code>owningType</code> is a <code>RequirementDefinition</code> or <code>RequirementUsage</code> or <code><em>Cases::Case::actors</em></code> (otherwise).</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(ActorMembership) implies + if owningType.oclIsKindOf(RequirementDefinition) or + owningType.oclIsKindOf(RequirementUsage) + then specializesFromLibrary('Requirements::RequirementCheck::actors') + else specializesFromLibrary('Cases::Case::actors') + + + + + <p>If a <code>PartUsage</code> is owned via a <code>StakeholderMembership</code>, then it must directly or indirectly specialize either <code><em>Requirements::RequirementCheck::stakeholders</em></code>.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(StakeholderMembership) implies + specializesFromLibrary('Requirements::RequirementCheck::stakeholders') + + + + + + <p>The <code>itemDefinitions</code> of this PartUsage that are PartDefinitions.</p> + + + + + + + + + <p>The PartUsages typed by a certain PartDefinition.</p> + + + + + + + + + + + <p>The InterfaceDefinitions that have a certain PortUsage as an <code>interfaceEnd</code>.</p> + + + + + + + + <p>An <code>InterfaceUsage</code> is a Usage of an <code>InterfaceDefinition</code> to represent an interface connecting parts of a system through specific ports.</p> + + + + <p>A binary <code>InterfaceUsage</code> must directly or indirectly specialize the <code>InterfaceUsage</code> <em><code>Interfaces::binaryInterfaces</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Interfaces::binaryInterfaces') + + + + + <p>An <code>InterfaceUsage</code> must directly or indirectly specialize the <code>InterfaceUsage</code> <em><code>Interfaces::interfaces</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Interfaces::interfaces') + + + + + + <p>The <code>InterfaceDefinitions</code> that type this <code>InterfaceUsage</code>.</p> + + + + + + + + + <p>The InterfaceUsages typed by a certain InterfaceDefinition.</p> + + + + + + + + <p>An <code>InterfaceDefinition</code> is a <code>ConnectionDefinition</code> all of whose ends are <code>PortUsages</code>, defining an interface between elements that interact through such ports.</p> + + + + <p>An <code>InterfaceDefinition</code> must directly or indirectly specialize the <code>InterfaceDefinition</code> <em><code>Interfaces::Interface</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Interfaces::Interface') + + + + + <p>A binary <code>InterfaceDefinition</code> must directly or indirectly specialize the <code>InterfaceDefinition</code> <em><code>Interfaces::BinaryInterface</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Interfaces::BinaryInterface') + + + + + + <p>The <code>PortUsages</code> that are the <code>connectionEnds</code> of this <code>InterfaceDefinition</code>. + + + + + + + + + + + + + + + + + <p>A <code>StateUsage</code> is an <code>ActionUsage</code> that is nominally the <code>Usage</code> of a <code>StateDefinition</code>. However, other kinds of kernel <code>Behaviors</code> are also allowed as <code>types</code>, to permit use of <code>Behaviors</code from the Kernel Model Libraries.</p> + +<p>A <code>StateUsage</code> may be related to up to three of its <code>ownedFeatures</code> by <code>StateSubactionMembership</code> <code>Relationships</code>, all of different <code>kinds</code>, corresponding to the entry, do and exit actions of the <code>StateUsage</code>.</p> + + + + + <p>The <code>doAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + OCL2.0 + doAction = + let doMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::do) in + if doMemberships->isEmpty() then null + else doMemberships->at(1) + endif + + + + + <p>The <code>entryAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + OCL2.0 + entryAction = + let entryMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::entry) in + if entryMemberships->isEmpty() then null + else entryMemberships->at(1) + endif + + + + + <p>If a <code>StateUsage</code> is parallel, then its <code>nestedActions</code> (which includes <code>nestedStates</code>) must not have any <code>incomingTransitions</code> or <code>outgoingTransitions</code>.</p> + + + OCL2.0 + isParallel implies + nestedAction.incomingTransition->isEmpty() and + nestedAction.outgoingTransition->isEmpty() + + + + + <p>A <code>StateUsage</code> that is a substate usage with a non-parallel owning <code>StateDefinition</code> or <code>StateUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::StateAction::exclusiveStates</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubstateUsage(false) implies + specializesFromLibrary('States::StateAction::exclusiveStates') + + + + + <p>The <code>exitAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = exit +</code>.</p> + + + OCL2.0 + exitAction = + let exitMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::exit) in + if exitMemberships->isEmpty() then null + else exitMemberships->at(1) + endif + + + + + <p>A <code>StateUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::stateActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('States::stateActions') + + + + + <p>A <code>StateUsage</code> must not have more than one owned <code>StateSubactionMembership</code> of each <code>kind</code>.</p> + + + OCL2.0 + ownedMembership-> + selectByKind(StateSubactionMembership)-> + isUnique(kind) + + + + + <p>A <code>StateUsage</code> that is a substate usage with a owning <code>StateDefinition</code> or <code>StateUsage</code> that is parallel must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::StateAction::substates</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubstateUsage(true) implies + specializesFromLibrary('States::StateAction::substates') + + + + + <p>A composite <code>StateUsage</code> whose <code>owningType</code> is a <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>Parts::Part::ownedStates</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::ownedStates') + + + + + + <p>The <code>Behaviors</code> that are the <code>types</code> of this <code>StateUsage</code>. Nominally, these would be <code>StateDefinitions</code>, but kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed on entry to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed while in the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed on exit to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = exit</code>.</p> + + + + + + + <p>Whether the <code>nestedStates</code> of this <code>StateUsage</code> are to all be performed in parallel. If true, none of the <code>nestedActions</code> (which include <code>nestedStates</code>) may have any incoming or outgoing <code>Transitions</code>. If false, only one <code>nestedState</code> may be performed at a time.</p> + + + + + + + + <p>Check if this <code>StateUsage</code> is composite and has an <code>owningType</code> that is a <code>StateDefinition</code> or <code>StateUsage</code> with the given value of <code>isParallel</code>, but is <em>not</em> an <code>entryAction</code>, <code>doAction</code>, or <code>exitAction</code>. If so, then it represents a <code><em>StateAction</em></code> that is a <code><em>substate</em></code> or <code><em>exclusiveState</em></code> (for <code>isParallel = false</code>) of another <code><em>StateAction</em></code>.</p> + + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(StateDefinition) and + owningType.oclAsType(StateDefinition).isParallel = isParallel or + owningType.oclIsKindOf(StateUsage) and + owningType.oclAsType(StateUsage).isParallel = isParallel) and +not owningFeatureMembership.oclIsKindOf(StateSubactionMembership) + + + + + + + + + + + + + + <p>The StateDefinitions featuring a certain StateUsage.</p> + + + + + + + + <p>A <code>StateSubactionKind</code> indicates whether the <code>action</code> of a StateSubactionMembership is an entry, do or exit action.</p> + + + + <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is an <code>entryAction</code>.</p> + + + + + <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is a <code>doAction</code>.</p> + + + + + <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is an <code>exitAction</code>.</p> + + + + + + <p>A <code>StateSubactionMembership</code> is a <code>FeatureMembership</code> for an entry, do or exit <code>ActionUsage<code> of a <code>StateDefinition</code> or <code>StateUsage</code>.</p> + + + + <p>The <code>owningType</code> of a <code>StateSubactionMembership</code> must be a <code>StateDefinition</code> or a <code>StateUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(StateDefinition) or +owningType.oclIsKindOf(StateUsage) + + + + + + <p>Whether this <code>StateSubactionMembership</code> is for an <code>entry<code>, <code>do</code> or <code>exit</code> <code>ActionUsage</code>.</p> + + + + + <p>The <code>ActionUsage</code> that is the <code>ownedMemberFeature</code> of this <code>StateSubactionMembership</code>.</p> + + + + + + + + <p>A <code>StateDefinition</code> is the <code>Definition</code> of the </code>Behavior</code> of a system or part of a system in a certain state condition.</p> + +<p>A <code>StateDefinition</code> may be related to up to three of its <code>ownedFeatures</code> by <code>StateBehaviorMembership</code> <code>Relationships</code>, all of different <code>kinds</code>, corresponding to the entry, do and exit actions of the <code>StateDefinition</code>.</p> + + + + <p>A <code>StateDefinition</code> must directly or indirectly specialize the <code>StateDefinition</code> <em><code>States::StateAction</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('States::StateAction') + + + + + <p>A <code>StateDefinition</code> must not have more than one owned <code>StateSubactionMembership</code> of each <code>kind</code>.</p> + + + OCL2.0 + ownedMembership-> + selectByKind(StateSubactionMembership)-> + isUnique(kind) + + + + + <p>The <code>states</code> of a <code>StateDefinition</code> are those of its <code>actions</code> that are <code>StateUsages</code>.</p> + + + OCL2.0 + state = action->selectByKind(StateUsage) + + + + + <p>The <code>doAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + OCL2.0 + doAction = + let doMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::do) in + if doMemberships->isEmpty() then null + else doMemberships->at(1) + endif + + + + + <p>The <code>entryAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + OCL2.0 + entryAction = + let entryMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::entry) in + if entryMemberships->isEmpty() then null + else entryMemberships->at(1) + endif + + + + + <p>If a <code>StateDefinition</code> is parallel, then its <code>ownedActions</code> (which includes its <code>ownedStates</code>) must not have any <code>incomingTransitions</code> or <code>outgoingTransitions</code>.</p> + + + OCL2.0 + isParallel implies + ownedAction.incomingTransition->isEmpty() and + ownedAction.outgoingTransition->isEmpty() + + + + + <p>The <code>exitAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = exit +</code>.</p> + + + OCL2.0 + exitAction = + let exitMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::exit) in + if exitMemberships->isEmpty() then null + else exitMemberships->at(1) + endif + + + + + + <p>The <code>StateUsages</code>, which are <code>actions</code> in the <code>StateDefinition</code>, that specify the discrete states in the behavior defined by the <code>StateDefinition</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed on entry to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed while in the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed on exit to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = exit</code>.</p> + + + + + + + <p>Whether the <code>ownedStates</code> of this <code>StateDefinition</code> are to all be performed in parallel. If true, none of the <code>ownedActions</code> (which includes <code>ownedStates</code>) may have any incoming or outgoing <code>Transitions</code>. If false, only one <code>ownedState</code> may be performed at a time.</p> + + + + + + + + + + <p>The Behaviors that are the types of this StateUsage. Nominally, these would be StateDefinition, but non-StateDefinition Behaviors are also allowed, to permit use of Behaviors from the Kernel Library.</p> + + + + + + + + <p>A <code>TransitionUsage</code> is an <code>ActionUsage</code> representing a triggered transition between <code>ActionUsages</code> or <code>StateUsages</code>. When triggered by a <code>triggerAction</code>, when its <code>guardExpression</code> is true, the <code>TransitionUsage</code> asserts that its <code>source</code> is exited, then its <code>effectAction</code> (if any) is performed, and then its <code>target</code> is entered.</p> + +<p>A <code>TransitionUsage</code> can be related to some of its <code>ownedFeatures</code> using <code>TransitionFeatureMembership</code> <code>Relationships</code>, corresponding to the <code>triggerAction</code>, <code>guardExpression</code> and <code>effectAction</code> of the <code>TransitionUsage</code>.</p> + + + + <p>A composite <code>TransitionUsage</code> whose <code>owningType</code> is an <code>ActionDefinition</code> or <code>ActionUsage</code> and whose <code>source</code> is <em>not</em> a <code>StateUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::decisionTransitions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ActionDefinition) or + owningType.oclIsKindOf(ActionUsage)) and +source <> null and not source.oclIsKindOf(StateUsage) implies + specializesFromLibrary('Actions::Action::decisionTransitions') + + + + + <p>A composite <code>TransitionUsage</code> whose <code>owningType</code> is a <code>StateDefinition</code> or <code>StateUsage</code> and whose <code>source</code> is a <code>StateUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>States::StateAction::stateTransitions</code></em> from the Systems Model Library</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(StateDefinition) or + owningType.oclIsKindOf(StateUsage)) and +source <> null and source.oclIsKindOf(StateUsage) implies + specializesFromLibrary('States::StateAction::stateTransitions') + + + + + + <p>A <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::transitionActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::transitionActions') + + + + + <p>The <code>source</code> of a <code>TransitionUsage</code> is <code>featureTarget</code> of the result of <code>sourceFeature()</code>, which must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + source = + let sourceFeature : Feature = sourceFeature() in + if sourceFeature = null then null + else sourceFeature.featureTarget.oclAsType(ActionUsage) + + + + + <p>The <code>target</code> of a <code>TransitionUsage</code> is given by the <code>featureTarget</code> of the <code>targetFeature</code> of its <code>succession</code>, which must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + target = + if succession.targetFeature->isEmpty() then null + else + let targetFeature : Feature = + succession.targetFeature->first().featureTarget in + if not targetFeature.oclIsKindOf(ActionUsage) then null + else targetFeature.oclAsType(ActionUsage) + endif + endif + + + + + + <p>The <code>triggerActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = trigger</code>, which must all be <code>AcceptActionUsages</code>.</p> + + + OCL2.0 + triggerAction = ownedFeatureMembership-> + selectByKind(TransitionFeatureMembership)-> + select(kind = TransitionFeatureKind::trigger).transitionFeature-> + selectByKind(AcceptActionUsage) + + + + + <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>Succession</code> with an <code>ActionUsage</code> as the <code>featureTarget</code> of its <code>targetFeature</code>.</p> + + + OCL2.0 + let successions : Sequence(Successions) = + ownedMember->selectByKind(Succession) in +successions->notEmpty() and +successions->at(1).targetFeature.featureTarget-> + forAll(oclIsKindOf(ActionUsage)) + + + + + <p>The <code>triggerActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = trigger</code>, which must all be <code>Expressions</code>.</p> + + + OCL2.0 + guardExpression = ownedFeatureMembership-> + selectByKind(TransitionFeatureMembership)-> + select(kind = TransitionFeatureKind::trigger).transitionFeature-> + selectByKind(Expression) + + + + + <p>The <code>triggerActions</code>, <code>guardExpressions</code>, and <code>effectActions</code> of a <code>TransitionUsage</code> must specialize, respectively, the <em><code>accepter</code></em>, <em><code>guard</code></em>, and <em><code>effect</code></em> <code>features</code> of the <code>ActionUsage</code> <em><code>Actions::TransitionActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + triggerAction->forAll(specializesFromLibrary('Actions::TransitionAction::accepter') and +guardExpression->forAll(specializesFromLibrary('Actions::TransitionAction::guard') and +effectAction->forAll(specializesFromLibrary('Actions::TransitionAction::effect')) + + + + + <p>The <code>effectActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = effect</code>, which must all be <code>ActionUsages</code>.</p> + + + OCL2.0 + triggerAction = ownedFeatureMembership-> + selectByKind(TransitionFeatureMembership)-> + select(kind = TransitionFeatureKind::trigger).transitionFeatures-> + selectByKind(AcceptActionUsage) + + + + + <p>The <code>sourceFeature</code> of the <code>succession</code> of a <code>TransitionUsage</code> must be the <code>source</code> of the <code>TransitionUsage</code> (i.e., the first <code>connectorEnd</code> of the <code>succession</code> must have a <code>ReferenceSubsetting</code> <code>Relationship</code> with the <code>source</code>).</p> + + + OCL2.0 + succession.sourceFeature = source + + + + + <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>source</code> and its first input <code>parameter</code> (which redefines <code><em>Actions::TransitionAction::transitionLinkSource</em></code>).</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(source) and + b.relatedFeatures->includes(inputParameter(1))) + + + + + <p>If a <code>TransitionUsage</code> has a <code>triggerAction</code>, then the <em><code>payload</code></em> <code>parameter</code> of the <code>TransitionUsage</code> subsets the <code>Feature</code> chain of the <code>triggerAction</code> and its <code>payloadParameter</code>.</p> + + + OCL2.0 + triggerAction->notEmpty() implies + let payloadParameter : Feature = inputParameter(2) in + payloadParameter <> null and + payloadParameter.subsetsChain(triggerAction->at(1), triggerPayloadParameter()) + + + + + <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>succession</code> and the inherited <code>Feature</code> <code><em>TransitionPerformances::TransitionPerformance::transitionLink</em></code>.</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(succession) and + b.relatedFeatures->includes(resolveGlobal( + 'TransitionPerformances::TransitionPerformance::transitionLink'))) + + + + + <p>A <code>TransitionUsage</code> must have at least one owned input <code>parameter</code> and, if it has a <code>triggerAction</code>, it must have at least two.</p> + + + OCL2.0 + if triggerAction->isEmpty() then + inputParameters()->size() >= 1 +else + inputParameters()->size() >= 2 +endif + + + + + + <p>The <code>succession</code> of a <code>TransitionUsage</code> is its first <code>ownedMember</code> that is a <code>Succession</code>.</p> + + + OCL2.0 + succession = ownedMember->selectByKind(Succession)->at(1) + + + + + <p>If the <code>source</code> of a <code>TransitionUsage</code> is <em>not</em> a <code>StateUsage</code>, then the <code>TransitionUsage</code> must not have any <code>triggerActions</code>.</p> + + + OCL2.0 + source <> null and not source.oclIsKindOf(StateUsage) implies + triggerAction->isEmpty() + + + + + + <p>The source <code>ActionUsage</code> of this <code>TransitionUsage</code>, which becomes the <code>source</code> of the <code>succession</code> for the <code>TransitionUsage</code>.</p> + + + + + + + <p>The target <code>ActionUsage</code> of this <code>TransitionUsage<code>, which is the <code>targetFeature</code> of the <code>succession</code> for the <code>TransitionUsage</code>.</p> + + + + + + + <p>The <code>AcceptActionUsages</code> that define the triggers of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = trigger</code>, which must all be <code>AcceptActionUsages</code>.</p> + + + + + + + <p>The <code>Expressions</code> that define the guards of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = guard</code>, which must all be <code>Expressions</code>.</p> + + + + + + + <p>The <code>ActionUsages</code> that define the effects of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = effect</code>, which must all be <code>ActionUsages</code>.</p> + + + + + + + <p>The <code>Succession</code> that is the <code>ownedFeature</code> of this <code>TransitionUsage</code>, which, if the <code>TransitionUsage</code> is triggered, asserts the temporal ordering of the <code>source</code> and <code>target</code>.</p> + + + + + + + <p>Return the <code>payloadParameter</code> of the <code>triggerAction</code> of this <code>TransitionUsage</code>, if it has one.</p> + + + + OCL2.0 + if triggerAction->isEmpty() then null +else triggerAction->first().payloadParameter +endif + + + + + + + + + + <p>Return the <code>Feature</code> to be used as the <code>source</code> of the <code>succession</code> of this <code>TransitionUsage</code>, which is the first <code>member</code> of the <code>TransitionUsage</code> that is a <code>Feature</code>, that is owned by the <code>TransitionUsage</code> via a <code>Membership</code> that is <em>not</em> a <code>FeatureMembership</code>, and whose <code>featureTarget</code> is an <code>ActionUsage</code>.</p> + + + + OCL2.0 + let features : Sequence(Feature) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement-> + selectByKind(Feature)-> + select(featureTarget.oclIsKindOf(ActionUsage)) in +if features->isEmpty() then null +else features->first() +endif + + + + + + + + + + + <p>A <code>TransitionFeatureMembership</code> is a <code>FeatureMembership</code> for a trigger, guard or effect of a <code>TransitionUsage</code>, whose <code>transitionFeature</code> is a <code>AcceptActionUsage</code>, <em><code>Boolean</code></em>-valued <code>Expression</code> or <code>ActionUsage</code>, depending on its <code>kind</code>. </p> + + + + <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>trigger</code>, then its <code>transitionFeature</code> must be a kind of <code>AcceptActionUsage</code>.</p> + + + OCL2.0 + kind = TransitionFeatureKind::trigger implies + transitionFeature.oclIsKindOf(AcceptActionUsage) + + + + + <p>The <code>owningType</code> of a <code>TransitionFeatureMembership</code> must be a <code>TransitionUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(TransitionUsage) + + + + + <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>guard</code>, then its <code>transitionFeature</code> must be a kind of <code>Expression</code> whose result is a <em><code>Boolean</code></em> value.</p> + + + OCL2.0 + kind = TransitionFeatureKind::guard implies + transitionFeature.oclIsKindOf(Expression) and + let guard : Expression = transitionFeature.oclIsKindOf(Expression) in + guard.result.specializesFromLibrary('ScalarValues::Boolean') and + guard.result.multiplicity <> null and + guard.result.multiplicity.hasBounds(1,1) + + + + + <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>effect</code>, then its <code>transitionFeature</code> must be a kind of <code>ActionUsage</code>.</p> + + + OCL2.0 + kind = TransitionFeatureKind::effect implies + transitionFeature.oclIsKindOf(ActionUsage) + + + + + + <p>Whether this <code>TransitionFeatureMembership </code> is for a <code>trigger</code>, <code>guard</code> or <code>effect</code>.</p> + + + + + <p>The <code>Step</code> that is the <code>ownedMemberFeature</code> of this <code>TransitionFeatureMembership</code>.</p> + + + + + + + + <p>An <code>ExhibitStateUsage</code> is a <code>StateUsage</code> that represents the exhibiting of a <code>StateUsage</code>. Unless it is the <code>StateUsage</code> itself, the <code>StateUsage</code> to be exhibited is related to the <code>ExhibitStateUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>. An <code>ExhibitStateUsage</code> is also a <code>PerformActionUsage</code>, with its <code>exhibitedState</code> as the <code>performedAction</code>.</p> + + + + + <p>If an <code>ExhibitStateUsage</code> has an <code>owningType</code> that is a <code>PartDefinition</code> or <code>PartUsage</code>, then it must directly or indirectly specialize the <code>StateUsage</code> <code><em>Parts::Part::exhibitedStates</em></code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::exhibitedStates') + + + + + <p>If an <code>ExhibitStateUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be a <code>StateUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(StateUsage) + + + + + + + <p>The <code>StateUsage</code> to be exhibited by the <code>ExhibitStateUsage</code>. It is the <code>performedAction</code> of the <code>ExhibitStateUsage</code> considered as a <code>PerformActionUsage</code>, which must be a <code>StateUsage</code>.</p> + + + + + + + + <p>A <code>TransitionActionKind</code> indicates whether the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a trigger, guard or effect.</p> + + + + <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a <code>triggerAction</code>.</p> + + + + + <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a <code>guardExpression</code>.</p> + + + + + <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is an <code>effectAction</code>.</p> + + + + + + + <p>The ExhibitStateUsages that have a certain StateUsage as their <tt>exhibitedState</tt>.</p> + + + + + + + + + <p>The Transition that owns a certain Succession.</p> + + + + + + + + + <p>The TransitionUsage that has a certain <tt>effectAction</tt>.</p> + + + + + + + + + <p>The TransitionUsage incoming to a certain target <tt>ActionUsage</tt>.</p> + + + + + + + + + <p>The TransitionUsage that is triggered by a certain AcceptActionUsage.</p> + + + + + + + + + <p>The TransitionUsage that is guarded by a certain Expression.</p> + + + + + + + + + <p>The TransitionUsage outgoing from a certain source <tt>ActionUsage</tt>.</p> + + + + + + + + + <p>The StateDefinitions with a certain <tt>exitAction</tt>.</p> + + + + + + + + + <p>The StateDefinitions with a certain <tt>doAction</tt>.</p> + + + + + + + + + <p>The StateUsages with a certain <tt>entryAction</tt>.</p> + + + + + + + + + <p>The StateDefinitions with a certain <tt>entryAction</tt>.</p> + + + + + + + + + <p>The TransitionFeatureMembership that owns a certain Step (if any).</p> + + + + + + + + + <p>The StateUsages with a certain <tt>exitAction</tt>.</p> + + + + + + + + + <p>The StateUsages with a certain <tt>doAction</tt>.</p> + + + + + + + + + <p>The StateSubactionMembership that is the owner of a certain ActionUsage (if any).</p> + + + + + + + + + + <p>A <code>ConstraintUsage</code> is an <code>OccurrenceUsage</code> that is also a <code>BooleanExpression</code>, and, so, is typed by a <code>Predicate</code>. Nominally, if the type is a <code>ConstraintDefinition</code>, a <code>ConstraintUsage</code> is a <code>Usage</code> of that <code>ConstraintDefinition</code>. However, other kinds of kernel <code>Predicates</code> are also allowed, to permit use of <code>Predicates</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>ConstraintUsage</code> whose <code>owningFeatureMembership</code> is a <code>RequirementConstraintMembership</code> must directly or indirectly specialize on the <code>ConstraintUsages</code> <code><em>assumptions</em></code> or <code><em>constraints</em></code> from the <code>ConstraintDefinition</code> <code><em>Requirements::RequirementCheck</em></code> in the Systems Model Library, depending on whether the <code>kind</code> of the <code>RequirementConstraintMembership</code> is <code>assumption</code> or <code>requirement</code>, respectively.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(RequirementConstraintMembership) implies + if owningFeatureMembership.oclAsType(RequirementConstraintMembership).kind = + RequirementConstraintKind::assumption then + specializesFromLibrary('Requirements::RequirementCheck::assumptions') + else + specializesFromLibrary('Requirements::RequirementCheck::constraints') + endif + + + + + <p>A <code>ConstraintUsage</code> must directly or indirectly specialize the base <code>ConstraintUsage</code> <em><code>Constraints::constraintChecks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Constraints::constraintChecks') + + + + + <p>A <code>ConstraintUsage</code> whose <code>owningType</code> is an <code>ItemDefinition</code> or <code>ItemUsage</code> must directly or indirectly specialize the <code>ConstraintUsage</code> <em><code>Items::Item::checkedConstraints</code></em>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(ItemDefinition) or + owningType.oclIsKindOf(ItemUsage)) implies + specializesFromLibrary('Items::Item::checkedConstraints') + + + + + + + <p>The (single) <code>Predicate</code> that is the type of this <code>ConstraintUsage</code>. Nominally, this will be a <code>ConstraintDefinition</code>, but other kinds of <code>Predicates</code> are also allowed, to permit use of <code>Predicates</code> from the Kernel Model Libraries.</p> + + + + + + + <p>The naming <code>Feature</code> of a <code>ConstraintUsage</code> that is owned by a <code>RequirementConstraintMembership</code> and has an <code>ownedReferenceSubsetting</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of that <code>ownedReferenceSubsetting</code>.</p> + + + + OCL2.0 + if owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(RequirementConstraintMembership) and +ownedReferenceSubsetting <> null then + ownedReferenceSubsetting.referencedFeature.featureTarget +else + self.oclAsType(OccurrenceUsage).namingFeature() +endif + + + + + + + + + + <p>A <code>ConstraintUsage</code> is not model-level evaluable.</p> + + + + OCL2.0 + false + + + + + + + + + + + + + + <p>A <code>ConstraintDefinition</code> is an <code>OccurrenceDefinition</code> that is also a <code>Predicate</code> that defines a constraint that may be asserted to hold on a system or part of a system.</p> + + + + + + <p>A <code>ConstraintDefinition</code> must directly or indirectly specialize the base <code>ConstraintDefinition</code> <em><code>Constraints::ConstraintCheck</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Constraints::ConstraintCheck') + + + + + + + + + <p>The ConstraintUsages typed by a certain Predicate.</p> + + + + + + + + + <p>The AssertConstraintUsages that have a certain ConstraintUsage as their <tt>assertedConstraint</tt>.</p> + + + + + + + + <p>An <code>AssertConstraintUsage</code> is a <code>ConstraintUsage</code> that is also an <code>Invariant</code> and, so, is asserted to be true (by default). Unless it is the <code>AssertConstraintUsage</code> itself, the asserted <code>ConstraintUsage</code> is related to the <code>AssertConstraintUsage</code> by a ReferenceSubsetting <code>Relationship</code>.</p> + + + + <p>If an <code>AssertConstraintUsage</code> has no <code>ownedReferenceSubsetting</code>, then its <code>assertedConstraint</code> is the <code>AssertConstraintUsage</code> itself. Otherwise, the <code>assertedConstraint</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code>, which must be a <code>ConstraintUsage</code>.</p> + + + OCL2.0 + assertedConstraint = + if referencedFeatureTarget() = null then self + else if referencedFeatureTarget().oclIsKindOf(ConstraintUsage) then + referencedFeatureTarget().oclAsType(ConstraintUsage) + else null + endif endif + + + + + <p>If a <code>AssertConstraintUsage</code> is negated, then it must directly or indirectly specialize the <code>ConstraintUsage</code> <code><em>Constraints::negatedConstraintChecks</em></code>. Otherwise, it must directly or indirectly specialize the <code>ConstraintUsage</code> <code><em>Constraints::assertedConstraintChecks</em></code>.</p> + + + OCL2.0 + if isNegated then + specializesFromLibrary('Constraints::negatedConstraintChecks') +else + specializesFromLibrary('Constraints::assertedConstraintChecks') +endif + + + + + <p>If an <code>AssertConstraintUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of its <code>referencedFeature</code> must be a </code>ConstraintUsage</code>.</p> + + + OCL2.0 + referencedFeaureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(ConstraintUsage) + + + + + + + <p>The <code>ConstraintUsage</code> to be performed by the <code>AssertConstraintUsage</code>. It is the <code>referenceFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>AssertConstraintUsage</code>, if there is one, and, otherwise, the <code>AssertConstraintUsage</code> itself.</p> + + + + + + + + + + + <p>The RequirementUsage that has a certain ConstraintUsage as a <code>requiredConstraint</code> (if any).</p> + + + + + + + + + <p>The RequirementUsage that has a certain ConstraintUsage as an <cod>assumedConstraint</code> (if any).</p> + + + + + + + + + <p>The SatifyRequirementUsages that have a certain RequirementUsage as their <tt>satisfiedRequirement</tt>.</p> + + + + + + + + <p>A <code>RequirementDefinition</code> is a <code>ConstraintDefinition</code> that defines a requirement used in the context of a specification as a constraint that a valid solution must satisfy. The specification is relative to a specified subject, possibly in collaboration with one or more external actors.</p> + + + + <p>The <code>texts</code> of a<code>RequirementDefinition</code> are the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + text = documentation.body + + + + + <p>The <code>assumedConstraints</code> of a <code>RequirementDefinition</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> + + + OCL2.0 + assumedConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::assumption). + ownedConstraint + + + + + <p>The <code>requiredConstraints</code> of a <code>RequirementDefinition</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = requirement</code>.</p> + + + OCL2.0 + requiredConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::requirement). + ownedConstraint + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementDefinition</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjects : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjects->isEmpty() then null + else subjects->first().ownedSubjectParameter + endif + + + + + <p>The <code>framedConcerns</code> of a <code>RequirementDefinition</code> are the <code>ownedConcerns</code> of the <code>FramedConcernMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + framedConcern = featureMembership-> + selectByKind(FramedConcernMembership). + ownedConcern + + + + + <p>The <code>actorParameters</code> of a <code>RequirementDefinition</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>The <code>stakeHolderParameters</code> of a <code>RequirementDefinition</code> are the <code>ownedStakeholderParameters</code> of the <code>StakeholderMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + stakeholderParameter = featureMembership-> + selectByKind(StakholderMembership). + ownedStakeholderParameter + + + + + <p>A <code>RequirementDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(SubjectMembership)-> + size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementDefinition</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>RequirementDefinition</code> must directly or indirectly specialize the base <code>RequirementDefinition</code> <code><em>Requirements::RequirementCheck</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::RequirementCheck') + + + + + + <p>An optional modeler-specified identifier for this <code>RequirementDefinition</code> (used, e.g., to link it to an original requirement text in some source document), which is the <code>declaredShortName</code> for the <code>RequirementDefinition</code>.</p> + + + + + + + + <p>An optional textual statement of the requirement represented by this <code>RequirementDefinition</code>, derived from the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementDefinition</code>.</p> + + + + + + + + + <p>The <code>parameter</code> of this <code>RequirementDefinition</code> that represents its subject.</p> + + + + + + + <p>The <code>parameters</code> of this <code>RequirementDefinition</code> that represent actors involved in the requirement.</p> + + + + + + + <p>The <code>parameters</code> of this <code>RequirementDefinition</code> that represent stakeholders for th requirement.</p> + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent assumptions of this <code>RequirementDefinition</code>, which are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent requirements of this <code>RequirementDefinition</code>, derived as the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind</code> = <code>requirement</code>.</p> + + + + + + + <p>The <code>ConcernUsages</code> framed by this <code>RequirementDefinition</code>, which are the <code>ownedConcerns</code> of all <code>FramedConcernMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + + + + + + + <p>The SatisfyRequirementUsages that have a certain Feature as their <tt>satisfyingFeature</tt>.</p> + + + + + + + + + <p>The RequirementUsages typed by a certain RequirementDefinition.</p> + + + + + + + + + <p>The RequirementDefinition that has a certain ConstraintUsage as an <code>assumedConstraint</code> (if any).</p> + + + + + + + + <p>A <code>SatisfyRequirementUsage</code> is an <code>AssertConstraintUsage</code> that asserts, by default, that a satisfied <code>RequirementUsage</code> is true for a specific <code>satisfyingFeature</code>, or, if <code>isNegated = true</code>, that the <code>RequirementUsage</code> is false. The satisfied <code>RequirementUsage</code> is related to the <code>SatisfyRequirementUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>.</p> + + + + <p>The <code>satisfyingFeature</code> of a <code>SatisfyRequirementUsage</code> is the <code>Feature</code> to which the <code>subjectParameter</code> is bound.</p> + + + OCL2.0 + satisfyingFeature = + let bindings: BindingConnector = ownedMember-> + selectByKind(BindingConnector)-> + select(b | b.relatedElement->includes(subjectParameter)) in + if bindings->isEmpty() or + bindings->first().relatedElement->exits(r | r <> subjectParameter) + then null + else bindings->first().relatedElement->any(r | r <> subjectParameter) + endif + + + + + <p>A <code>SatisfyRequirementUsage</code> must have exactly one <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>subjectParameter</code> and some <code>Feature</code> other than the <code>subjectParameter</code>.</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)-> + select(b | + b.relatedElement->includes(subjectParameter) and + b.relatedElement->exists(r | r <> subjectParameter))-> + size() = 1 + + + + + <p>If a <code>SatisfyRequirementUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of its <code>referencedFeature</code> must be a <code>RequirementUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(RequirementUsage) + + + + + <p>If a <code>SatisfyRequirementUsage</code> is negated, then it must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::notSatisfiedRequirementChecks</code></em>. Otherwise, it must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::satisfiedRequirementChecks</code></em>.</p> + + + OCL2.0 + if isNegated then + specializesFromLibrary('Requirements::notSatisfiedRequirementChecks') +else + specializesFromLibrary('Requirements::satisfiedRequirementChecks') +endif + + + + + + + <p>The <code>RequirementUsage</code> that is satisfied by the <code>satisfyingSubject</code> of this <code>SatisfyRequirementUsage</code>. It is the <code>assertedConstraint</code> of the <code>SatisfyRequirementUsage</code> considered as an <code>AssertConstraintUsage</code>, which must be a <code>RequirementUsage</code>.</p> + + + + + + + <p>The <code>Feature</code> that represents the actual subject that is asserted to satisfy the <code>satisfiedRequirement</code>. The <code>satisfyingFeature</code> is bound to the <code>subjectParameter</code> of the <code>SatisfyRequirementUsage</code>.</p> + + + + + + + + <p>A <code>RequirementUsage</code> is a <code>Usage</code> of a <code>RequirementDefinition</code>.</p> + + + + <p>The <code>actorParameters</code> of a <code>RequirementUsage</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>The <code>assumedConstraints</code> of a <code>RequirementUsage</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> + + + OCL2.0 + assumedConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::assumption). + ownedConstraint + + + + + <p>The <code>framedConcerns</code> of a <code>RequirementUsage</code> are the <code>ownedConcerns</code> of the <code>FramedConcernMemberships</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + framedConcern = featureMembership-> + selectByKind(FramedConcernMembership). + ownedConcern + + + + + <p>The <code>requiredConstraints</code> of a <code>RequirementUsage</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind = requirement</code>.</p> + + + OCL2.0 + requiredConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::requirement). + ownedConstraint + + + + + <p>The <code>stakeHolderParameters</code> of a <code>RequirementUsage</code> are the <code>ownedStakeholderParameters</code> of the <code>StakeholderMemberships</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + stakeholderParameter = featureMembership-> + selectByKind(AStakholderMembership). + ownedStakeholderParameter + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementUsage</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjects : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjects->isEmpty() then null + else subjects->first().ownedSubjectParameter + endif + + + + + <p>The <code>texts</code> of a<code>RequirementUsage</code> are the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + text = documentation.body + + + + + <p>A <code>RequirementDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(SubjectMembership)-> + size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementUsage</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>RequirementUsage</code> must directly or indirectly specialize the base <code>RequirementUsage</code> <em><code>Requirements::requirementChecks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::requirementChecks') + + + + + <p>A composite <code>RequirementUsage</code> whose <code>owningType</code> is a <code>RequirementDefinition</code> or ,code>RequirementUsage</code> must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::RequirementCheck::subrequirements</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(RequirementDefinition) or + owningType.oclIsKindOf(RequirementUsage)) implies + specializesFromLibrary('Requirements::RequirementCheck::subrequirements') + + + + + <p>A <code>RequirementUsage</code> whose <code>owningFeatureMembership</code> is a <code>ObjectiveMembership</code> must redefine the <code>objectiveRequirement</code> of each <code>CaseDefinition</code> or <code>CaseUsage</code> that is specialized by the <code>owningType</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + owningfeatureMembership <> null and +owningfeatureMembership.oclIsKindOf(ObjectiveMembership) implies + owningType.ownedSpecialization.general->forAll(gen | + (gen.oclIsKindOf(CaseDefinition) implies + redefines(gen.oclAsType(CaseDefinition).objectiveRequirement)) and + (gen.oclIsKindOf(CaseUsage) implies + redefines(gen.oclAsType(CaseUsage).objectiveRequirement)) + + + + + <p>A <code>RequirementUsage</code> whose <code>owningFeatureMembership</code> is a <code>RequirementVerificationMembership</code> must directly or indirectly specialize the <code>RequirementUsage</code> <code><em>VerificationCases::VerificationCase::obj::requirementVerifications</em></code>.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(RequirementVerificationMembership) implies + specializesFromLibrary('VerificationCases::VerificationCase::obj::requirementVerifications') + + + + + + <p>The <code>RequirementDefinition</code> that is the single <code>definition</code> of this <code>RequirementUsage</code>.</p> + + + + + + + <p>An optional modeler-specified identifier for this <code>RequirementUsage</code> (used, e.g., to link it to an original requirement text in some source document), which is the <code>declaredShortName</code> for the <code>RequirementUsage</code>.</p> + + + + + + + + <p>An optional textual statement of the requirement represented by this <code>RequirementUsage</code>, derived from the <code>bodies<code> of the <code>documentation</code> of the <code>RequirementUsage</code>.</p> + + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent requirements of this <code>RequirementUsage</code>, which are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind</code> = <code>requirement</code>.</p> + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent assumptions of this <code>RequirementUsage</code>, derived as the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind</code> = <code>assumption</code>.</p> + + + + + + + <p>The <code>parameter</code> of this <code>RequirementUsage</code> that represents its subject.</p> + + + + + + + <p>The <code>ConcernUsages</code> framed by this <code>RequirementUsage</code>, which are the <code>ownedConcerns</code> of all <code>FramedConcernMemberships</code> of the <code>RequirementUsage</code>.</p> + + + + + + + <p>The <code>parameters</code> of this <code>RequirementUsage</code> that represent actors involved in the requirement.</p> + + + + + + + <p>The <code>parameters</code> of this <code>RequirementUsage</code> that represent stakeholders for the requirement.</p> + + + + + + + + + <p>The RequirementDefinition that has a certain ConstraintUsage as a <code>requiredConstraint</code> (if any).</p> + + + + + + + + + <p>The RequirementConstraintMembership that owns a certain ConstraintUsage as its <code>ownedConstraint</code>.</p> + + + + + + + + <p>A <code>RequirementConstraintMembership</code> is a <code>FeatureMembership</code> for an assumed or required <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage<code>.</p> + + + + <p>The <code>referencedConstraint</code> of a <code>RequirementConstraintMembership</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> of the <code>ownedConstraint</code>, if there is one, and, otherwise, the <code>ownedConstraint</code> itself.</p> + + + OCL2.0 + referencedConstraint = + let referencedFeature : Feature = + ownedConstraint.referencedFeatureTarget() in + if referencedFeature = null then ownedConstraint + else if referencedFeature.oclIsKindOf(ConstraintUsage) then + refrencedFeature.oclAsType(ConstraintUsage) + else null + endif endif + + + + + <p>The <code>owningType</code> of a <code>RequirementConstraintMembership</code> must be a <code>RequirementDefinition</code> or a <code>RequirementUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementDefinition) or +owningType.oclIsKindOf(RequirementUsage) + + + + + <p>The <code>ownedConstraint</code> of a <code>RequirementConstraintMembership</code> must be composite.</p> + + + OCL2.0 + ownedConstraint.isComposite + + + + + + <p>Whether the <code>RequirementConstraintMembership</code> is for an assumed or required <code>ConstraintUsage</code>.</p> + + + + + <p>The <code>ConstraintUsage</code> that is the <code>ownedMemberFeature</code> of this <code>RequirementConstraintMembership</code>.</p> + + + + + + + <p> The <code>ConstraintUsage</code> that is referenced through this <code>RequirementConstraintMembership</code>. It is the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> of the <code>ownedConstraint</code>, if there is one, and, otherwise, the <code>ownedConstraint</code> itself.</p> + + + + + + + + <p>A <code>RequirementConstraintKind</code> indicates whether a <code>ConstraintUsage</code> is an assumption or a requirement in a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> + + + + <p>Indicates that a member <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code> represents an assumption.</p> + + + + + <p>Indicates that a member <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>represents an requirement.</p> + + + + + + + <p>The RequirementDefinitions that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + + <p>The RequirementUsages that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + <p>A <code>SubjectMembership</code> is a <code>ParameterMembership</code> that indicates that its <code>ownedSubjectParameter</code> is the subject of its <code>owningType</code>. The <code>owningType</code> of a <code>SubjectMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> + + + + <p>The <code>owningType</code> of a <code>SubjectMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> + + + OCL2.0 + owningType.oclIsType(RequirementDefinition) or +owningType.oclIsType(RequiremenCaseRequirementDefinition) or +owningType.oclIsType(CaseDefinition) or +owningType.oclIsType(CaseUsage) + + + + + + + <p>The <code>Usage</code< that is the <code>ownedMemberParameter</code> of this <code>SubjectMembership</code>.</p> + + + + + + + + + <p>The SubjectMembership that owns a particular Parameter as its <code>ownedSubjectParameter</code>.</p> + + + + + + + + + <p>The RequirementDefinition that addresses a certain <code>addressedConcern</code>.</p> + + + + + + + + + <p>The ConcernUsages that are typed by a certain <code>concernDefinition</code>.</p> + + + + + + + + + <p>The AddressedConcernMembership that has a certain ConcernUsage as its <code>addressedConcern</code>.</p> + + + + + + + + <p>A <code>FramedConcernMembership</code> is a <code>RequirementConstraintMembership</code> for a framed <code>ConcernUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> + + + + <p>A <code>FramedConcernMembership</code> must have <code>kind = requirement</code>.</p> + + + OCL2.0 + kind = RequirementConstraintKind::requirement + + + + + + <p>The <code>kind</code> of an <code>FramedConcernMembership</code> must be <code>requirement</code>.</p> + + + + + + <p>The <code>ConcernUsage</code> that is the <code>ownedConstraint</code> of this <code>FramedConcernMembership</code>.</p> + + + + + + + <p> The <code>ConcernUsage</code> that is referenced through this <code>FramedConcernMembership</code>. It is the <code>referencedConstraint</code> of the <code>FramedConcernMembership</code> considered as a <code>RequirementConstraintMembership</code>, which must be a <code>ConcernUsage</code>.</p> + + + + + + + + <p>A <code>ConcernDefinition</code> is a <code>RequirementDefinition</code> that one or more stakeholders may be interested in having addressed. These stakeholders are identified by the <code>ownedStakeholders</code>of the <code>ConcernDefinition</code>.</p> + + + + + <p>A <code>ConcernDefinition</code> must directly or indirectly specialize the base <code>ConcernDefinition</code> <em><code>Requirements::ConcernCheck</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::ConcernCheck') + + + + + + + + <p>The RequirementConstraintMembership that has a certain ConstraintUsage as its <code>referencedConstraint</code>.</p> + + + + + + + + + <p>The AddressedConcernMembership that owns a certain ConcernUsage as its <code>ownedConcern</code>.</p> + + + + + + + + <p>A <code>ConcernUsage</code> is a <code>Usage</code> of a <code>ConcernDefinition</code>.</p> + + The <code>ownedStakeholder</code> features of the ConcernUsage shall all subset the <em><code>ConcernCheck::concernedStakeholders</code> </em>feature. If the ConcernUsage is an <code>ownedFeature</code> of a StakeholderDefinition or StakeholderUsage, then the ConcernUsage shall have an <code>ownedStakeholder</code> feature that is bound to the <em><code>self</code></em> feature of its owner.</p> + + + + + <p>A <code>ConcernUsage</code> must directly or indirectly specialize the base <code>ConcernUsage</code> <em><code>Requirements::concernChecks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::concernChecks') + + + + + <p>If a <code>ConcernUsage</code> is owned via a <code>FramedConcernMembership</code>, then it must directly or indirectly specialize the <code>ConcernUsage</code> <code><em>Requirements::RequirementCheck::concerns</em></code> from the Systems Model Library.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(FramedConcernMembership) implies + specializesFromLibrary('Requirements::RequirementCheck::concerns') + + + + + + <p>The ConcernDefinition that is the single type of this ConcernUsage.</p> + + + + + + + + + <p>The RequirementUsage that addresses a certain <code>addressedConcern</code>.</p> + + + + + + + + + + + + + + + <p>The RequirementUsages that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + <p>The RequirementDefinitions that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + <p>TheStakehplderMembership that has a certain PartUsage as its <code>ownedStakeholderParameter</code>.</p> + + + + + + + + <p>A <code>StakeholderMembership</code> is a <code>ParameterMembership</code> that identifies a <code>PartUsage</code> as a <code>stakeholderParameter</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>, which specifies a role played by an entity with concerns framed by the <code>owningType</code>.</p> + + + + <p>The <code>owningType</code> of a <code>StakeholderMembership</code> must be a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementUsage) or +owningType.oclIsKindOf(RequirementDefinition) + + + + + + <p>The <code>PartUsage</code> specifying the stakeholder.</p> + + + + + + + + + + + + + + + <p>The ActorMembership that has a certain PartUsage as its <code>ownedActorParameter</code>.</p> + + + + + + + + <p>An <code>ActorMembership</code> is a <code>ParameterMembership</code> that identifies a <code>PartUsage</code> as an <em>actor</em> <code>parameter</code>, which specifies a role played by an external entity in interaction with the <code>owningType</code> of the <code>ActorMembership</code>.</p> + + + + <p>The <code>owningType</code> of an <code>ActorMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementUsage) or +owningType.oclIsKindOf(RequirementDefinition) or +owningType.oclIsKindOf(CaseDefinition) or +owningType.oclIsKindOf(CaseUsage) + + + + + + + <p>The <code>PartUsage</code> specifying the actor.</p> + + + + + + + + + + <p>A <code>CalculationDefinition</code> is an <coed>ActionDefinition</code> that also defines a <code>Function</code> producing a <code>result</code>.</p> + + + + <p>A <code>CalculationDefinition</code> must directly or indirectly specialize the <code>CalculationDefinition</code> <em><code>Calculations::Calculation</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Calculations::Calculation') + + + + + <p>The <code>calculations</code> of a <code>CalculationDefinition</code> are those of its <code>actions</code> that are <code>CalculationUsages</code>.</p> + + + OCL2.0 + calculation = action->selectByKind(CalculationUsage) + + + + + + + <p>The <code>actions</code> of this <code>CalculationDefinition</code> that are <code>CalculationUsages</code>.</p> + + + + + + + + + <p>The CalculationUsage being typed by a certain Function.</p> + + + + + + + + <p>A <code>CalculationUsage</code> is an <code>ActionUsage</code> that is also an <code>Expression</code>, and, so, is typed by a <code>Function</code>. Nominally, if the <code>type</code> is a <code>CalculationDefinition</code>, a <code>CalculationUsage</code> is a <code>Usage</code> of that <code>CalculationDefinition</code> within a system. However, other kinds of kernel <code>Functions</code> are also allowed, to permit use of <code>Functions</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>CalculationUsage</code> must specialize directly or indirectly the <code>CalculationUsage</code> <em><code>Calculations::calculations</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Calculations::calculations') + + + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(CalculationDefinition) or + owningType.oclIsKindOf(CalculationUsage)) implies + specializesFromLibrary('Calculations::Calculation::subcalculations') + + + + + + + <p>The <ode>Function</code> that is the <code>type</code> of this <code>CalculationUsage</code>. Nominally, this would be a <code>CalculationDefinition</code>, but a kernel <code>Function</code> is also allowed, to permit use of <code>Functions</code> from the Kernel Model Libraries.</p> + + + + + + + <p>A <code>CalculationUsage</code> is not model-level evaluable.</p> + + + + OCL2.0 + false + + + + + + + + + + + + + + + <p>The CalculationDefinitions that feature a certain CalculationUsage.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedCalculation</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedCalculation<code> is nested.</p> + + + + + + + + + + + <p>The ConnectionDefinitions that have a certain Usage as an <code>connectionEnd</code>.</p> + + + + + + + + <p>A <code>ConnectionDefinition</code> is a <code>PartDefinition</code> that is also an <code>AssociationStructure</code>. The end <code>Features</code> of a <code>ConnectionDefinition</code> must be <code>Usages</code>.</p> + + + + <p>A <code>ConnectionDefinition</code> must directly or indirectly specialize the <code>ConnectionDefinition</code> <em><code>Connections::Connection</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Connections::Connection') + + + + + <p>A binary <code>ConnectionDefinition</code> must directly or indirectly specialize the <code>ConnectionDefinition</code> <em><code>Connections::BinaryConnection</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Connections::BinaryConnections') + + + + + <p>A <code>ConnectionDefinition</code> must have <code>isSufficient = true</code>.</p> + + + OCL2.0 + isSufficient + + + + + + + <p>The <code>Usages</code> that define the things related by the <code>ConnectionDefinition</code>.</p> + + + + + + + <p>A <code>ConnectionDefinition</code> always has <code>isSufficient = true</code>.</p> + + + + + + + + <p>A <code>ConnectionUsage</code> is a <code>ConnectorAsUsage</code> that is also a <code>PartUsage</code>. Nominally, if its type is a <code>ConnectionDefinition</code>, then a <code>ConnectionUsage</code> is a Usage of that <code>ConnectionDefinition</code>, representing a connection between parts of a system. However, other kinds of kernel <code>AssociationStructures</code> are also allowed, to permit use of <code>AssociationStructures</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>ConnectionUsage</code> must directly or indirectly specialize the <code>ConnectionUsage</code> <em><code>Connections::connections</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Connections::connections') + + + + + <p>A binary <code>ConnectionUsage</code> must directly or indirectly specialize the <code>ConnectionUsage</code> <em><code>Connections::binaryConnections</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Connections::binaryConnections') + + + + + + + <p>The <code>AssociationStructures</code> that are the types of this <code>ConnectionUsage</code>. Nominally, these are , but other kinds of Kernel <code>AssociationStructures</code> are also allowed, to permit use of <code>AssociationStructures</code> from the Kernel Model Libraries</p> + + + + + + + + + <p>The ConnectionUsages that have a certain AssociationStructure as their <code>connectionDefinition</code>.</p> + + + + + + + + <p>A <code>SuccessionAsUsage</code> is both a <code>ConnectorAsUsage</code> and a <code>Succession</code>.<p> + + + + + + + <p>A <code>ConnectorAsUsage</code> is both a <code>Connector</code> and a <code>Usage</code>. <code>ConnectorAsUsage</code> cannot itself be instantiated in a SysML model, but it is a base class for the concrete classes <code>BindingConnectorAsUsage</code>, <code>SuccessionAsUsage</code>, <code>ConnectionUsage</code> and <code>FlowConnectionUsage</code>.</p> + + + + + + + <p>A <code>BindingConnectorAsUsage</code> is both a <code>BindingConnector</code> and a <code>ConnectorAsUsage</code>.</p> + + + + + + + + + <p>A <code>CaseUsage</code> is a <code>Usage</code> of a <code>CaseDefinition</code>.</p> + + + + <p>The <code>objectiveRequirement</code> of a <code>CaseUsage</code> is the <code>RequirementUsage</code> it owns via an <case>ObjectiveMembership</code>, if any.</p> + + + OCL2.0 + objectiveRequirement = + let objectives: OrderedSet(RequirementUsage) = + featureMembership-> + selectByKind(ObjectiveMembership). + ownedRequirement in + if objectives->isEmpty() then null + else objectives->first().ownedObjectiveRequirement + endif + + + + + <p>A <code>CaseUsage</code> must have at most one <code>featureMembership</code> that is a <code>ObjectiveMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ObjectiveMembership)-> + size() <= 1 + + + + + <p>A <code>CaseUsage</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(SubjectMembership)-> + size() <= 1 + + + + + <p>The <code>actorParameters</code> of a <code>CaseUsage</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>CaseUsage</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>The <code>subjectParameter</code> of a <code>CaseUsage</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjects : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjects->isEmpty() then null + else subjects->first().ownedSubjectParameter + endif + + + + + <p>The <code>subjectParameter</code> of a <code>CaseUsage</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>CaseUsage</code> must directly or indirectly specialize the base <code>CaseUsage</code> <em><code>Cases::cases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Cases::cases') + + + + + <p>A composite <code>CaseUsage</code> whose <code>owningType</code> is a <code>CaseDefinition</code> or <code>CaseUsage</code> must directly or indirectly specialize the <code>CaseUsage</code> <em><code>Cases::Case::subcases</code></em>.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(CaseDefinition) or + owningType.oclIsKindOf(CaseUsage)) implies + specializesFromLibrary('Cases::Case::subcases') + + + + + + <p>The <code>RequirementUsage</code> representing the objective of this <code>CaseUsage</code>.</p> + + + + + + + + <p>The CaseDefinition that is the type of this CaseUsage.</p> + + + + + + + <p>The <code>parameter</code> of this <code>CaseUsage</code> that represents its subject.</p> + + + + + + + + <p>The <code>parameters</code> of this <code>CaseUsage</code> that represent actors involved in the case.</p> + + + + + + + + + <p>The Usage in which the <code>nestedCase</code> is nested.</p> + + + + + + + + + <p>The CaseUsages being typed by a certain CaseDefinition.</p> + + + + + + + + <p>A <code>CaseDefinition</code> is a <code>CalculationDefinition</code> for a process, often involving collecting evidence or data, relative to a subject, possibly involving the collaboration of one or more other actors, producing a result that meets an objective.</p> + + + + <p>The <code>objectiveRequirement</code> of a <code>CaseDefinition</code> is the <code>ownedObjectiveRequirement</code> of its <case>ObjectiveMembership</code>, if any.</p> + + + OCL2.0 + objectiveRequirement = + let objectives: OrderedSet(RequirementUsage) = + featureMembership-> + selectByKind(ObjectiveMembership). + ownedRequirement in + if objectives->isEmpty() then null + else objectives->first().ownedObjectiveRequirement + endif + + + + + <p>A <code>CaseDefinition</code> must have at most one <code>featureMembership</code> that is a <code>ObjectiveMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ObjectiveMembership)-> + size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>CaseDefinition</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjectMems : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjectMems->isEmpty() then null + else subjectMems->first().ownedSubjectParameter + endif + + + + + <p>The <code>actorParameters</code> of a <code>CaseDefinition</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>CaseDefinition</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>A <code>CaseDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + English + featureMembership->selectByKind(SubjectMembership)->size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>CaaseDefinition</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>CaseDefinition</code> must directly or indirectly specialize the base <code>CaseDefinition</code> <em><code>Cases::Case></code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Cases::Case') + + + + + + <p>The <code>RequirementUsage</code> representing the objective of this <code>CaseDefinition</code>.</p> + + + + + + + + <p>The <code>parameter</code> of this <code>CaseDefinition</code> that represents its subject.</p> + + + + + + + <p>The <code>parameters</code> of this <code>CaseDefinition</code> that represent actors involved in the case.</p> + + + + + + + + <p>An <code>ObjectiveMembership</code> is a <code>FeatureMembership</code> that indicates that its <code>ownedObjectiveRequirement</code> is the objective <code>RequirementUsage</code> for its <code>owningType</code>, which must be a <code>CaseDefinition</code> or <code>CaseUsage</code>.</p> + + + + <p>The <code>owningType</code> of an <code>ObjectiveMembership</code> must be a <code>CaseDefinition</code> or <code>CaseUsage</code>.</p> + + + OCL2.0 + owningType.oclIsType(CaseDefinition) or +owningType.oclIsType(CaseUsage) + + + + + + <p>The <code>ownedObjectiveRequirement</code> of an <code>ObjectiveMembership</code> must be composite.</p> + + + OCL2.0 + ownedObjectiveRequirement.isComposite + + + + + + <p>The RequirementUsage that is the <code>ownedMemberFeature</code> of this RequirementUsage.</p> + + + + + + + + + + + + + + + + <p>The CaseDefinitions that have a certain RequirementUsage as their <code>objectiveRequirement</code>.</p> + + + + + + + + + <p>The ObjectMembership that owns a particular RequirementUsage as its <code>ownedObjectiveRequirement</code>.</p> + + + + + + + + + <p>The CaseDefinitions that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + + <p>The CaseUsages that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + + <p>The CaseDefinitions that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + <p>The CaseUsages that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + + + <p>The AnalysisCaseDefinitions that have a certain Expression as their <code>resultExpression</code>.</p> + + + + + + + + + <p>The AnalysisCaseUsages being typed by a certain AnalysisCaseDefinition.</p> + + + + + + + + <p>An <code>AnalysisCaseUsage</code> is a <code>Usage</code> of an <code>AnalysisCaseDefinition</code>.</p> + + + + <p>The <code>resultExpression</code> of a <code>AnalysisCaseUsage</code> is the <code>ownedResultExpression</code> of its <code>ResultExpressionMembership</code>, if any.</p> + + + OCL2.0 + resultExpression = + let results : OrderedSet(ResultExpressionMembership) = + featureMembersip-> + selectByKind(ResultExpressionMembership) in + if results->isEmpty() then null + else results->first().ownedResultExpression + endif + + + + + <p>An <code>AnalysisCaseUsage</code> must directly or indirectly specialize the base <code>AnalysisCaseUsage</code> <code><em>AnalysisCases::analysisCases</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('AnalysisCases::analysisCases') + + + + + <p>A composite <code>AnalysisCaseUsage</code> whose <code>owningType</code> is an <code>AnalysisCaseDefinition</code> or <code>AnalysisCaseUsage</code> must specialize the <code>AnalysisCaseUsage</code> <code><em>AnalysisCases::AnalysisCase::subAnalysisCases</code> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(AnalysisCaseDefinition) or + owningType.oclIsKindOf(AnalysisCaseUsage)) implies + specializesFromLibrary('AnalysisCases::AnalysisCase::subAnalysisCases') + + + + + + <p>The <code>AnalysisCaseDefinition</code> that is the <code>definition</code> of this <code>AnalysisCaseUsage</code>.</p> + + + + + + + <p>An <code>Expression</code> used to compute the <code>result</code> of the <code>AnalysisCaseUsage</code>, owned via a <code>ResultExpressionMembership</code>.</p> + + + + + + + + + <p>The AnalysisCaseUsages that have a certain Expression as their <code>resultExpression</code>.</p> + + + + + + + + <p>An <code>AnalysisCaseDefinition</code> is a <code>CaseDefinition</code> for the case of carrying out an analysis.</p> + + + + <p>The <code>resultExpression</code> of a <code>AnalysisCaseDefinition</code> is the <code>ownedResultExpression</code> of its <code>ResultExpressionMembership</code>, if any.</p> + + + OCL2.0 + resultExpression = + let results : OrderedSet(ResultExpressionMembership) = + featureMembersip-> + selectByKind(ResultExpressionMembership) in + if results->isEmpty() then null + else results->first().ownedResultExpression + endif + + + + + <p>An <code>AnalysisCaseDefinition</code> must directly or indirectly specialize the base <code>AnalysisCaseDefinition</code> <code><em>AnalysisCases::AnalysisCase</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('AnalysisCases::AnalysisCase') + + + + + + <p>An <code>Expression</code> used to compute the <code>result</code> of the <code>AnalysisCaseDefinition</code>, owned via a <code>ResultExpressionMembership</code>.</p> + + + + + + + + + + + <p>An <code>ItemUsage</code> is a <code>ItemUsage</code> whose <code>definition</code> is a <code>Structure</code>. Nominally, if the <code>definition</code> is an <code>ItemDefinition</code>, an <code>ItemUsage</code> is a <code>ItemUsage</code> of that <code>ItemDefinition</code> within a system. However, other kinds of Kernel <code>Structures</code> are also allowed, to permit use of <code>Structures</code> from the Kernel Model Libraries.</p> + + + + <p>The <code>itemDefinitions</code> of an <code>ItemUsage</code> are those <code>occurrenceDefinitions</code> that are <code>Structures</code>.</p> + + + OCL2.0 + itemDefinition = occurrenceDefinition->selectByKind(Structure) + + + + + <p>An <code>ItemUsage</code> must directly or indirectly specialize the Systems Model Library <code>ItemUsage</code> <em><code>items</code></em>.</p> + + + OCL2.0 + specializesFromLibrary('Items::items') + + + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ItemDefinition) or + owningType.oclIsKindOf(ItemUsage)) implies + specializesFromLibrary('Items::Item::subitem') + + + + + + <p>The Structures that are the <code>definitions</code> of this ItemUsage. Nominally, these are ItemDefinitions, but other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Library.</p> + + + + + + + + <p>An <code>ItemDefinition</code> is an <code>OccurrenceDefinition</code> of the <code>Structure</code> of things that may themselves be systems or parts of systems, but may also be things that are acted on by a system or parts of a system, but which do not necessarily perform actions themselves. This includes items that can be exchanged between parts of a system, such as water or electrical signals.</p> + + + + + <p>An <code>ItemDefinition</code> must directly or indirectly specialize the Systems Library Model <code>ItemDefinition</code> <em><code>Items::Item</code>.</p> + + + OCL2.0 + specializesFromLibrary('Items::Item') + + + + + + + + + + <p>A <code>ViewpointDefinition</code> is a <code>RequirementDefinition</code> that specifies one or more stakeholder concerns that are to be satisfied by creating a view of a model.</p> + + + + <p>The <code>viewpointStakeholders</code> of a <code>ViewpointDefinition</code> are the <code>ownedStakeholderParameters</code> of all <code>featureMemberships</code> that are <code>StakeholderMemberships</code>.</p> + + + OCL2.0 + viewpointStakeholder = framedConcern.featureMemberhsip-> + selectByKind(StakeholderMembership). + ownedStakeholderParameter + + + + + <p>A <code>ViewpointDefinition</code> must directly or indirectly specialize the base <code>ViewpointDefinition</code> <code><em>Views::Viewpoint</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::Viewpoint') + + + + + + <p>The <code>PartUsages</code> that identify the stakeholders with concerns framed by this <code>ViewpointDefinition</code>, which are the owned and inherited <code>stakeholderParameters</code> of the <code>framedConcerns</code> of this <code>ViewpointDefinition</code>.</p> + + + + + + + + + <p>A ViewUsage exposing a certain <code>exposedElement</code>.</p> + + + + + + + + + <p>The RenderingUsages defined by a certain <code>renderingDefinition</code>.</p> + + + + + + + + <p>A <code>ViewUsage</code> is a usage of a <code>ViewDefinition</code> to specify the generation of a view of the <code>members</code> of a collection of <code>exposedNamespaces</code>. The <code>ViewUsage</code> can satisfy more <code>viewpoints</code> than its definition, and it can specialize the <code>viewRendering</code> specified by its definition.<p> + + + + <p>The <code>exposedElements</code> of a <code>ViewUsage</code> are those <code>memberElements</code> of the imported <code>Memberships</code> from all the <code>Expose</code> <code>Relationships</code> for which the <code>includeAsExposed</code> operation returns true.</p> + + + OCL2.0 + exposedElement = ownedImport->selectByKind(Expose). + importedMemberships(Set{}).memberElement-> + select(elm | includeAsExposed(elm))-> + asOrderedSet() + + + + + <p>The <code>satisfiedViewpoints</code> of a <code>ViewUsage</code> are its <code>ownedRequirements</code> that are composite <code>ViewpointUsages</code>. + + + OCL2.0 + satisfiedViewpoint = ownedRequirement-> + selectByKind(ViewpointUsage)-> + select(isComposite) + + + + + <p>The <code>viewConditions</code> of a <code>ViewUsage</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> + + + OCL2.0 + viewCondition = ownedMembership-> + selectByKind(ElementFilterMembership). + condition + + + + + <p>The <code>viewRendering</code> of a <code>ViewUsage</code> is the <code>referencedRendering</code> of its owned <code>ViewRenderingMembership<code>, if any.</p> + + + OCL2.0 + viewRendering = + let renderings: OrderedSet(ViewRenderingMembership) = + featureMembership->selectByKind(ViewRenderingMembership) in + if renderings->isEmpty() then null + else renderings->first().referencedRendering + endif + + + + + <p>A <code>ViewUsage</code> must have at most one <code>ViewRenderingMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ViewRenderingMembership)-> + size() <= 1 + + + + + <p>A <code>ViewUsage</code> must directly or indirectly specialize the base <code>ViewUsage</code> <code><em>Views::views</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::views') + + + + + <p>A <code>ViewUsage</code> whose <code>owningType</code> is a <code>ViewDefinition</code> or <code>ViewUsage</code> must specialize the <code>ViewUsage</code> <code><em>Views::View::subviews</em></code> from the Systems Library Model.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(ViewDefinition) or + owningType.oclIsKindOf(ViewUsage)) implies + specializesFromLibrary('Views::View::subviews') + + + + + + <p>The <code>ViewDefinition</code> that is the <code>definition</code> of this <code>ViewUsage</code>.</p> + + + + + + + <p>The <code>nestedRequirements</code> of this <code>ViewUsage</code> that are <code>ViewpointUsages</code> for (additional) viewpoints satisfied by the <code>ViewUsage</code>.</p> + + + + + + + <p>The <code>Elements</code> that are exposed by this <code>ViewUsage</code>, which are those <code>memberElements</code> of the imported <code>Memberships</code> from all the <code>Expose</code> <code>Relationships</code> that meet all the owned and inherited <code>viewConditions</code>.</p> + + + + + + + <p>The <code>RenderingUsage</code> to be used to render views defined by this <code>ViewUsage</code>, which is the <code>referencedRendering</code> of the <code>ViewRenderingMembership</code> of the <code>ViewUsage</code>.<p> + + + + + + + <p>The <code>Expressions</code> related to this <code>ViewUsage</code> by <code>ElementFilterMemberships</code>, which specify conditions on <code>Elements</code> to be rendered in a view.</p> + + + + + + + <p>Determine whether the given <code>element</code> meets all the owned and inherited <code>viewConditions</code>.</p> + + + + OCL2.0 + let metadataFeatures: Sequence(AnnotatingElement) = + element.ownedAnnotation.annotatingElement-> + select(oclIsKindOf(MetadataFeature)) in +self.membership->selectByKind(ElementFilterMembership). + condition->forAll(cond | + metadataFeatures->exists(elem | + cond.checkCondition(elem))) + + + + + + + + + + + + <p>The ViewUsage that owns a certain <code>rendering</code>.</p> + + + + + + + + + <p>The ViewDefinition that owns a certain <code>rendering</code>.</p> + + + + + + + + + p>The ViewUsage that owns a certain <code>satisfiedViewpoint</code>.</p> + + + + + + + + + <p>The ViewDefinition that owns a certain <code>satisfiedViewpoint</code>.</p> + + + + + + + + + <p>The ViewDefinitions that feature a certain ViewUsage.</p> + + + + + + + + <p>A <code>RenderingDefinition</code> is a <code>PartDefinition</code> that defines a specific rendering of the content of a model view (e.g., symbols, style, layout, etc.).</p> + + + + <p>The <code>renderings</code> of a <code>RenderingDefinition</code> are all its <code>usages</code> that are <code>RenderingUsages</code>.</p> + + + OCL2.0 + rendering = usages->selectByKind(RenderingUsage) + + + + + <p>A <code>RenderingDefinition</code> must directly or indirectly specialize the base <code>RenderingDefinition</code> <code><em>Views::Rendering</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::Rendering') + + + + + + <p>The <code>usages</code> of a <code>RenderingDefinition</code> that are <code>RenderingUsages</code>.</p> + + + + + + + + <p>A <code>ViewpointUsage</code> is a <code>Usage</code> of a <code>ViewpointDefinition</code>.</p> + + + + + + <p>The <code>viewpointStakeholders</code> of a <code>ViewpointUsage</code> are the <code>ownedStakeholderParameters</code> of all <code>featureMemberships</code> that are <code>StakeholderMemberships</code>.</p> + + + OCL2.0 + viewpointStakeholder = framedConcern.featureMemberhsip-> + selectByKind(StakeholderMembership). + ownedStakeholderParameter + + + + + <p>A <code>ViewpointUsage</code> must directly or indirectly specialize the base <code>ViewpointUsage</code> <code><em>Views::viewpoints</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::viewpoints') + + + + + <p>A composite <code>ViewpointUsage</code> whose <code>owningType</code> is a <code>ViewDefinition</code> or <code>ViewUsage</code> must directly or indirectly specialize the <code>ViewpointUsage</code> <code><em>Views::View::viewpointSatisfactions</em></code> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ViewDefinition) or + owningType.oclIsKindOf(ViewUsage)) implies + specializesFromLibrary('Views::View::viewpointSatisfactions') + + + + + + <p>The <code>ViewpointDefinition</code> that is the <code>definition</code> of this <code>ViewpointUsage<code>.</p> + + + + + + + <p>The <code>PartUsages</code> that identify the stakeholders with concerns framed by this <code>ViewpointUsage</code>, which are the owned and inherited <code>stakeholderParameters</code> of the <code>framedConcerns</code> of this <code>ViewpointUsage</code>.</p> + + + + + + + + + <p>The ViewUsages that have a certain <code>ViewDefinition</code>.</p> + + + + + + + + + + + + + + <p>A <code>ViewDefinition</code> is a <code>PartDefinition</code> that specifies how a view artifact is constructed to satisfy a <code>viewpoint</code>. It specifies a <code>viewConditions</code> to define the model content to be presented and a <code>viewRendering</code> to define how the model content is presented.</p> + + + + <p>The <code>views</code> of a <code>ViewDefinition</code> are all its <code>usages</code> that are <code>ViewUsages</code>.</p> + + + OCL2.0 + view = usage->selectByKind(ViewUsage) + + + + + <p>The <code>satisfiedViewpoints</code> of a <code>ViewDefinition</code> are its <code>ownedRequirements</code> that are composite <code>ViewpointUsages</code>. + + + OCL2.0 + satisfiedViewpoint = ownedRequirement-> + selectByKind(ViewpointUsage)-> + select(isComposite) + + + + + <p>The <code>viewRendering</code> of a <code>ViewDefinition</code> is the <code>referencedRendering</code> of its owned <code>ViewRenderingMembership<code>, if any.</p> + + + OCL2.0 + viewRendering = + let renderings: OrderedSet(ViewRenderingMembership) = + featureMembership->selectByKind(ViewRenderingMembership) in + if renderings->isEmpty() then null + else renderings->first().referencedRendering + endif + + + + + <p>The <code>viewConditions</code> of a <code>ViewDefinition</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> + + + OCL2.0 + viewCondition = ownedMembership-> + selectByKind(ElementFilterMembership). + condition + + + + + <p>A <code>ViewDefinition</code> must have at most one <code>ViewRenderingMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ViewRenderingMembership)-> + size() <= 1 + + + + + </p>A <code>ViewDefinition</code> must directly or indirectly specialize the base <code>ViewDefinition</code> <code><em>Views::View</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::View') + + + + + + <p>The <code>usages</code> of this <code>ViewDefinition</code> that are <code>ViewUsages</code>.</p> + + + + + + + <p>The composite <code>ownedRequirements</code> of this <code>ViewDefinition</code> that are <code>ViewpointUsages</code> for viewpoints satisfied by the <code>ViewDefinition</code>.</p> + + + + + + + <p>The <code>RenderingUsage</code> to be used to render views defined by this <code>ViewDefinition</code>, which is the <code>referencedRendering</code> of the <code>ViewRenderingMembership</code> of the <code>ViewDefinition</code>.<p> + + + + + + + <p>The <code>Expressions</code> related to this <code>ViewDefinition</code> by <code>ElementFilterMemberships</code>, which specify conditions on <code>Elements</code> to be rendered in a view.</p> + + + + + + + + <p>An <code>Expose</code> is an <code>Import</code> of <code>Memberships</code> into a <code>ViewUsage</code> that provide the <code>Elements</code> to be included in a view. Visibility is always ignored for an <code>Expose</code> (i.e., <code>isImportAll = true</code>).</p> + + + + <p>An <code>Expose</code> always imports all <code>Elements</code>, regardless of visibility.</p> + + + OCL2.0 + isImportAll + + + + + <p>The <code>importOwningNamespace</code> of an <code>Expose</code> must be a <code>ViewUsage</code>.</p> + + + OCL2.0 + importOwningNamespace.oclIsType(ViewUsage) + + + + + <p>An <code>Expose</code> always has <code>protected</code> visibility.</p> + + + OCL2.0 + visibility = VisibilityKind::protected + + + + + + <p>An <code>Expose</code> always has <code>protected</code> visibility.</p> + + + + + + <p>An <code>Expose</code> always imports all <code>Elements</code>, regardless of visibility (<code>isImportAll = true</code>).</p> + + + + + + + + + <p>The RenderingDefinitions that feature a certain <code>rendering</code>.</p> + + + + + + + + <p>A <code>RenderingUsage</code> is the usage of a <code>RenderingDefinition</code> to specify the rendering of a specific model view to produce a physical view artifact.</p> + + + + + + <p>A <code>RenderingUsage</code> must directly or indirectly specialize the base <code>RenderingUsage</code> <code><em>Views::renderings</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::renderings') + + + + + <p>A <code>RenderingUsage</code> whose <code>owningType</code> is a <code>RenderingDefinition</code> or <code>RenderingUsage</code> must directly or indirectly specialize the <code>RenderingUsage</code> <code><em>Views::Rendering::subrenderings</em></code> from the Systems Model Library.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(RenderingDefinition) or + owningType.oclIsKindOf(RenderingUsage)) implies + specializesFromLibrary('Views::Rendering::subrenderings') + + + + + <p>A <code>RenderingUsage</code> whose <code>owningFeatureMembership</code> is a <code>ViewRenderingMembership</code> must redefine the <code>RenderingUsage</code> <code><em>Views::View::viewRendering</em></code>.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(ViewRenderingMembership) implies + redefinesFromLibrary('Views::View::viewRendering') + + + + + + <p>The <code>RenderingDefinition</code> that is the <code>definition</code> of this <code>RenderingUsage</code>.</p> + + + + + + + + + <p>The ViewUsage that owns a certain <code>viewCondition</code>.</p> + + + + + + + + + <p>The ViewDefinition that owns a certain <code>viewCondition</code>.</p> + + + + + + + + + <p>The ViewpointDefinition that has a certain <code>viewpointStakeholder</code>.</p> + + + + + + + + + + + + + + <p>A <code>ViewRenderingMembership</code> is a <coed>FeatureMembership</code> that identifies the <code>viewRendering</code> of a <code>ViewDefinition</code> or <code>ViewUsage</code>.</p> + + + + <p>The <code>referencedRendering</code> of a <code>ViewRenderingMembership</code> is the the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> (which must be a <code>RenderingUsage</code>) of the <code>ownedRendering</code>, if there is one, and, otherwise, the <code>ownedRendering</code> itself.</p> + + + OCL2.0 + referencedRendering = + let referencedFeature : Feature = + ownedRendering.referencedFeatureTarget() in + if referencedFeature = null then ownedRendering + else if referencedFeature.oclIsKindOf(RenderingUsage) then + refrencedFeature.oclAsType(RenderingUsage) + else null + endif endif + + + + + <p>The <code>owningType</code> of a <code>ViewRenderingMembership</code> must be a <code>ViewDefinition</code> or a <code>ViewUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(ViewDefinition) or +owningType.oclIsKindOf(ViewUsage) + + + + + + <p>The owned <code>RenderingUsage</code> that is either itself the <code>referencedRendering</code> or subsets the <code>referencedRendering</code>. + + + + + + + <p> The <code>RenderingUsage</code> that is referenced through this <code>ViewRenderingMembership</code>. It is the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>ownedRendering</code>, if there is one, and, otherwise, the <code>ownedRendering</code> itself.</p> + + + + + + + + + <p>The ViewpointUsage that has a certain <code>viewpointStakeholder</code>.</p> + + + + + + + + + + + + + + <p>A <code>NamespaceExpose</code> is an <code>Expose</code> <code>Relationship</code> that exposes the <code>Memberships</code> of a specific <code>importedNamespace</code> and, if <code>isRecursive = true</code>, additional <code>Memberships</code> recursively.</p> + + + + + + + <p>A <code>MembershipExpose</code> is an <code>Expose</code> <code.Relationship</code> that exposes a specific <code>importedMembership</code> and, if <code>isRecursive = true</code>, additional <code>Memberships</code> recursively.</p> + + + + + + + + + <p>A <code>VerificationCaseDefinition</code> is a <code>CaseDefinition</code> for the purpose of verification of the subject of the case against its requirements.</p> + + + + <p>The <code>verifiedRequirements</code> of a <code>VerificationCaseDefinition</code> are the <code>verifiedRequirements</code> of its <code>RequirementVerificationMemberships</code>.</p> + + + OCL2.0 + verifiedRequirement = + if objectiveRequirement = null then OrderedSet{} + else + objectiveRequirement.featureMembership-> + selectByKind(RequirementVerificationMembership). + verifiedRequirement->asOrderedSet() + endif + + + + + <p>A <code>VerificationCaseDefinition</code> must directly or indirectly specialize the base <code>VerificationCaseDefinition</code> <em><code>VerificationCases::VerificationCase</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('VerificationCases::VerificationCase') + + + + + + <p>The <code>RequirementUsages</code> verified by this <code>VerificationCaseDefinition</code>, which are the <code>verifiedRequirements</code> of all <code>RequirementVerificationMemberships</code> of the <code>objectiveRequirement</code>.</p> + + + + + + + + + <p>The VerificationUsages that are defined by a certain <code>verificationCaseDefinition</code>.</p> + + + + + + + + <p>A <code>VerificationCaseUsage</code> is a </code>Usage</code> of a <code>VerificationCaseDefinition</code>.</p> + + + + <p>The <code>verifiedRequirements</code> of a <code>VerificationCaseUsage</code> are the <code>verifiedRequirements</code> of its <code>RequirementVerificationMemberships</code>.</p> + + + OCL2.0 + verifiedRequirement = + if objectiveRequirement = null then OrderedSet{} + else + objectiveRequirement.featureMembership-> + selectByKind(RequirementVerificationMembership). + verifiedRequirement->asOrderedSet() + endif + + + + + <p>A <code>VerificationCaseUsage</code> must subset, directly or indirectly, the base <code>VerificationCaseUsage</code> <code><em>VerificationCases::verificationCases</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('VerificationCases::verificationCases') + + + + + If it is composite and owned by a <code>VerificationCaseDefinition</code> or <code>VerificationCaseUsage</code>, then it must specialize <code>VerificationCaseUsage</code> <code><em>VerificationCases::VerificationCase::subVerificationCases</code>.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(VerificationCaseDefinition) or + owningType.oclIsKindOf(VerificationCaseUsage)) implies + specializesFromLibrary('VerificationCases::VerificationCase::subVerificationCases') + + + + + + <p>The <code>VerificationCase</code> that is the <code>definition</code> of this <code>VerificationCaseUsage</code>.</p> + + + + + + + <p>The <code>RequirementUsages</code> verified by this <code>VerificationCaseUsage</code>, which are the <code>verifiedRequirements</code> of all <code>RequirementVerificationMemberships</code> of the <code>objectiveRequirement</code>.</p> + + + + + + + + + <p>The RequirementVerificationMembership that owns a certain RequirementUsage as its <code>ownedRequirement</code>.</p> + + + + + + + + <p>A <code>RequirementVerificationMembership</code> is a <code>RequirementConstraintMembership </code> used in the objective of a <code>VerificationCase</code> to identify a <code>RequirementUsage</code> that is verified by the <code>VerificationCase</code>.</p> + + + + <p>A <code>RequirementVerificationMembership</code> must have <code>kind = requirement</code>.</p> + + + OCL2.0 + kind = RequirementConstraintKind::requirement + + + + + <p>The <code>owningType</code> of a <code>RequirementVerificationMembership</code> must a <code>RequirementUsage</code> that is owned by an <code>ObjectiveMembership</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementUsage) and +owningType.owningFeatureMembership <> null and +owningType.owningFeatureMembership.oclIsKindOf(ObjectiveMembership) + + + + + + <p>The owned <code>RequirementUsage</code> that acts as the <code>ownedConstraint</code> for this <code>RequirementVerificationMembership</code>. This will either be the <code>verifiedRequirement</code>, or it will subset the <code>verifiedRequirement</code>.</p> + + + + + + + <p>The <code>kind</code> of a <code>RequirementVerificationMembership</code> must be <code>requirement</code>.</p> + + + + + + <p> The <code>RequirementUsage</code> that is identified as being verified. It is the <code>referencedConstraint</code> of the <code>RequirementVerificationMembership</code> considered as a <code>RequirementConstraintMembership</code>, which must be a <code>RequirementUsage</code>.</p> + + + + + + + + + <p>The VerificationCaseUsages that verify a certain <code>verifiedRequirement</code>.</p> + + + + + + + + + <p>The VerificationCaseDefinitions that verify a certain <code>verifiedRequirement</code>.</p> + + + + + + + + + <p>The RequirementVerificationMembership that has a certain RequirementUsage as its <code>verifiedRequirement</code>.</p> + + + + + + + + + + <p>An <code>EnumerationDefinition</code> is an <code>AttributeDefinition</code> all of whose instances are given by an explicit list of <code>enumeratedValues</code>. This is realized by requiring that the <code>EnumerationDefinition</code> have <code>isVariation = true</code>, with the <code>enumeratedValues</code> being its <code>variants</code>.</p> + + + + <p>An <code>EnumerationDefinition</code> must be a variation.</p> + + + OCL2.0 + isVariation + + + + + + <p><code>EnumerationUsages</code> of this <code>EnumerationDefinition</code>that have distinct, fixed values. Each <code>enumeratedValue</code> specifies one of the allowed instances of the <code>EnumerationDefinition</code>.</p> + + + + + + + <p>An EnumerationDefinition is considered semantically to be a variation whose allowed variants are its <code>enumerationValues</code>.</p> + + + + + + + + <p>An <code>EnumerationUsage</code> is an <code>AttributeUsage</code> whose <code>attributeDefinition</code> is an <code>EnumerationDefinition</code>.</p> + + + + + <p>The single EnumerationDefinition that is the type of this EnumerationUsage.</p> + + + + + + + + + <p>The EnumerationDefinition that owns a certain <code>enumeratedValue</code>.</p> + + + + + + + + + <p>The EnumerationUsages that are typed by a certain EnumerationDefinition.</p> + + + + + + + + + + + <p>The AllocationUsages that have a certain AllocationDefinition as their <code>allocationDefinition</code>.</p> + + + + + + + + <p>An <code>AllocationDefinition</code> is a <code>ConnectionDefinition</code> that specifies that some or all of the responsibility to realize the intent of the <code>source</code> is allocated to the <code>target</code> instances. Such allocations define mappings across the various structures and hierarchies of a system model, perhaps as a precursor to more rigorous specifications and implementations. An <code>AllocationDefinition</code> can itself be refined using nested <code>allocations</code> that give a finer-grained decomposition of the containing allocation mapping.</p> + + + + <p> The <code>allocations</code> of an <code>AllocationDefinition</code> are all its <code>usages</code> that are <code>AllocationUsages</code>.</p> + + + OCL2.0 + allocation = usage->selectAsKind(AllocationUsage) + + + + + <p>An <code>AllocationDefinition</code> must directly or indirectly specialize the <code>AllocationDefinition</code> <em><code>Allocations::Allocation</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Allocations::Allocation') + + + + + + <p>The <code>AllocationUsages</code> that refine the allocation mapping defined by this <code>AllocationDefinition</code>.</p> + + + + + + + + <p>An <code>AllocationUsage</code> is a usage of an <code>AllocationDefinition</code> asserting the allocation of the <code>source</code> feature to the <code>target</code> feature.</p> + + + + <p>An <code>AllocationUsage</code> must directly or indirectly specialize the <code>AllocationUsage</code> <em><code>Allocations::allocations</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Allocations::allocations') + + + + + + <p>The <code>AllocationDefinitions</code> that are the types of this <code>AllocationUsage</code>.</p> + + + + + + + + + <p>The AllocationDefinitions that feature a certain <code>allocation</code>.</p> + + + + + + + + + + + <p>The <code>OccurrenceUsage</code> that has a certain <code>individualDefinition</code>.</p> + + + + + + + + <p><code>PortionKind</code> is an enumeration of the specific kinds of <code><em>Occurrence</em></code> portions that can be represented by an <code>OccurrenceUsage</code>.</p> + + + + <p>A time slice of an <code>Occurrence</code> (a portion over time).</p> + + + + + <p>A snapshot of an <code>Occurrence</code> (a time slice with zero duration).</p> + + + + + + <p>An <code>OccurrenceUsage</code> is a <code>Usage</code> whose <code>types</code> are all <code>Classes</code>. Nominally, if a <code>type</code> is an <code>OccurrenceDefinition</code>, an <code>OccurrenceUsage</code> is a <code>Usage</code> of that <code>OccurrenceDefinition</code> within a system. However, other types of Kernel <code>Classes</code> are also allowed, to permit use of <code>Classes</code> from the Kernel Model Libraries.</p> + + + + + <p>The <code>individualDefinition</code> of an <code>OccurrenceUsage</code> is the <code>occurrenceDefinition</code> that is an <code>OccurrenceDefinition</code> with <code>isIndividual = true</code>, if any.</p> + + + OCL2.0 + individualDefinition = + let individualDefinitions : OrderedSet(OccurrenceDefinition) = + occurrenceDefinition-> + selectByKind(OccurrenceDefinition)-> + select(isIndividual) in + if individualDefinitions->isEmpty() then null + else individualDefinitions->first() endif + + + + + <p>If an <code>OccurrenceUsage</code> has <code>isIndividual = true</code>, then it must have an <code>individualDefinition</code>.</p> + + + OCL2.0 + isIndividual implies individualDefinition <> null + + + + + <p>An <code>OccurrenceUsage</code> must directly or indirectly specialize <code><em>Occurrences::occurrences</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Occurrences::occurrences') + + + + + <p>A composite <code>OccurrenceUsage</code>, whose <code>ownedType</code> is a <code>Class</code>, another <code>OccurrenceUsage</code>, or any kind of <code>Feature</code> typed by a <code>Class</code>, must directly or indirectly specialize <em><code>Occurrences::Occurrence::suboccurrences</code></em>. + + + OCL2.0 + isComposite and +owningType <> null and +(owningType.oclIsKindOf(Class) or + owningType.oclIsKindOf(OccurrenceUsage) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKind(Class))) implies + specializesFromLibrary('Occurrences::Occurrence::suboccurrences') + + + + + <p>An <code>OccurrenceUsage</code> must have at most one <code>occurrenceDefinition</code> with <code>isIndividual = true</code>.</p> + + + OCL2.0 + occurrenceDefinition-> + selectByKind(OccurrenceDefinition)-> + select(isIndividual).size() <= 1 + + + + + <p>If an <code>OccurrenceUsage</code> has <code>portionKind = snapshot</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::snapshots</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + portionKind = PortionKind::snapshot implies + specializesFromLibrary('Occurrences::Occurrence::snapshots') + + + + + <p>If an <code>OccurrenceUsage</code> has <code>portionKind = timeslice</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::timeSlices</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + portionKind = PortionKind::timeslice implies + specializesFromLibrary('Occurrences::Occurrence::timeSlices') + + + + + <p>If an <code>OccurrenceUsage</code> has a non-null <code>portionKind</code>, then its <code>owningType</code> must be an <code>OccurrenceDefinition</code> or an <code>OccurrenceUsage</code>.</p> + + + OCL2.0 + portionKind <> null implies + owningType <> null and + (owningType.oclIsKindOf(OccurrenceDefinition) or + owningType.oclIsKindOf(OccurrenceUsage)) + + + + + <p>If an <code>OccurrenceUsage</code> has a non-null <code>portionKind</code>, then it must have <code>isPortion = true</code>.</p> + + + OCL2.0 + portionKind <> null implies isPortion + + + + + + <p>The <code>Classes</code> that are the types of this <code>OccurrenceUsage</code>. Nominally, these are <code>OccurrenceDefinitions</code>, but other kinds of kernel <code>Classes</code> are also allowed, to permit use of <code>Classes</code> from the Kernel Model Libraries.</p> + + + + + + + <p>The at most one <code>occurrenceDefinition</code> that has <code>isIndividual = true</code>.</p> + + + + + + + <p>Whether this <code>OccurrenceUsage</code> represents the usage of the specific individual represented by its <code>individualDefinition</code>.</p> + + + + + + + <p>The kind of temporal portion (time slice or snapshot) is represented by this <code>OccurrenceUsage</code>. If <code>portionKind</code> is not null, then the <code>owningType</code> of the <code>OccurrenceUsage</code> must be non-null, and the <code>OccurrenceUsage</code> represents portions of the featuring instance of the <code>owningType</code>.</p> + + + + + + + + + <p>The EventOccurrenceUsages that reference a certain <code>eventOccurrence</code>.</p> + + + + + + + + <p>An <code>OccurrenceDefinition</code> is a <code>Definition</code> of a <code>Class</code> of individuals that have an independent life over time and potentially an extent over space. This includes both structural things and behaviors that act on such structures. If <code>isIndividual</code> is true, then the <code>OccurrenceDefinition</code> is constrained to have (at most) a single instance that is the entire life of a single individual.</p> + + + + <p>An <code>OccurrenceDefinition</code> with <code>isIndividual = true</code> must directly or indirectly specialize <em><code>Occurrences::Life</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isIndividual implies specializesFromLibrary('Occurrences::Life') + + + + + <p>An <code>OccurrenceDefinition</code> with <code>isIndividual = true</code> must have a <code>multiplicity</code> that specializes <em><code>Base::zeroOrOne</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isIndividual implies + multiplicity <> null and + multiplicity.specializesFromLibrary('Base::zeroOrOne') + + + + + + + <p>Whether this <code>OccurrenceDefinition</code> is constrained to represent at most one thing.</p> + + + + + + + + + <p>The <code>OccurrenceUsages</code> being typed by a certain <code>Class</code>.</p> + + + + + + + + <p>An <code>EventOccurrenceUsage</code> is an <code>OccurrenceUsage</code> that represents another <code>OccurrenceUsage</code> occurring as a <code><em>suboccurrence</em></code> of the containing occurrence of the <code>EventOccurrenceUsage</code>. Unless it is the <code>EventOccurrenceUsage</code> itself, the referenced <code>OccurrenceUsage</code> is related to the <code>EventOccurrenceUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>.</p> + +<p>If the <code>EventOccurrenceUsage</code> is owned by an <code>OccurrenceDefinition</code> or <code>OccurrenceUsage</code>, then it also subsets the <em><code>timeEnclosedOccurrences</code></em> property of the <code>Class</code> <em><code>Occurrence</code></em> from the Kernel Semantic Library model <em><code>Occurrences</code></em>.</p> + + + + <p>If an <code>EventOccurrenceUsage</code> has no <code>ownedReferenceSubsetting</code>, then its <code>eventOccurrence</code> is the <code>EventOccurrenceUsage</code> itself. Otherwise, the <code>eventOccurrence</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> (which must be an <code>OccurrenceUsage</code>).</p> + + + OCL2.0 + eventOccurrence = + if referencedFeatureTarget() = null then self + else if referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) then + referencedFeatureTarget().oclAsType(OccurrenceUsage) + else null + endif endif + + + + + <p>If an <code>EventOccurrenceUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be an <code>OccurrenceUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) + + + + + <p>If an <code>EventOccurrenceUsage</code> has an <code>owningType</code> that is an <code>OccurrenceDefinition</code> or <code>OccurrenceUsage</code>, then it must directly or indirectly specialize the <code>Feature</code> <code><em>Occurrences::Occurrence::timeEnclosedOccurrences</em></code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(OccurrenceDefinition) or + owningType.oclIsKindOf(OccurrenceUsage)) implies + specializesFromLibrary('Occurrences::Occurrence::timeEnclosedOccurrences') + + + + + <p>An <code>EventOccurrenceUsage</code> must be referential.</p> + + + OCL2.0 + isReference + + + + + + <p>The <code>OccurrenceUsage</code> referenced as an event by this <code>EventOccurrenceUsage</code>. It is the <code>referenceFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>EventOccurrenceUsage</code>, if there is one, and, otherwise, the <code>EventOccurrenceUsage</code> itself.</p> + + + + + + + <p>Always true for an <code>EventOccurrenceUsage</code>.</p> + + + + + + + + + + + <p>The UseCaseDefinition that includes a certain <code>includedUseCase</code>.</p> + + + + + + + + + <p>The UseCaseUsage that includes a certain <code>includedUseCase</code>.</p> + + + + + + + + <p>An <code>IncludeUseCaseUsage</code> is a <code>UseCaseUsage</code> that represents the inclusion of a <code>UseCaseUsage</code> by a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code>. Unless it is the <code>IncludeUseCaseUsage</code> itself, the <code>UseCaseUsage</code> to be included is related to the <code>includedUseCase</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>. An <code>IncludeUseCaseUsage</code> is also a PerformActionUsage, with its <code>useCaseIncluded</code> as the <code>performedAction</code>.</p> + + + + + <p>A <code>IncludeUseCaseUsage</code> whose <code>owningType</code> is a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code> must directly or indirectly specialize the <code>UseCaseUsage</code> <em><code>UseCases::UseCase::includedUseCases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(UseCaseDefinition) or + owningType.oclIsKindOf(UseCaseUsage) implies + specializesFromLibrary('UseCases::UseCase::includedUseCases') + + + + + <p>If an <code>IncludeUseCaseUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be a <code>UseCaseUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(UseCaseUsage) + + + + + + + <p>The <code>UseCaseUsage</code> to be included by this <code>IncludeUseCaseUsage</code>. It is the <code>performedAction</code> of the <code>IncludeUseCaseUsage</code> considered as a <code>PerformActionUsage</code>, which must be a <code>UseCaseUsage</code>.</p> + + + + + + + + + + <p>The IncludeUseCaseUsages that have a certain UseCaseUsage as their <code>includedUseCase</code>.</p> + + + + + + + + + <p>The UseCaseUsages being typed by a certain UseCaseDefinition.</p> + + + + + + + + <p>A <code>UseCaseUsage</code> is a <code>Usage</code> of a <code>UseCaseDefinition</code>.</p> + + + + <p>The <code>includedUseCases<code> of a <code>UseCaseUsage</code> are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by the <code>UseCaseUsage<code>.</p> + + + OCL2.0 + includedUseCase = ownedUseCase-> + selectByKind(IncludeUseCaseUsage). + useCaseIncluded + + + + + <p>A <code>UseCaseUsage</code> must directly or indirectly specializes the base <code>UseCaseUsage</code> <em><code>UseCases::useCases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('UseCases::useCases') + + + + + <p>A composite <code>UseCaseUsage</code> whose <code>owningType</code> is a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code> must specialize the <code>UseCaseUsage</code> <em><code>UseCases::UseCase::subUseCases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(UseCaseDefinition) or + owningType.oclIsKindOf(UseCaseUsage)) implies + specializesFromLibrary('UseCases::UseCase::subUseCases') + + + + + + <p>The <code>UseCaseDefinition</code> that is the <code>definition</code> of this <code>UseCaseUsage</code>.</p> + + + + + + + <p>The <code>UseCaseUsages</code> that are included by this <code>UseCaseUse</code>, which are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by this <code>UseCaseUsage<code>.</p> + + + + + + + + <p>A <code>UseCaseDefinition</code> is a <code>CaseDefinition</code> that specifies a set of actions performed by its subject, in interaction with one or more actors external to the subject. The objective is to yield an observable result that is of value to one or more of the actors.</p> + + + + + <p>The <code>includedUseCases<code> of a <code>UseCaseDefinition</code> are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by the <code>UseCaseDefinition<code>.</p> + + + OCL2.0 + includedUseCase = ownedUseCase-> + selectByKind(IncludeUseCaseUsage). + useCaseIncluded + + + + + <p>A <code>UseCaseDefinition</code> must directly or indirectly specializes the base <code>UseCaseDefinition</code> <code><em>UseCases::UseCase</em></code> from the Systems Model Library.</p> + + + + + + OCL2.0 + specializesFromLibrary('UseCases::UseCase') + + + + + + <p>The <code>UseCaseUsages</code> that are included by this <code>UseCaseDefinition</code>, which are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by this <code>UseCaseDefinition<code>.</p> + + + + + + + + + + + + + + + + <p>A <code>MetadataDefinition</code> is an <code>ItemDefinition</code> that is also a <code>Metaclass</code>.</p> + + + + <p>A <code>MetadataDefinition</code> must directly or indirectly specialize the base <code>MetadataDefinition</code> <code><em>Metadata::MetadataItem</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Metadata::MetadataItem') + + + + + + + + <p>A <code>MetadataUsage</code> is a <code>Usage</code> and a <code>MetadataFeature</code>, used to annotate other <code>Elements</code> in a system model with metadata. As a <code>MetadataFeature</code>, its type must be a <code>Metaclass</code>, which will nominally be a <code>MetadataDefinition</code>. However, any kernel <code>Metaclass</code> is also allowed, to permit use of <code>Metaclasses</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>MetadataUsage</code> must directly or indirectly specialize the base <code>MetadataUsage</code> <code><em>Metadata::metadataItems</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Metadata::metadataItems') + + + + + + + <p>The <code>MetadataDefinition</code> that is the <code>definition</code> of this <code>MetadataUsage</code>.</p> + + + + + + + + + + <p>A <code>FlowUsage</code> is an <code>ActionUsage</code> that is also a <code>ConnectorAsUsage</code> and a KerML <code>Flow</code>.</p> + + + + <p>A <code>FlowUsage</code> must directly or indirectly specialize the base <code>FlowUsage</code> <em><code>Flows::messages</code></em> from the Systems Library model.</p> + + + OCL2.0 + specializesFromLibrary('Flows::messages') + + + + + <p>If a <code>FlowUsage</code> has <code>ownedEndFeatures</code>, it must directly or indirectly specialize the <code>FlowUsage</code> <em><code>Flows::flows</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeatures->notEmpty() implies + specializesFromLibrary('Flows::flows') + + + + + + + + <p>The <code>Interactions</code> that are the <code>types</code> of this <code>FlowUsage</code>. Nominally, these are <code>FlowDefinitions</code>, but other kinds of Kernel <code>Interactions</code> are also allowed, to permit use of Interactions from the Kernel Model Libraries.</p> + + + + + + + + <p>A <code>FlowDefinition</code> is an <code>ActionDefinition</code> that is also an <code>Interaction</code> (which is both a KerML <code>Behavior</code> and <code>Association</code>), representing flows between <code>Usages</code>.</p> + + + + <p>A <code>FlowDefinition</code> must directly or indirectly specialize the base <code>FlowDefinition</code> <em><code>Flows::MessageAction</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Flows::MessageAction') + + + + + <p>A binary <code>FlowDefinition</code> must directly or indirectly specialize the base <code>FlowDefinition<code> <em><code>Flows::Message</code></em> from the Systems Model Library.</p> + + + OCL2.0 + flowEnd->size() = 2 implies + specializesFromLibrary('Flows::Message') + + + + + <p>A <code>FlowDefinition</code> may not have more than two <code>flowEnds</code>.</p> + + + OCL2.0 + flowEnd->size() <= 2 + + + + + + + <p>The <code>Usages</code> that define the things related by the <code>FlowDefinition</code>.</p> + + + + + + + + + <p>The <code>FlowDefinitions<code> that have a certain Usage as <code>flowEnd</code>.</p> + + + + + + + + + <p>The <code>FlowUsages<code> that have a certain <code>Interaction</code> as their <code>flowDefinition</code>.</p> + + + + + + + + <p>A <code>SuccessionFlowUsage</code> is a <code>FlowUsage</code> that is also a KerML <code>SuccessionFlow</code>.</p> + + + + <p>A <code>SuccessionFlowUsage</code> must directly or indirectly specialize the base <code>FlowUsage</code> <em><code>Flows::successionFlows</code></em> from the Systems Library model.</p> + + + OCL2.0 + specializesFromLibrary('Flows::successionFlows') + + + + + + + + diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/SpringIntegrationTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/SpringIntegrationTest.java new file mode 100644 index 000000000..7ae6abc18 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/SpringIntegrationTest.java @@ -0,0 +1,50 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic; + +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.logic.config.SysMLLogicConfiguration; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +/** + * Validates Spring wiring for SysML model and logic modules. + * + *

This test boots a minimal annotation-based context for logic delegates and initializes the + * SysML model packages directly. + */ +public class SpringIntegrationTest { + + @Test + void springContextBootstrapsModelAndLogic() { + // Model package initialization is done explicitly in logic tests. + assertNotNull(SysMLPackage.eINSTANCE); + + try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext()) { + context.register(SysMLLogicConfiguration.class); + context.refresh(); + + assertNotNull(context.getBean("sysMLDelegateRegistrar")); + } + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/adapter/AdapterBehaviorTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/adapter/AdapterBehaviorTest.java new file mode 100644 index 000000000..51b518074 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/adapter/AdapterBehaviorTest.java @@ -0,0 +1,231 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.lang.reflect.Constructor; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.BasicNotifierImpl; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.junit.jupiter.api.Test; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * Verifies runtime behavior of generated SysML adapters. + */ +public class AdapterBehaviorTest { + + @Test + void generatedAdaptersAcceptOnlyTheirAdaptedTypeToken() throws Exception { + for (var adapterClass : this.generatedAdapterClasses()) { + var adapter = this.newAdapter(adapterClass); + assertTrue(adapter.isAdapterForType(adapter.adaptedType())); + assertFalse(adapter.isAdapterForType(Object.class)); + } + } + + @Test + void generatedAdaptersExposeEmptyAdaptedTargetWithoutTarget() throws Exception { + for (var adapterClass : this.generatedAdapterClasses()) { + var adapter = this.newAdapter(adapterClass); + assertTrue(adapter.adaptedTarget().isEmpty()); + } + } + + @Test + void generatedAdaptersExposeAdaptedTargetWhenCompatible() throws Exception { + for (var adapterClass : this.generatedAdapterClasses()) { + var adapter = this.newAdapter(adapterClass); + var compatibleTarget = this.newCompatibleTarget(adapter.adaptedType()); + adapter.setTarget(compatibleTarget); + assertTrue(adapter.adaptedTarget().isPresent()); + assertSame(compatibleTarget, adapter.adaptedTarget().orElseThrow()); + } + } + + @Test + void generatedAdaptersIgnoreIncompatibleTargets() throws Exception { + for (var adapterClass : this.generatedAdapterClasses()) { + var adapter = this.newAdapter(adapterClass); + adapter.setTarget(new BasicNotifierImpl()); + assertTrue(adapter.adaptedTarget().isEmpty()); + } + } + + /** + * Resolves all generated adapter classes from EClass names in the SysML package. + * + * @return sorted list of adapter classes + * @throws ClassNotFoundException if an expected adapter class is missing + */ + @SuppressWarnings("unchecked") + private List>> generatedAdapterClasses() throws ClassNotFoundException { + var result = new ArrayList>>(); + for (var eClassName : this.eClassNames()) { + var adapterClassName = "org.omg.sysml.logic.adapter." + this.sanitize(eClassName) + "Adapter"; + var adapterClass = (Class>) Class.forName(adapterClassName); + result.add(adapterClass); + } + result.sort(Comparator.comparing(Class::getName)); + return result; + } + + /** + * Collects all SysML EClass names recursively. + * + * @return sorted EClass names + */ + private List eClassNames() { + var names = new ArrayList(); + this.collectClassNames(SysMLPackage.eINSTANCE, names); + names.sort(Comparator.naturalOrder()); + return names; + } + + /** + * Recursively collects EClass names in a package hierarchy. + * + * @param ePackage package to scan + * @param target mutable receiver list + */ + private void collectClassNames(EPackage ePackage, List target) { + for (EClassifier classifier : ePackage.getEClassifiers()) { + if (classifier instanceof EClass eClass) { + target.add(eClass.getName()); + } + } + for (EPackage sub : ePackage.getESubpackages()) { + this.collectClassNames(sub, target); + } + } + + /** + * Instantiates a generated adapter class. + * + * @param adapterClass adapter class to instantiate + * @return adapter instance + * @throws Exception if construction fails + */ + private AbstractSysMLAdapter newAdapter(Class> adapterClass) throws Exception { + Constructor ctor = adapterClass.getDeclaredConstructor(); + return (AbstractSysMLAdapter) ctor.newInstance(); + } + + /** + * Creates a notifier compatible with the adapter target type. + * + * @param adaptedType adapter target type + * @return compatible notifier instance + */ + private Notifier newCompatibleTarget(Class adaptedType) { + var adaptedEClass = this.eClassForName(adaptedType.getSimpleName()); + var concreteEClass = this.concreteEClassFor(adaptedEClass); + return (Notifier) EcoreUtil.create(concreteEClass); + } + + /** + * Resolves an EClass by simple name from {@link SysMLPackage}. + * + * @param eClassName target EClass name + * @return resolved EClass + */ + private EClass eClassForName(String eClassName) { + var classifier = SysMLPackage.eINSTANCE.getEClassifier(eClassName); + if (classifier instanceof EClass eClass) { + return eClass; + } + throw new IllegalStateException("EClass not found for adapter type: " + eClassName); + } + + /** + * Resolves a concrete EClass for instance creation. + * + * @param eClass source EClass (possibly abstract) + * @return concrete EClass assignable to source + */ + private EClass concreteEClassFor(EClass eClass) { + if (!eClass.isAbstract()) { + return eClass; + } + var concreteClasses = new ArrayList(); + this.collectConcreteSubtypes(SysMLPackage.eINSTANCE, eClass, concreteClasses); + if (concreteClasses.isEmpty()) { + throw new IllegalStateException("No concrete subtype found for abstract EClass: " + eClass.getName()); + } + concreteClasses.sort(Comparator.comparing(EClass::getName)); + return concreteClasses.getFirst(); + } + + /** + * Collects concrete EClasses assignable to a target EClass. + * + * @param ePackage package to scan + * @param targetType required supertype + * @param out mutable receiver list + */ + private void collectConcreteSubtypes(EPackage ePackage, EClass targetType, List out) { + for (EClassifier classifier : ePackage.getEClassifiers()) { + if (classifier instanceof EClass candidate + && !candidate.isAbstract() + && (candidate == targetType || candidate.getEAllSuperTypes().contains(targetType))) { + out.add(candidate); + } + } + for (EPackage sub : ePackage.getESubpackages()) { + this.collectConcreteSubtypes(sub, targetType, out); + } + } + + /** + * Sanitizes an identifier into a Java class token. + * + * @param identifier source identifier + * @return sanitized identifier + */ + private String sanitize(String identifier) { + StringBuilder result = new StringBuilder(identifier.length()); + for (int i = 0; i < identifier.length(); i++) { + char c = identifier.charAt(i); + if (Character.isLetterOrDigit(c) || c == '_') { + result.append(c); + } else { + result.append('_'); + } + } + if (result.isEmpty()) { + return "_"; + } + if (!Character.isJavaIdentifierStart(result.charAt(0))) { + result.insert(0, '_'); + } + return result.toString(); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/adapter/AdapterCoverageTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/adapter/AdapterCoverageTest.java new file mode 100644 index 000000000..6b764e3b2 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/adapter/AdapterCoverageTest.java @@ -0,0 +1,154 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.lang.reflect.Constructor; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.HashSet; +import java.util.Set; +import java.util.TreeSet; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EPackage; +import org.junit.jupiter.api.Test; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * Verifies generated adapter coverage and runtime shape for SysML EClasses. + */ +public class AdapterCoverageTest { + + @Test + void allEClassesHaveExactlyOneGeneratedAdapterFile() throws IOException { + var expectedAdapterFiles = this.expectedAdapterSimpleClassNames(); + var unifiedDir = this.resolveUnifiedDir(); + var adapterDir = unifiedDir.resolve("org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter"); + + var actualAdapterFiles = new TreeSet(); + try (var files = Files.list(adapterDir)) { + for (Path file : files.toList()) { + var name = file.getFileName().toString(); + if (name.endsWith("Adapter.java") && !name.equals("AbstractSysMLAdapter.java")) { + actualAdapterFiles.add(name.substring(0, name.length() - ".java".length())); + } + } + } + + assertEquals(expectedAdapterFiles, actualAdapterFiles); + } + + @Test + void allGeneratedAdaptersAreInstantiableAndTyped() throws Exception { + var expectedAdapterNames = this.expectedAdapterSimpleClassNames(); + for (String adapterSimpleName : expectedAdapterNames) { + var className = "org.omg.sysml.logic.adapter." + adapterSimpleName; + var adapterClass = Class.forName(className); + assertTrue(AbstractSysMLAdapter.class.isAssignableFrom(adapterClass)); + + Constructor ctor = adapterClass.getDeclaredConstructor(); + Object instance = ctor.newInstance(); + assertNotNull(instance); + assertNotNull(((AbstractSysMLAdapter) instance).adaptedType()); + } + } + + /** + * Computes the expected generated adapter simple class names from SysML EClasses. + * + * @return sorted set of expected adapter simple names + */ + private TreeSet expectedAdapterSimpleClassNames() { + var classes = new HashSet(); + this.collectClasses(SysMLPackage.eINSTANCE, classes); + + var expected = new TreeSet(); + for (String eClassName : classes) { + expected.add(this.sanitize(eClassName) + "Adapter"); + } + return expected; + } + + /** + * Recursively collects EClass names from the given package hierarchy. + * + * @param ePackage package to traverse + * @param target mutable set receiving discovered EClass names + */ + private void collectClasses(EPackage ePackage, Set target) { + for (EClassifier classifier : ePackage.getEClassifiers()) { + if (classifier instanceof EClass eClass) { + target.add(eClass.getName()); + } + } + for (EPackage sub : ePackage.getESubpackages()) { + this.collectClasses(sub, target); + } + } + + /** + * Resolves the unified module root directory by walking up from the working directory. + * + * @return path to the unified directory + */ + private Path resolveUnifiedDir() { + Path current = Path.of("").toAbsolutePath(); + while (current != null) { + if (Files.isDirectory(current.resolve("org.omg.sysml.logic")) + && Files.isDirectory(current.resolve("org.omg.sysml.model"))) { + return current; + } + current = current.getParent(); + } + throw new IllegalStateException("Cannot resolve unified directory from current working directory."); + } + + /** + * Converts an identifier into a Java-safe token using underscore replacement. + * + * @param identifier raw identifier + * @return sanitized Java identifier token + */ + private String sanitize(String identifier) { + StringBuilder result = new StringBuilder(identifier.length()); + for (int i = 0; i < identifier.length(); i++) { + char c = identifier.charAt(i); + if (Character.isLetterOrDigit(c) || c == '_') { + result.append(c); + } else { + result.append('_'); + } + } + if (result.isEmpty()) { + return "_"; + } + if (!Character.isJavaIdentifierStart(result.charAt(0))) { + result.insert(0, '_'); + } + return result.toString(); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/adapter/AdapterWiringTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/adapter/AdapterWiringTest.java new file mode 100644 index 000000000..02c6e9f8e --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/adapter/AdapterWiringTest.java @@ -0,0 +1,95 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * Verifies wiring between generated adapters and runtime SysML instances. + */ +public class AdapterWiringTest { + + @Test + void factoryDispatchesToExpectedGeneratedAdapter() { + var factory = new SysMLLogicAdapterFactory(); + var element = SysMLFactory.eINSTANCE.createAcceptActionUsage(); + + var adapter = factory.createAdapter(element); + + assertInstanceOf(AcceptActionUsageAdapter.class, adapter); + } + + @Test + void adapterServiceAttachesAndReusesGeneratedAdapters() { + var adapterFactory = new SysMLLogicAdapterFactory(); + var adapters = new SysMLAdapters(adapterFactory); + var element = SysMLFactory.eINSTANCE.createAcceptActionUsage(); + + var first = adapters.adapt(element, AcceptActionUsageAdapter.class); + var second = adapters.adapt(element, AcceptActionUsageAdapter.class); + + assertSame(first, second); + assertEquals(1, element.eAdapters().stream().filter(AcceptActionUsageAdapter.class::isInstance).count()); + assertTrue(first.adaptedTarget().isPresent()); + assertSame(element, first.adaptedTarget().orElseThrow()); + } + + @Test + void adapterServiceFindReturnsEmptyBeforeAttachment() { + var adapters = new SysMLAdapters(new SysMLLogicAdapterFactory()); + var element = SysMLFactory.eINSTANCE.createAcceptActionUsage(); + + var found = adapters.find(element, AcceptActionUsageAdapter.class); + + assertTrue(found.isEmpty()); + } + + @Test + void logicAdapterFactoryMatchesSysMLPackageAndElements() { + var factory = new SysMLLogicAdapterFactory(); + var element = SysMLFactory.eINSTANCE.createAcceptActionUsage(); + + assertTrue(factory.isFactoryForType(SysMLPackage.eINSTANCE)); + assertTrue(factory.isFactoryForType(element)); + assertFalse(factory.isFactoryForType("not-sysml")); + } + + @Test + void adapterServiceFindReturnsExistingAdapter() { + var adapters = new SysMLAdapters(new SysMLLogicAdapterFactory()); + AcceptActionUsage element = SysMLFactory.eINSTANCE.createAcceptActionUsage(); + var attached = adapters.adapt(element, AcceptActionUsageAdapter.class); + + var found = adapters.find(element, AcceptActionUsageAdapter.class); + + assertTrue(found.isPresent()); + assertSame(attached, found.orElseThrow()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegateDeterminismTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegateDeterminismTest.java new file mode 100644 index 000000000..58fd84217 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegateDeterminismTest.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Determinism tests for repeated delegate evaluation on unchanged model state. + */ +public class DelegateDeterminismTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void repeatedInvocationOfElementEscapedNameIsDeterministic() throws Exception { + var element = SysMLFactory.eINSTANCE.createComment(); + element.setDeclaredName("a value with spaces"); + + var first = semantics.invokeInvocation( + "Element_escapedName_InvocationDelegate", "Element", "escapedName", 0, element, null); + var second = semantics.invokeInvocation( + "Element_escapedName_InvocationDelegate", "Element", "escapedName", 0, element, null); + + assertEquals(first, second); + } + + @Test + void repeatedInvocationOfElementPathIsDeterministic() throws Exception { + var owner = SysMLFactory.eINSTANCE.createComment(); + var child = SysMLFactory.eINSTANCE.createComment(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + owner.getOwnedRelationship().add(owningMembership); + owningMembership.getOwnedRelatedElement().add(child); + + var first = semantics.invokeInvocation("Element_path_InvocationDelegate", "Element", "path", 0, child, null); + var second = semantics.invokeInvocation("Element_path_InvocationDelegate", "Element", "path", 0, child, null); + + assertEquals(first, second); + } + + @Test + void repeatedSettingEvaluationOfMembershipOwningNamespaceIsDeterministic() { + var membership = SysMLFactory.eINSTANCE.createMembership(); + var namespace = SysMLFactory.eINSTANCE.createPackage(); + membership.setOwningRelatedElement(namespace); + + var first = semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership); + var second = semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership); + + assertSame(first, second); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegateFallbackBoundaryTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegateFallbackBoundaryTest.java new file mode 100644 index 000000000..b56a0f35a --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegateFallbackBoundaryTest.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Boundary tests for translated and fallback delegate behavior. + * + *

These tests lock expected behavior at the boundary where translated implementations stop + * and generic fallback behavior is used. + */ +public class DelegateFallbackBoundaryTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + public void implementedSubsetsFallbackStillResolvesMembershipOwningNamespace() { + var membership = SysMLFactory.eINSTANCE.createMembership(); + var namespace = SysMLFactory.eINSTANCE.createPackage(); + membership.setOwningRelatedElement(namespace); + + assertSame(namespace, semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership)); + } + + @Test + public void unimplementedFeatureOwningTypeFallsBackToDefaultNull() { + var ownerNamespace = SysMLFactory.eINSTANCE.createPackage(); + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + owningMembership.setOwningRelatedElement(ownerNamespace); + owningMembership.getOwnedRelatedElement().add(feature); + + assertNull(semantics.evaluateSetting("Feature", "owningType", feature)); + } + + @Test + public void annotationOwningAnnotatingElementResolvesFromOwningRelatedElement() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + var annotatingElement = SysMLFactory.eINSTANCE.createMetadataFeature(); + annotation.setOwningRelatedElement(annotatingElement); + + assertSame(annotatingElement, semantics.evaluateSetting("Annotation", "owningAnnotatingElement", annotation)); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegatePrecedenceRegressionTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegatePrecedenceRegressionTest.java new file mode 100644 index 000000000..fe9925cbe --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegatePrecedenceRegressionTest.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +import static org.junit.jupiter.api.Assertions.assertSame; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Regression tests for source precedence ordering in translated setting delegates. + */ +public class DelegatePrecedenceRegressionTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void specializationOwningTypePrefersOwningRelatedElementOverSpecific() { + var specialization = SysMLFactory.eINSTANCE.createSpecialization(); + var owningType = SysMLFactory.eINSTANCE.createActionDefinition(); + var specificType = SysMLFactory.eINSTANCE.createPartDefinition(); + specialization.setOwningRelatedElement(owningType); + specialization.setSpecific(specificType); + + assertSame(owningType, semantics.evaluateSetting("Specialization", "owningType", specialization)); + } + + @Test + void featureInvertingOwningFeaturePrefersFeatureInvertedOverOwningRelatedElement() { + var featureInverting = SysMLFactory.eINSTANCE.createFeatureInverting(); + var sourceFeature = SysMLFactory.eINSTANCE.createActionUsage(); + var owningRelatedFeature = SysMLFactory.eINSTANCE.createPartUsage(); + featureInverting.setFeatureInverted(sourceFeature); + featureInverting.setOwningRelatedElement(owningRelatedFeature); + + assertSame(sourceFeature, semantics.evaluateSetting("FeatureInverting", "owningFeature", featureInverting)); + } + + @Test + void annotationOwningAnnotatedElementPrefersAnnotatedElementOverOwningRelatedElement() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + var annotatedElement = SysMLFactory.eINSTANCE.createComment(); + var owningRelatedElement = SysMLFactory.eINSTANCE.createDocumentation(); + annotation.setAnnotatedElement(annotatedElement); + annotation.setOwningRelatedElement(owningRelatedElement); + + assertSame(annotatedElement, semantics.evaluateSetting("Annotation", "owningAnnotatedElement", annotation)); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegateSemanticsSupport.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegateSemanticsSupport.java new file mode 100644 index 000000000..3efcbeaeb --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/DelegateSemanticsSupport.java @@ -0,0 +1,158 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +import java.lang.reflect.Constructor; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * Shared delegate invocation utilities for generated semantics tests. + */ +public class DelegateSemanticsSupport { + + private static final String INVOCATION_DELEGATE_PACKAGE = "org.omg.sysml.logic.delegate.invocation."; + + /** + * Creates a support helper and ensures generated delegates are registered. + */ + public DelegateSemanticsSupport() { + SysMLDelegateRegistrar.registerDelegates(); + } + + /** + * Creates an EMF argument list from the provided values. + * + * @param values values to include in the argument list + * @return argument list preserving input order + */ + public BasicEList args(Object... values) { + var arguments = new BasicEList(); + for (Object value : values) { + arguments.add(value); + } + return arguments; + } + + /** + * Creates an argument list containing one integer argument. + * + * @param i integer argument value + * @return single-value argument list + */ + public BasicEList intArg(int i) { + return args(Integer.valueOf(i)); + } + + /** + * Creates an argument list containing an empty visited feature list. + * + * @return single-value argument list for visited features + */ + public BasicEList visitedArg() { + return args(new BasicEList()); + } + + /** + * Invokes a generated invocation delegate for a resolved EOperation. + * + * @param delegateSimpleClassName simple class name of the invocation delegate + * @param eClassName owning EClass name of the operation + * @param operationName operation name + * @param parameterCount operation parameter count + * @param target invocation target + * @param arguments invocation arguments + * @return dynamic invocation result returned by the delegate + * @throws Exception if operation lookup, delegate instantiation, or invocation fails + */ + public Object invokeInvocation( + String delegateSimpleClassName, + String eClassName, + String operationName, + int parameterCount, + Object target, + EList arguments) throws Exception { + var operation = this.findOperation(eClassName, operationName, parameterCount); + var fqcn = INVOCATION_DELEGATE_PACKAGE + delegateSimpleClassName; + var delegateClass = Class.forName(fqcn); + Constructor constructor = delegateClass.getConstructor(EOperation.class); + var delegate = constructor.newInstance(operation); + return ((AbstractInvocationDelegate) delegate).dynamicInvoke( + (org.eclipse.emf.ecore.InternalEObject) target, + arguments); + } + + /** + * Evaluates a derived setting value on an owner through EMF feature access. + * + * @param eClassName EClass name declaring or inheriting the feature + * @param featureName feature name + * @param owner feature owner instance + * @return derived setting value produced by the runtime setting delegate + */ + public Object evaluateSetting(String eClassName, String featureName, Object owner) { + var feature = this.findFeature(eClassName, featureName); + return ((InternalEObject) owner).eGet(feature, false); + } + + /** + * Finds an EOperation by owning class name, operation name, and arity. + * + * @param eClassName EClass name + * @param operationName operation name + * @param parameterCount operation arity + * @return matching EOperation + */ + private EOperation findOperation(String eClassName, String operationName, int parameterCount) { + var eClass = (EClass) SysMLPackage.eINSTANCE.getEClassifier(eClassName); + for (EOperation operation : eClass.getEAllOperations()) { + if (operationName.equals(operation.getName()) && operation.getEParameters().size() == parameterCount) { + return operation; + } + } + throw new IllegalStateException( + "Operation not found: " + eClassName + "::" + operationName + "/" + parameterCount); + } + + /** + * Finds an EStructuralFeature by owning class name and feature name. + * + * @param eClassName EClass name + * @param featureName feature name + * @return matching EStructuralFeature + */ + private EStructuralFeature findFeature(String eClassName, String featureName) { + var eClass = (EClass) SysMLPackage.eINSTANCE.getEClassifier(eClassName); + for (EStructuralFeature feature : eClass.getEAllStructuralFeatures()) { + if (featureName.equals(feature.getName())) { + return feature; + } + } + throw new IllegalStateException("Feature not found: " + eClassName + "." + featureName); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/SysMLDelegateCoverageTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/SysMLDelegateCoverageTest.java new file mode 100644 index 000000000..c59d239ca --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/SysMLDelegateCoverageTest.java @@ -0,0 +1,482 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.TreeSet; + +import javax.xml.parsers.DocumentBuilderFactory; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +/** + * Verifies delegate coverage across the SysML metamodel. + * + *

This test validates that generated delegates in source folders exactly match UML declarations + * and are actually used by EMF delegates at runtime: + *

    + *
  • for every expected derived setting delegate, the generated class exists and EMF resolves to + * this exact class (never fallback);
  • + *
  • for every expected invocation delegate, the generated class exists and EMF resolves to this + * exact class (never fallback).
  • + *
+ */ +public class SysMLDelegateCoverageTest { + + private static final String INVOCATION_PACKAGE = "org.omg.sysml.logic.delegate.invocation"; + + private static final String SETTING_PACKAGE = "org.omg.sysml.logic.delegate.setting"; + + private static final String INVOCATION_SUFFIX = "_InvocationDelegate.java"; + + private static final String SETTING_SUFFIX = "_SettingDelegate.java"; + + private static final Set EXPECTED_SUBSETS_PLACEHOLDER_DELEGATES = Set.of(); + + private static Map classesByName; + + private static UMLElementDeclarations umlDeclarations; + + private static Set actualInvocationDelegateFiles; + + private static Set actualSettingDelegateFiles; + + @BeforeAll + static void init() throws Exception { + SysMLDelegateRegistrar.registerDelegates(); + + classesByName = new HashMap<>(); + collectClasses(SysMLPackage.eINSTANCE, classesByName); + + Path unifiedDir = resolveUnifiedDir(); + Path umlPath = unifiedDir.resolve("org.omg.sysml.logic.tests/src/main/resources/SysML_xmi.uml"); + umlDeclarations = parseUmlDeclarations(umlPath); + + actualInvocationDelegateFiles = loadGeneratedDelegateFiles( + unifiedDir.resolve("org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation"), + INVOCATION_SUFFIX); + actualSettingDelegateFiles = loadGeneratedDelegateFiles( + unifiedDir.resolve("org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting"), + SETTING_SUFFIX); + } + + @Test + void allDerivedFeaturesHaveCorrectGeneratedSettingDelegatesAndUsage() { + Set expectedSettingDelegateFiles = new TreeSet<>(); + int checked = 0; + int runtimeChecked = 0; + + List classNames = new ArrayList<>(umlDeclarations.featuresByClass().keySet()); + classNames.sort(String::compareTo); + + for (String className : classNames) { + EClass eClass = classesByName.get(className); + assertNotNull(eClass, () -> "UML class not found in Ecore: " + className); + + EObject instance = createIfConcrete(eClass); + List featureNames = new ArrayList<>(umlDeclarations.featuresByClass().get(className)); + featureNames.sort(String::compareTo); + + for (String featureName : featureNames) { + EStructuralFeature feature = resolveFeatureForDeclaredName(eClass, featureName); + assertNotNull(feature, () -> "UML feature not found in Ecore: " + className + "." + featureName); + + if (!feature.isDerived()) { + continue; + } + + checked++; + String simpleClassName = settingDelegateSimpleName(className, featureName); + expectedSettingDelegateFiles.add(simpleClassName + ".java"); + + EStructuralFeature.Internal.SettingDelegate delegate = + ((EStructuralFeature.Internal) feature).getSettingDelegate(); + assertNotNull(delegate, () -> "Missing setting delegate for " + className + "." + featureName); + if (delegate.getClass().getName().startsWith(SETTING_PACKAGE + ".")) { + runtimeChecked++; + String runtimeSimpleClassName = + settingDelegateSimpleName(feature.getEContainingClass().getName(), feature.getName()); + assertFalse(delegate instanceof AbstractSettingDelegate.FallbackSettingDelegate, + () -> "Fallback setting delegate used for " + className + "." + featureName); + assertEquals(SETTING_PACKAGE + "." + runtimeSimpleClassName, delegate.getClass().getName(), + () -> "Unexpected setting delegate class for " + className + "." + featureName); + } + + if (instance != null) { + assertDoesNotThrow(() -> instance.eGet(feature, false), + () -> "Failed to evaluate derived feature " + className + "." + featureName); + } + } + } + + assertTrue(checked > 0, "No derived features were discovered from UML declarations."); + assertTrue(runtimeChecked > 0, "No runtime SysML setting delegates were selected by EMF."); + assertEquals(expectedSettingDelegateFiles, actualSettingDelegateFiles, + () -> mismatchMessage("setting", expectedSettingDelegateFiles, actualSettingDelegateFiles)); + } + + @Test + void allOperationsHaveCorrectGeneratedInvocationDelegatesAndUsage() { + Set expectedInvocationDelegateFiles = new TreeSet<>(); + int checked = 0; + int runtimeChecked = 0; + + List classNames = new ArrayList<>(umlDeclarations.operationsByClass().keySet()); + classNames.sort(String::compareTo); + + for (String className : classNames) { + EClass eClass = classesByName.get(className); + assertNotNull(eClass, () -> "UML class not found in Ecore: " + className); + + EObject instance = createIfConcrete(eClass); + List operationNames = new ArrayList<>(umlDeclarations.operationsByClass().get(className)); + operationNames.sort(String::compareTo); + + for (String operationName : operationNames) { + EOperation operation = resolveOperationForDeclaredName(eClass, operationName); + assertNotNull(operation, + () -> "UML operation not found in Ecore: " + className + "::" + operationName); + + checked++; + String simpleClassName = invocationDelegateSimpleName(className, operationName); + expectedInvocationDelegateFiles.add(simpleClassName + ".java"); + + EOperation.Internal.InvocationDelegate delegate = ((EOperation.Internal) operation).getInvocationDelegate(); + assertNotNull(delegate, () -> "Missing invocation delegate for " + className + "::" + operationName); + if (delegate.getClass().getName().startsWith(INVOCATION_PACKAGE + ".")) { + runtimeChecked++; + String runtimeSimpleClassName = invocationDelegateSimpleName( + operation.getEContainingClass().getName(), operation.getName()); + assertFalse(delegate instanceof AbstractInvocationDelegate.FallbackInvocationDelegate, + () -> "Fallback invocation delegate used for " + className + "::" + operationName); + assertEquals(INVOCATION_PACKAGE + "." + runtimeSimpleClassName, delegate.getClass().getName(), + () -> "Unexpected invocation delegate class for " + className + "::" + operationName); + } + + if (instance instanceof InternalEObject internalObject) { + BasicEList args = new BasicEList<>(operation.getEParameters().size()); + for (int i = 0; i < operation.getEParameters().size(); i++) { + args.add(null); + } + assertDoesNotThrow(() -> invoke(delegate, internalObject, args), + () -> "Failed to invoke operation " + className + "::" + operationName); + } + } + } + + assertTrue(checked > 0, "No operations were discovered from UML declarations."); + assertTrue(runtimeChecked > 0, "No runtime SysML invocation delegates were selected by EMF."); + assertEquals(expectedInvocationDelegateFiles, actualInvocationDelegateFiles, + () -> mismatchMessage("invocation", expectedInvocationDelegateFiles, actualInvocationDelegateFiles)); + } + + @Test + void subsetsFallbackPlaceholdersRemainExplicitlyDocumented() throws IOException { + Path settingDir = resolveUnifiedDir().resolve( + "org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting"); + + Set placeholderFiles = new TreeSet<>(); + try (var stream = Files.list(settingDir)) { + stream.filter(Files::isRegularFile).forEach(path -> { + try { + var content = Files.readString(path); + if (content.contains("subsets fallback not generated for ")) { + placeholderFiles.add(path.getFileName().toString()); + assertTrue(content.contains("TODO manual implementation"), + () -> "Missing TODO manual guidance in " + path.getFileName()); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + } + + assertEquals(EXPECTED_SUBSETS_PLACEHOLDER_DELEGATES, placeholderFiles, + () -> mismatchMessage( + "subsets fallback placeholder setting delegates", + new TreeSet<>(EXPECTED_SUBSETS_PLACEHOLDER_DELEGATES), + placeholderFiles)); + } + + private static Object invoke(EOperation.Internal.InvocationDelegate delegate, InternalEObject target, BasicEList args) + throws InvocationTargetException { + return delegate.dynamicInvoke(target, args); + } + + private static EObject createIfConcrete(EClass eClass) { + if (eClass.isAbstract() || eClass.isInterface()) { + return null; + } + return SysMLFactory.eINSTANCE.create(eClass); + } + + private static void collectClasses(EPackage ePackage, Map target) { + for (EClassifier classifier : ePackage.getEClassifiers()) { + if (classifier instanceof EClass eClass) { + target.put(eClass.getName(), eClass); + } + } + for (EPackage subPackage : ePackage.getESubpackages()) { + collectClasses(subPackage, target); + } + } + + private static EOperation resolveOperationForDeclaredName(EClass eClass, String operationName) { + List candidates = new ArrayList<>(); + EList allOperations = eClass.getEAllOperations(); + for (EOperation operation : allOperations) { + if (operationName.equals(operation.getName())) { + candidates.add(operation); + } + } + if (candidates.isEmpty()) { + return null; + } + for (EOperation candidate : candidates) { + if (candidate.getEContainingClass() == eClass) { + return candidate; + } + } + candidates.sort(Comparator.comparingInt(operation -> inheritanceDistance(eClass, operation.getEContainingClass()))); + return candidates.getFirst(); + } + + private static EStructuralFeature resolveFeatureForDeclaredName(EClass eClass, String featureName) { + List candidates = new ArrayList<>(); + EList allFeatures = eClass.getEAllStructuralFeatures(); + for (EStructuralFeature feature : allFeatures) { + if (featureName.equals(feature.getName())) { + candidates.add(feature); + } + } + if (candidates.isEmpty()) { + return null; + } + for (EStructuralFeature candidate : candidates) { + if (candidate.getEContainingClass() == eClass) { + return candidate; + } + } + candidates.sort(Comparator.comparingInt(feature -> inheritanceDistance(eClass, feature.getEContainingClass()))); + return candidates.getFirst(); + } + + private static int inheritanceDistance(EClass fromClass, EClass targetClass) { + if (fromClass == targetClass) { + return 0; + } + + List frontier = new ArrayList<>(); + Set visited = new HashSet<>(); + frontier.add(fromClass); + visited.add(fromClass); + + int distance = 0; + while (!frontier.isEmpty()) { + List next = new ArrayList<>(); + for (EClass current : frontier) { + if (current == targetClass) { + return distance; + } + for (EClass superType : current.getESuperTypes()) { + if (visited.add(superType)) { + next.add(superType); + } + } + } + frontier = next; + distance++; + } + return Integer.MAX_VALUE; + } + + private static String invocationDelegateSimpleName(String className, String operationName) { + return sanitize(className) + "_" + sanitize(operationName) + "_InvocationDelegate"; + } + + private static String settingDelegateSimpleName(String className, String featureName) { + return sanitize(className) + "_" + sanitize(featureName) + "_SettingDelegate"; + } + + private static String sanitize(String value) { + StringBuilder builder = new StringBuilder(value.length() + 4); + for (int i = 0; i < value.length(); i++) { + char ch = value.charAt(i); + if (Character.isLetterOrDigit(ch)) { + builder.append(ch); + } else { + builder.append('_'); + } + } + if (builder.length() == 0 || !Character.isJavaIdentifierStart(builder.charAt(0))) { + builder.insert(0, '_'); + } + return builder.toString(); + } + + private static UMLElementDeclarations parseUmlDeclarations(Path umlPath) throws Exception { + assertTrue(Files.isRegularFile(umlPath), () -> "UML file not found: " + umlPath); + + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(false); + Document document = factory.newDocumentBuilder().parse(umlPath.toFile()); + + Map> featuresByClass = new HashMap<>(); + Map> operationsByClass = new HashMap<>(); + collectUmlDeclarations(document.getDocumentElement(), featuresByClass, operationsByClass); + return new UMLElementDeclarations(featuresByClass, operationsByClass); + } + + private static void collectUmlDeclarations( + Element element, + Map> featuresByClass, + Map> operationsByClass) { + if (isUmlClass(element)) { + String className = element.getAttribute("name"); + if (!className.isBlank()) { + Set featureNames = featuresByClass.computeIfAbsent(className, ignored -> new LinkedHashSet<>()); + Set operationNames = operationsByClass.computeIfAbsent(className, ignored -> new LinkedHashSet<>()); + for (Element child : childElements(element)) { + if ("ownedAttribute".equals(child.getTagName())) { + String featureName = child.getAttribute("name"); + if (!featureName.isBlank()) { + featureNames.add(featureName); + } + } + if ("ownedOperation".equals(child.getTagName())) { + String operationName = child.getAttribute("name"); + if (!operationName.isBlank()) { + operationNames.add(operationName); + } + } + } + } + } + + for (Element child : childElements(element)) { + collectUmlDeclarations(child, featuresByClass, operationsByClass); + } + } + + private static boolean isUmlClass(Element element) { + return "packagedElement".equals(element.getTagName()) + && "uml:Class".equals(element.getAttribute("xmi:type")); + } + + private static List childElements(Element parent) { + List children = new ArrayList<>(); + for (Node node = parent.getFirstChild(); node != null; node = node.getNextSibling()) { + if (node instanceof Element child) { + children.add(child); + } + } + return children; + } + + private static Set loadGeneratedDelegateFiles(Path directory, String suffix) throws IOException { + assertTrue(Files.isDirectory(directory), () -> "Delegate directory not found: " + directory); + + Set fileNames = new TreeSet<>(); + try (var stream = Files.list(directory)) { + stream.filter(Files::isRegularFile) + .map(path -> path.getFileName().toString()) + .filter(name -> name.endsWith(suffix)) + .forEach(fileNames::add); + } + return fileNames; + } + + private static Path resolveUnifiedDir() { + Path cwd = Path.of(System.getProperty("user.dir")).toAbsolutePath().normalize(); + + Optional namedUnified = findAncestorNamed(cwd, "unified"); + if (namedUnified.isPresent()) { + return namedUnified.get(); + } + + Path candidate = cwd.resolve("unified"); + if (Files.isDirectory(candidate)) { + return candidate; + } + + throw new IllegalStateException("Unable to locate 'unified' directory from working directory: " + cwd); + } + + private static Optional findAncestorNamed(Path start, String name) { + Path current = start; + while (current != null) { + Path fileName = current.getFileName(); + if (fileName != null && name.equals(fileName.toString())) { + return Optional.of(current); + } + current = current.getParent(); + } + return Optional.empty(); + } + + private static String mismatchMessage(String kind, Set expected, Set actual) { + Set missing = new TreeSet<>(expected); + missing.removeAll(actual); + + Set extra = new TreeSet<>(actual); + extra.removeAll(expected); + + return "Unexpected " + kind + " delegates. Missing=" + missing + ", extra=" + extra; + } + + private record UMLElementDeclarations( + Map> featuresByClass, + Map> operationsByClass) { + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationFallbackBoundaryTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationFallbackBoundaryTest.java new file mode 100644 index 000000000..8915d3204 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationFallbackBoundaryTest.java @@ -0,0 +1,100 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Boundary tests for invocation delegates that currently rely on base fallback behavior. + * + *

What this test covers: + * fallback delegates must return neutral values compatible with operation signatures. + */ +public class InvocationFallbackBoundaryTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + public void invocationExpressionEvaluateFallsBackToEmptyList() throws Exception { + var invocationExpression = SysMLFactory.eINSTANCE.createInvocationExpression(); + + var result = (EList) semantics.invokeInvocation( + "InvocationExpression_evaluate_InvocationDelegate", + "Expression", + "evaluate", + 1, + invocationExpression, + semantics.args(SysMLFactory.eINSTANCE.createPackage())); + + assertTrue(result.isEmpty()); + } + + @Test + public void namespaceQualificationOfFallsBackToNull() throws Exception { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + + var result = semantics.invokeInvocation( + "Namespace_qualificationOf_InvocationDelegate", + "Namespace", + "qualificationOf", + 1, + namespace, + semantics.args("Base::Anything")); + + assertNull(result); + } + + @Test + public void importImportedMembershipsFallsBackToEmptyList() throws Exception { + var membershipImport = SysMLFactory.eINSTANCE.createMembershipImport(); + + var result = (EList) semantics.invokeInvocation( + "Import_importedMemberships_InvocationDelegate", + "Import", + "importedMemberships", + 1, + membershipImport, + semantics.args(semantics.args())); + + assertTrue(result.isEmpty()); + } + + @Test + public void namespaceResolveGlobalFallsBackToNull() throws Exception { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + + var result = semantics.invokeInvocation( + "Namespace_resolveGlobal_InvocationDelegate", + "Namespace", + "resolveGlobal", + 1, + namespace, + semantics.args("Base::Anything")); + + assertNull(result); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationPerformanceSmokeTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationPerformanceSmokeTest.java new file mode 100644 index 000000000..812373eb0 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationPerformanceSmokeTest.java @@ -0,0 +1,100 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTimeout; + +import java.time.Duration; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Performance-smoke tests for selected translated invocation delegates. + * + *

What this test covers: + * repeated invocation on representative small models should remain within generous time bounds. + */ +public class InvocationPerformanceSmokeTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + public void featureAsCartesianProductRepeatedInvocationCompletesWithinBudget() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + + assertTimeout(Duration.ofSeconds(2), () -> { + for (var i = 0; i < 500; i++) { + assertNotNull(semantics.invokeInvocation( + "Feature_asCartesianProduct_InvocationDelegate", + "Feature", + "asCartesianProduct", + 0, + feature, + null)); + } + }); + } + + @Test + public void typeVisibleMembershipsRepeatedInvocationCompletesWithinBudget() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var ownedMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + ownedMembership.getOwnedRelatedElement().add(SysMLFactory.eINSTANCE.createActionUsage()); + type.getOwnedRelationship().add(ownedMembership); + + assertTimeout(Duration.ofSeconds(2), () -> { + for (var i = 0; i < 500; i++) { + assertNotNull(semantics.invokeInvocation( + "Type_visibleMemberships_InvocationDelegate", + "Type", + "visibleMemberships", + 3, + type, + semantics.args(semantics.args(), Boolean.FALSE, Boolean.FALSE))); + } + }); + } + + @Test + public void namespaceResolveVisibleRepeatedInvocationCompletesWithinBudget() { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var member = SysMLFactory.eINSTANCE.createActionUsage(); + member.setDeclaredName("alpha"); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + owningMembership.getOwnedRelatedElement().add(member); + namespace.getOwnedRelationship().add(owningMembership); + + assertTimeout(Duration.ofSeconds(2), () -> { + for (var i = 0; i < 500; i++) { + semantics.invokeInvocation( + "Namespace_resolveVisible_InvocationDelegate", + "Namespace", + "resolveVisible", + 1, + namespace, + semantics.args("alpha")); + } + }); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsDefinitionTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsDefinitionTest.java new file mode 100644 index 000000000..f7f6e42e0 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsDefinitionTest.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.PortConjugation; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Invocation semantics tests for Definition and Definition-derived metaclasses. + */ +public class InvocationSemanticsDefinitionTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void conjugatedPortDefinitionEffectiveNameRule() throws Exception { + ConjugatedPortDefinition conjugatedPortDefinition = SysMLFactory.eINSTANCE.createConjugatedPortDefinition(); + assertNull(semantics.invokeInvocation("ConjugatedPortDefinition_effectiveName_InvocationDelegate", + "ConjugatedPortDefinition", "effectiveName", 0, conjugatedPortDefinition, null)); + assertNull(conjugatedPortDefinition.effectiveName()); + } + + @Test + void conjugatedPortDefinitionEffectiveNamePrefixesOriginalNameRule() throws Exception { + var conjugatedPortDefinition = SysMLFactory.eINSTANCE.createConjugatedPortDefinition(); + PortDefinition originalPortDefinition = SysMLFactory.eINSTANCE.createPortDefinition(); + originalPortDefinition.setDeclaredName("P"); + PortConjugation portConjugation = SysMLFactory.eINSTANCE.createPortConjugation(); + portConjugation.setOriginalPortDefinition(originalPortDefinition); + portConjugation.setConjugatedType(conjugatedPortDefinition); + conjugatedPortDefinition.getOwnedRelationship().add(portConjugation); + assertEquals("~P", semantics.invokeInvocation("ConjugatedPortDefinition_effectiveName_InvocationDelegate", + "ConjugatedPortDefinition", "effectiveName", 0, conjugatedPortDefinition, null)); + assertEquals("~P", conjugatedPortDefinition.effectiveName()); + } + + @Test + void conjugatedPortDefinitionEffectiveNameReturnsNullWhenOriginalNameIsNullRule() throws Exception { + var conjugatedPortDefinition = SysMLFactory.eINSTANCE.createConjugatedPortDefinition(); + PortDefinition originalPortDefinition = SysMLFactory.eINSTANCE.createPortDefinition(); + PortConjugation portConjugation = SysMLFactory.eINSTANCE.createPortConjugation(); + portConjugation.setOriginalPortDefinition(originalPortDefinition); + portConjugation.setConjugatedType(conjugatedPortDefinition); + conjugatedPortDefinition.getOwnedRelationship().add(portConjugation); + assertNull(semantics.invokeInvocation("ConjugatedPortDefinition_effectiveName_InvocationDelegate", + "ConjugatedPortDefinition", "effectiveName", 0, conjugatedPortDefinition, null)); + assertNull(conjugatedPortDefinition.effectiveName()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsElementTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsElementTest.java new file mode 100644 index 000000000..7dd30e59a --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsElementTest.java @@ -0,0 +1,112 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.Comment; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Invocation semantics tests for Element rules. + */ +public class InvocationSemanticsElementTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void elementEffectiveNameRule() throws Exception { + Comment element = SysMLFactory.eINSTANCE.createComment(); + element.setDeclaredName("NamedElement"); + assertEquals("NamedElement", semantics.invokeInvocation("Element_effectiveName_InvocationDelegate", + "Element", "effectiveName", 0, element, null)); + assertEquals("NamedElement", element.effectiveName()); + } + + @Test + void elementEffectiveShortNameRule() throws Exception { + Comment element = SysMLFactory.eINSTANCE.createComment(); + element.setDeclaredShortName("NE"); + assertEquals("NE", semantics.invokeInvocation("Element_effectiveShortName_InvocationDelegate", + "Element", "effectiveShortName", 0, element, null)); + assertEquals("NE", element.effectiveShortName()); + } + + @Test + void elementEscapedNameRule() throws Exception { + Comment element = SysMLFactory.eINSTANCE.createComment(); + element.setDeclaredName("name with space"); + assertEquals("'name with space'", semantics.invokeInvocation("Element_escapedName_InvocationDelegate", + "Element", "escapedName", 0, element, null)); + assertEquals("'name with space'", element.escapedName()); + } + + @Test + void elementEscapedNameIdentifierRule() throws Exception { + var element = SysMLFactory.eINSTANCE.createComment(); + element.setDeclaredName("valid_identifier_1"); + assertEquals("valid_identifier_1", semantics.invokeInvocation("Element_escapedName_InvocationDelegate", + "Element", "escapedName", 0, element, null)); + assertEquals("valid_identifier_1", element.escapedName()); + } + + @Test + void elementEscapedNameEscapesQuotesRule() throws Exception { + var element = SysMLFactory.eINSTANCE.createComment(); + element.setDeclaredName("O'Reilly"); + assertEquals("'O\\'Reilly'", semantics.invokeInvocation("Element_escapedName_InvocationDelegate", + "Element", "escapedName", 0, element, null)); + assertEquals("'O\\'Reilly'", element.escapedName()); + } + + @Test + void elementLibraryNamespaceRule() throws Exception { + Comment element = SysMLFactory.eINSTANCE.createComment(); + assertNull(semantics.invokeInvocation("Element_libraryNamespace_InvocationDelegate", + "Element", "libraryNamespace", 0, element, null)); + assertNull(element.libraryNamespace()); + } + + @Test + void elementPathRule() throws Exception { + Comment element = SysMLFactory.eINSTANCE.createComment(); + assertEquals("", semantics.invokeInvocation("Element_path_InvocationDelegate", + "Element", "path", 0, element, null)); + assertEquals("", element.path()); + } + + @Test + void elementPathWithOwningRelationshipRule() throws Exception { + var owner = SysMLFactory.eINSTANCE.createComment(); + var first = SysMLFactory.eINSTANCE.createComment(); + var second = SysMLFactory.eINSTANCE.createComment(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + owner.getOwnedRelationship().add(owningMembership); + owningMembership.getOwnedRelatedElement().add(first); + owningMembership.getOwnedRelatedElement().add(second); + assertEquals("/1/2", semantics.invokeInvocation("Element_path_InvocationDelegate", + "Element", "path", 0, second, null)); + assertEquals("/1/2", second.path()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsExpressionTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsExpressionTest.java new file mode 100644 index 000000000..70f4aa69e --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsExpressionTest.java @@ -0,0 +1,205 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.Comment; +import org.omg.sysml.model.sysml.ConstraintDefinition; +import org.omg.sysml.model.sysml.ConstructorExpression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChainExpression; +import org.omg.sysml.model.sysml.FeatureReferenceExpression; +import org.omg.sysml.model.sysml.InvocationExpression; +import org.omg.sysml.model.sysml.LiteralBoolean; +import org.omg.sysml.model.sysml.MetadataAccessExpression; +import org.omg.sysml.model.sysml.NullExpression; +import org.omg.sysml.model.sysml.OperatorExpression; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.TriggerInvocationExpression; + +/** + * Invocation semantics tests for Expression and Expression-derived metaclasses. + */ +public class InvocationSemanticsExpressionTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void constructorExpressionModelLevelEvaluableRule() throws Exception { + ConstructorExpression constructorExpression = SysMLFactory.eINSTANCE.createConstructorExpression(); + var visited = new BasicEList(); + assertTrue((Boolean) semantics.invokeInvocation("ConstructorExpression_modelLevelEvaluable_InvocationDelegate", + "ConstructorExpression", "modelLevelEvaluable", 1, constructorExpression, semantics.args(visited))); + assertTrue(constructorExpression.modelLevelEvaluable(visited)); + } + + @Test + void expressionCheckConditionRule() throws Exception { + CalculationUsage expression = SysMLFactory.eINSTANCE.createCalculationUsage(); + Comment element = SysMLFactory.eINSTANCE.createComment(); + assertFalse((Boolean) semantics.invokeInvocation("Expression_checkCondition_InvocationDelegate", + "Expression", "checkCondition", 1, expression, semantics.args(element))); + assertFalse(expression.checkCondition(element)); + } + + @Test + void expressionEvaluateRule() throws Exception { + CalculationUsage expression = SysMLFactory.eINSTANCE.createCalculationUsage(); + Comment element = SysMLFactory.eINSTANCE.createComment(); + assertTrue(((EList) semantics.invokeInvocation("Expression_evaluate_InvocationDelegate", + "Expression", "evaluate", 1, expression, semantics.args(element))).isEmpty()); + assertTrue(expression.evaluate(element).isEmpty()); + } + + @Test + void expressionModelLevelEvaluableRule() throws Exception { + ConstructorExpression expression = SysMLFactory.eINSTANCE.createConstructorExpression(); + var visited = new BasicEList(); + assertTrue((Boolean) semantics.invokeInvocation("Expression_modelLevelEvaluable_InvocationDelegate", + "Expression", "modelLevelEvaluable", 1, expression, semantics.args(visited))); + assertTrue(expression.modelLevelEvaluable(visited)); + } + + @Test + void featureChainExpressionSourceTargetFeatureRule() throws Exception { + FeatureChainExpression featureChainExpression = SysMLFactory.eINSTANCE.createFeatureChainExpression(); + assertNull(semantics.invokeInvocation("FeatureChainExpression_sourceTargetFeature_InvocationDelegate", + "FeatureChainExpression", "sourceTargetFeature", 0, featureChainExpression, null)); + assertNull(featureChainExpression.sourceTargetFeature()); + } + + @Test + void featureReferenceExpressionEvaluateRule() throws Exception { + FeatureReferenceExpression featureReferenceExpression = SysMLFactory.eINSTANCE.createFeatureReferenceExpression(); + ConstraintDefinition typeTarget = SysMLFactory.eINSTANCE.createConstraintDefinition(); + assertTrue(((EList) semantics.invokeInvocation("FeatureReferenceExpression_evaluate_InvocationDelegate", + "FeatureReferenceExpression", "evaluate", 1, featureReferenceExpression, semantics.args(typeTarget))).isEmpty()); + assertTrue(featureReferenceExpression.evaluate(typeTarget).isEmpty()); + } + + @Test + void featureReferenceExpressionModelLevelEvaluableRule() throws Exception { + FeatureReferenceExpression featureReferenceExpression = SysMLFactory.eINSTANCE.createFeatureReferenceExpression(); + var visited = new BasicEList(); + assertFalse((Boolean) semantics.invokeInvocation("FeatureReferenceExpression_modelLevelEvaluable_InvocationDelegate", + "FeatureReferenceExpression", "modelLevelEvaluable", 1, featureReferenceExpression, semantics.args(visited))); + assertFalse(featureReferenceExpression.modelLevelEvaluable(visited)); + } + + @Test + void instantiationExpressionInstantiatedTypeRule() throws Exception { + ConstructorExpression instantiationExpression = SysMLFactory.eINSTANCE.createConstructorExpression(); + assertNull(semantics.invokeInvocation("InstantiationExpression_instantiatedType_InvocationDelegate", + "InstantiationExpression", "instantiatedType", 0, instantiationExpression, null)); + assertNull(instantiationExpression.instantiatedType()); + } + + @Test + void invocationExpressionModelLevelEvaluableRule() throws Exception { + InvocationExpression invocationExpression = SysMLFactory.eINSTANCE.createInvocationExpression(); + var visited = new BasicEList(); + assertFalse((Boolean) semantics.invokeInvocation("InvocationExpression_modelLevelEvaluable_InvocationDelegate", + "InvocationExpression", "modelLevelEvaluable", 1, invocationExpression, semantics.args(visited))); + assertFalse(invocationExpression.modelLevelEvaluable(visited)); + } + + @Test + void literalExpressionEvaluateRule() throws Exception { + LiteralBoolean literal = SysMLFactory.eINSTANCE.createLiteralBoolean(); + EList result = (EList) semantics.invokeInvocation("LiteralExpression_evaluate_InvocationDelegate", + "LiteralExpression", "evaluate", 1, literal, semantics.args((Object) null)); + assertTrue(result.contains(literal)); + assertTrue(literal.evaluate(null).contains(literal)); + } + + @Test + void literalExpressionModelLevelEvaluableRule() throws Exception { + LiteralBoolean literal = SysMLFactory.eINSTANCE.createLiteralBoolean(); + assertTrue((Boolean) semantics.invokeInvocation("LiteralExpression_modelLevelEvaluable_InvocationDelegate", + "LiteralExpression", "modelLevelEvaluable", 1, literal, semantics.visitedArg())); + assertTrue(literal.modelLevelEvaluable(new BasicEList())); + } + + @Test + void metadataAccessExpressionEvaluateRule() throws Exception { + MetadataAccessExpression metadataAccessExpression = SysMLFactory.eINSTANCE.createMetadataAccessExpression(); + assertTrue(((EList) semantics.invokeInvocation("MetadataAccessExpression_evaluate_InvocationDelegate", + "MetadataAccessExpression", "evaluate", 1, metadataAccessExpression, semantics.args((Object) null))).isEmpty()); + assertTrue(metadataAccessExpression.evaluate(null).isEmpty()); + } + + @Test + void metadataAccessExpressionModelLevelEvaluableRule() throws Exception { + MetadataAccessExpression metadataAccessExpression = SysMLFactory.eINSTANCE.createMetadataAccessExpression(); + assertTrue((Boolean) semantics.invokeInvocation("MetadataAccessExpression_modelLevelEvaluable_InvocationDelegate", + "MetadataAccessExpression", "modelLevelEvaluable", 1, metadataAccessExpression, semantics.visitedArg())); + assertTrue(metadataAccessExpression.modelLevelEvaluable(new BasicEList())); + } + + @Test + void metadataAccessExpressionMetaclassFeatureFallbackRule() throws Exception { + var metadataAccessExpression = SysMLFactory.eINSTANCE.createMetadataAccessExpression(); + assertNull(semantics.invokeInvocation("MetadataAccessExpression_metaclassFeature_InvocationDelegate", + "MetadataAccessExpression", "metaclassFeature", 0, metadataAccessExpression, null)); + assertNull(metadataAccessExpression.metaclassFeature()); + } + + @Test + void nullExpressionModelLevelEvaluableRule() throws Exception { + NullExpression nullExpression = SysMLFactory.eINSTANCE.createNullExpression(); + assertTrue((Boolean) semantics.invokeInvocation("NullExpression_modelLevelEvaluable_InvocationDelegate", + "NullExpression", "modelLevelEvaluable", 1, nullExpression, semantics.visitedArg())); + assertTrue(nullExpression.modelLevelEvaluable(new BasicEList())); + } + + @Test + void nullExpressionEvaluateRule() throws Exception { + NullExpression nullExpression = SysMLFactory.eINSTANCE.createNullExpression(); + assertTrue(((EList) semantics.invokeInvocation("NullExpression_evaluate_InvocationDelegate", + "NullExpression", "evaluate", 1, nullExpression, semantics.args((Object) null))).isEmpty()); + assertTrue(nullExpression.evaluate(null).isEmpty()); + } + + @Test + void operatorExpressionInstantiatedTypeRule() throws Exception { + OperatorExpression operatorExpression = SysMLFactory.eINSTANCE.createOperatorExpression(); + operatorExpression.setOperator("+"); + assertNull(semantics.invokeInvocation("OperatorExpression_instantiatedType_InvocationDelegate", + "OperatorExpression", "instantiatedType", 0, operatorExpression, null)); + assertNull(operatorExpression.instantiatedType()); + } + + @Test + void triggerInvocationExpressionInstantiatedTypeRule() throws Exception { + TriggerInvocationExpression triggerInvocationExpression = SysMLFactory.eINSTANCE.createTriggerInvocationExpression(); + assertNull(semantics.invokeInvocation("TriggerInvocationExpression_instantiatedType_InvocationDelegate", + "TriggerInvocationExpression", "instantiatedType", 0, triggerInvocationExpression, null)); + assertNull(triggerInvocationExpression.instantiatedType()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsFeatureTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsFeatureTest.java new file mode 100644 index 000000000..e1ffc7a2a --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsFeatureTest.java @@ -0,0 +1,269 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.ParameterMembership; +import org.omg.sysml.model.sysml.ReturnParameterMembership; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Invocation semantics tests for Feature rules. + */ +public class InvocationSemanticsFeatureTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void featureAllRedefinedFeaturesRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + var result = semantics.invokeInvocation("Feature_allRedefinedFeatures_InvocationDelegate", + "Feature", "allRedefinedFeatures", 0, feature, null); + assertEquals(1, ((EList) result).size()); + assertTrue(((EList) result).contains(feature)); + var operationResult = feature.allRedefinedFeatures(); + assertEquals(1, operationResult.size()); + assertTrue(operationResult.contains(feature)); + } + + @Test + void featureAsCartesianProductRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertTrue(((EList) semantics.invokeInvocation("Feature_asCartesianProduct_InvocationDelegate", + "Feature", "asCartesianProduct", 0, feature, null)).isEmpty()); + assertTrue(feature.asCartesianProduct().isEmpty()); + } + + @Test + void featureCanAccessRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + ActionUsage otherFeature = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Feature_canAccess_InvocationDelegate", + "Feature", "canAccess", 1, feature, semantics.args(otherFeature))); + assertFalse(feature.canAccess(otherFeature)); + } + + @Test + void featureDirectionForRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.invokeInvocation("Feature_directionFor_InvocationDelegate", + "Feature", "directionFor", 1, feature, semantics.args((Object) null))); + assertNull(feature.directionFor(null)); + } + + @Test + void featureEffectiveNameRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + feature.setDeclaredName("featureName"); + assertEquals("featureName", semantics.invokeInvocation("Feature_effectiveName_InvocationDelegate", + "Feature", "effectiveName", 0, feature, null)); + assertEquals("featureName", feature.effectiveName()); + } + + @Test + void featureEffectiveShortNameRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + feature.setDeclaredShortName("f"); + assertEquals("f", semantics.invokeInvocation("Feature_effectiveShortName_InvocationDelegate", + "Feature", "effectiveShortName", 0, feature, null)); + assertEquals("f", feature.effectiveShortName()); + } + + @Test + void featureIsCartesianProductRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Feature_isCartesianProduct_InvocationDelegate", + "Feature", "isCartesianProduct", 0, feature, null)); + assertFalse(feature.isCartesianProduct()); + } + + @Test + void featureIsCompatibleWithRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Feature_isCompatibleWith_InvocationDelegate", + "Feature", "isCompatibleWith", 1, feature, semantics.args((Object) null))); + assertFalse(feature.isCompatibleWith(null)); + } + + @Test + void featureIsFeaturedWithinRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertTrue((Boolean) semantics.invokeInvocation("Feature_isFeaturedWithin_InvocationDelegate", + "Feature", "isFeaturedWithin", 1, feature, semantics.args((Object) null))); + assertTrue(feature.isFeaturedWithin(null)); + } + + @Test + void featureIsFeaturingTypeRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Feature_isFeaturingType_InvocationDelegate", + "Feature", "isFeaturingType", 1, feature, semantics.args(type))); + assertFalse(feature.isFeaturingType(type)); + } + + @Test + void featureIsFeaturingTypeForNonVariableOwningTypeRule() throws Exception { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + feature.setIsVariable(false); + var type = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Feature_isFeaturingType_InvocationDelegate", + "Feature", "isFeaturingType", 1, feature, semantics.args(type))); + assertFalse(feature.isFeaturingType(type)); + } + + @Test + void featureIsOwnedCrossFeatureRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Feature_isOwnedCrossFeature_InvocationDelegate", + "Feature", "isOwnedCrossFeature", 0, feature, null)); + assertFalse(feature.isOwnedCrossFeature()); + } + + @Test + void featureNamingFeatureRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.invokeInvocation("Feature_namingFeature_InvocationDelegate", + "Feature", "namingFeature", 0, feature, null)); + assertNull(feature.namingFeature()); + } + + @Test + void featureOwnedCrossFeatureRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.invokeInvocation("Feature_ownedCrossFeature_InvocationDelegate", + "Feature", "ownedCrossFeature", 0, feature, null)); + assertNull(feature.ownedCrossFeature()); + } + + @Test + void featureRedefinesFromLibraryRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Feature_redefinesFromLibrary_InvocationDelegate", + "Feature", "redefinesFromLibrary", 1, feature, semantics.args("Non::Existing::Feature"))); + assertFalse(feature.redefinesFromLibrary("Non::Existing::Feature")); + } + + @Test + void featureRedefinesRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + ActionUsage redefinedFeature = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Feature_redefines_InvocationDelegate", + "Feature", "redefines", 1, feature, semantics.args(redefinedFeature))); + assertFalse(feature.redefines(redefinedFeature)); + } + + @Test + void featureSubsetsChainRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + ActionUsage first = SysMLFactory.eINSTANCE.createActionUsage(); + ActionUsage second = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Feature_subsetsChain_InvocationDelegate", + "Feature", "subsetsChain", 2, feature, semantics.args(first, second))); + assertFalse(feature.subsetsChain(first, second)); + } + + @Test + void featureSupertypesRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertTrue(((EList) semantics.invokeInvocation("Feature_supertypes_InvocationDelegate", + "Feature", "supertypes", 1, feature, semantics.args(Boolean.FALSE))).isEmpty()); + assertTrue(feature.supertypes(false).isEmpty()); + } + + @Test + void featureTypingFeaturesRule() throws Exception { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertTrue(((EList) semantics.invokeInvocation("Feature_typingFeatures_InvocationDelegate", + "Feature", "typingFeatures", 0, feature, null)).isEmpty()); + assertTrue(feature.typingFeatures().isEmpty()); + } + + @Test + void metadataFeatureIsSyntacticRule() throws Exception { + MetadataFeature metadataFeature = SysMLFactory.eINSTANCE.createMetadataFeature(); + assertFalse((Boolean) semantics.invokeInvocation("MetadataFeature_isSyntactic_InvocationDelegate", + "MetadataFeature", "isSyntactic", 0, metadataFeature, null)); + assertFalse(metadataFeature.isSyntactic()); + } + + @Test + void metadataFeatureIsSemanticRule() throws Exception { + MetadataFeature metadataFeature = SysMLFactory.eINSTANCE.createMetadataFeature(); + assertFalse((Boolean) semantics.invokeInvocation("MetadataFeature_isSemantic_InvocationDelegate", + "MetadataFeature", "isSemantic", 0, metadataFeature, null)); + assertFalse(metadataFeature.isSemantic()); + } + + @Test + void parameterMembershipParameterDirectionRule() throws Exception { + ParameterMembership parameterMembership = SysMLFactory.eINSTANCE.createParameterMembership(); + assertEquals(FeatureDirectionKind.IN, semantics.invokeInvocation( + "ParameterMembership_parameterDirection_InvocationDelegate", + "ParameterMembership", "parameterDirection", 0, parameterMembership, null)); + assertEquals(FeatureDirectionKind.IN, parameterMembership.parameterDirection()); + } + + @Test + void returnParameterMembershipParameterDirectionRule() throws Exception { + ReturnParameterMembership returnParameterMembership = SysMLFactory.eINSTANCE.createReturnParameterMembership(); + assertEquals(FeatureDirectionKind.OUT, semantics.invokeInvocation( + "ReturnParameterMembership_parameterDirection_InvocationDelegate", + "ReturnParameterMembership", "parameterDirection", 0, returnParameterMembership, null)); + assertEquals(FeatureDirectionKind.OUT, returnParameterMembership.parameterDirection()); + } + + @Test + void metadataFeatureEvaluateFeatureRule() throws Exception { + MetadataFeature metadataFeature = SysMLFactory.eINSTANCE.createMetadataFeature(); + ActionUsage baseFeature = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.invokeInvocation("MetadataFeature_evaluateFeature_InvocationDelegate", + "MetadataFeature", "evaluateFeature", 1, metadataFeature, semantics.args(baseFeature))); + assertNull(metadataFeature.evaluateFeature(baseFeature)); + } + + @Test + void featureIsFeaturedWithinWithTypeArgumentRule() throws Exception { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var type = SysMLFactory.eINSTANCE.createActionUsage(); + assertTrue((Boolean) semantics.invokeInvocation("Feature_isFeaturedWithin_InvocationDelegate", + "Feature", "isFeaturedWithin", 1, feature, semantics.args(type))); + assertTrue(feature.isFeaturedWithin(type)); + } + + @Test + void metadataFeatureSyntaxElementRule() throws Exception { + MetadataFeature metadataFeature = SysMLFactory.eINSTANCE.createMetadataFeature(); + assertNull(semantics.invokeInvocation("MetadataFeature_syntaxElement_InvocationDelegate", + "MetadataFeature", "syntaxElement", 0, metadataFeature, null)); + assertNull(metadataFeature.syntaxElement()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsMutationTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsMutationTest.java new file mode 100644 index 000000000..1e869e981 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsMutationTest.java @@ -0,0 +1,89 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Mutation-focused invocation semantics tests. + * + *

These tests ensure invocation delegates react consistently when source state changes. + */ +public class InvocationSemanticsMutationTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void elementEffectiveNameFollowsDeclaredNameMutation() throws Exception { + var element = SysMLFactory.eINSTANCE.createComment(); + + element.setDeclaredName("alpha"); + assertEquals("alpha", semantics.invokeInvocation( + "Element_effectiveName_InvocationDelegate", + "Element", "effectiveName", 0, element, null)); + + element.setDeclaredName("beta"); + assertEquals("beta", semantics.invokeInvocation( + "Element_effectiveName_InvocationDelegate", + "Element", "effectiveName", 0, element, null)); + } + + @Test + void elementEscapedNameFollowsDeclaredNameMutation() throws Exception { + var element = SysMLFactory.eINSTANCE.createComment(); + + element.setDeclaredName("plain_identifier"); + assertEquals("plain_identifier", semantics.invokeInvocation( + "Element_escapedName_InvocationDelegate", + "Element", "escapedName", 0, element, null)); + + element.setDeclaredName("contains space"); + assertEquals("'contains space'", semantics.invokeInvocation( + "Element_escapedName_InvocationDelegate", + "Element", "escapedName", 0, element, null)); + } + + @Test + void elementPathFollowsSiblingOrderMutation() throws Exception { + var owner = SysMLFactory.eINSTANCE.createComment(); + var first = SysMLFactory.eINSTANCE.createComment(); + var second = SysMLFactory.eINSTANCE.createComment(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + owner.getOwnedRelationship().add(owningMembership); + owningMembership.getOwnedRelatedElement().add(first); + owningMembership.getOwnedRelatedElement().add(second); + + assertEquals("/1/2", semantics.invokeInvocation( + "Element_path_InvocationDelegate", + "Element", "path", 0, second, null)); + assertEquals("/1/2", second.path()); + + owningMembership.getOwnedRelatedElement().remove(first); + assertEquals("/1/1", semantics.invokeInvocation( + "Element_path_InvocationDelegate", + "Element", "path", 0, second, null)); + assertEquals("/1/1", second.path()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsNullTargetTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsNullTargetTest.java new file mode 100644 index 000000000..7ea71f05b --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsNullTargetTest.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; + +/** + * Null-target safety checks for invocation delegates. + */ +public class InvocationSemanticsNullTargetTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void elementPathReturnsEmptyStringOnNullTarget() throws Exception { + assertEquals("", semantics.invokeInvocation( + "Element_path_InvocationDelegate", "Element", "path", 0, null, null)); + } + + @Test + void elementEffectiveNameReturnsNullOnNullTarget() throws Exception { + assertNull(semantics.invokeInvocation( + "Element_effectiveName_InvocationDelegate", "Element", "effectiveName", 0, null, null)); + } + + @Test + void elementEscapedNameReturnsNullOnNullTarget() throws Exception { + assertNull(semantics.invokeInvocation( + "Element_escapedName_InvocationDelegate", "Element", "escapedName", 0, null, null)); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsOtherTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsOtherTest.java new file mode 100644 index 000000000..798562921 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsOtherTest.java @@ -0,0 +1,248 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.Comment; +import org.omg.sysml.model.sysml.DecisionNode; +import org.omg.sysml.model.sysml.LibraryPackage; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.LiteralInfinity; +import org.omg.sysml.model.sysml.LiteralInteger; +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.MultiplicityRange; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.Package; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.VisibilityKind; + +/** + * Invocation semantics tests for translated rules outside requested category groups. + */ +public class InvocationSemanticsOtherTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void controlNodeMultiplicityHasBoundsRule() throws Exception { + DecisionNode decisionNode = SysMLFactory.eINSTANCE.createDecisionNode(); + Multiplicity multiplicity = SysMLFactory.eINSTANCE.createMultiplicityRange(); + assertFalse((Boolean) semantics.invokeInvocation("ControlNode_multiplicityHasBounds_InvocationDelegate", + "ControlNode", "multiplicityHasBounds", 3, decisionNode, semantics.args(multiplicity, 1, 1))); + assertFalse(decisionNode.multiplicityHasBounds(multiplicity, 1, 1)); + } + + @Test + void libraryPackageLibraryNamespaceRule() throws Exception { + LibraryPackage libraryPackage = SysMLFactory.eINSTANCE.createLibraryPackage(); + assertSame(libraryPackage, semantics.invokeInvocation("LibraryPackage_libraryNamespace_InvocationDelegate", + "LibraryPackage", "libraryNamespace", 0, libraryPackage, null)); + assertSame(libraryPackage, libraryPackage.libraryNamespace()); + } + + @Test + void multiplicityRangeHasBoundsRule() throws Exception { + MultiplicityRange multiplicityRange = SysMLFactory.eINSTANCE.createMultiplicityRange(); + assertFalse((Boolean) semantics.invokeInvocation("MultiplicityRange_hasBounds_InvocationDelegate", + "MultiplicityRange", "hasBounds", 2, multiplicityRange, semantics.args(1, 1))); + assertFalse(multiplicityRange.hasBounds(1, 1)); + } + + @Test + void multiplicityRangeValueOfRule() throws Exception { + MultiplicityRange multiplicityRange = SysMLFactory.eINSTANCE.createMultiplicityRange(); + assertEquals(Integer.MIN_VALUE, semantics.invokeInvocation("MultiplicityRange_valueOf_InvocationDelegate", + "MultiplicityRange", "valueOf", 1, multiplicityRange, semantics.args((Object) null))); + assertEquals(Integer.MIN_VALUE, multiplicityRange.valueOf(null)); + } + + @Test + void multiplicityRangeValueOfWithLiteralIntegerRule() throws Exception { + var multiplicityRange = SysMLFactory.eINSTANCE.createMultiplicityRange(); + LiteralInteger bound = SysMLFactory.eINSTANCE.createLiteralInteger(); + bound.setValue(3); + assertEquals(3, semantics.invokeInvocation("MultiplicityRange_valueOf_InvocationDelegate", + "MultiplicityRange", "valueOf", 1, multiplicityRange, semantics.args(bound))); + assertEquals(3, multiplicityRange.valueOf(bound)); + } + + @Test + void multiplicityRangeValueOfWithLiteralInfinityRule() throws Exception { + var multiplicityRange = SysMLFactory.eINSTANCE.createMultiplicityRange(); + LiteralInfinity bound = SysMLFactory.eINSTANCE.createLiteralInfinity(); + assertEquals(-1, semantics.invokeInvocation("MultiplicityRange_valueOf_InvocationDelegate", + "MultiplicityRange", "valueOf", 1, multiplicityRange, semantics.args(bound))); + assertEquals(-1, multiplicityRange.valueOf(bound)); + } + + @Test + void namespaceMembershipsOfVisibilityRule() throws Exception { + Package namespace = SysMLFactory.eINSTANCE.createPackage(); + var excluded = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("Namespace_membershipsOfVisibility_InvocationDelegate", + "Namespace", "membershipsOfVisibility", 2, namespace, semantics.args((Object) null, semantics.args()))).isEmpty()); + assertTrue(namespace.membershipsOfVisibility(null, excluded).isEmpty()); + } + + @Test + void namespaceNamesOfRule() throws Exception { + Package namespace = SysMLFactory.eINSTANCE.createPackage(); + Comment element = SysMLFactory.eINSTANCE.createComment(); + assertTrue(((EList) semantics.invokeInvocation("Namespace_namesOf_InvocationDelegate", + "Namespace", "namesOf", 1, namespace, semantics.args(element))).isEmpty()); + assertTrue(namespace.namesOf(element).isEmpty()); + } + + @Test + void namespaceResolveVisibleRule() throws Exception { + Package namespace = SysMLFactory.eINSTANCE.createPackage(); + assertNull(semantics.invokeInvocation("Namespace_resolveVisible_InvocationDelegate", + "Namespace", "resolveVisible", 1, namespace, semantics.args("missingName"))); + assertNull(namespace.resolveVisible("missingName")); + } + + @Test + void namespaceResolveRule() throws Exception { + Package namespace = SysMLFactory.eINSTANCE.createPackage(); + assertNull(semantics.invokeInvocation("Namespace_resolve_InvocationDelegate", + "Namespace", "resolve", 1, namespace, semantics.args("missing::name"))); + assertNull(namespace.resolve("missing::name")); + } + + @Test + void namespaceResolveLocalRule() throws Exception { + Package namespace = SysMLFactory.eINSTANCE.createPackage(); + assertNull(semantics.invokeInvocation("Namespace_resolveLocal_InvocationDelegate", + "Namespace", "resolveLocal", 1, namespace, semantics.args("missing"))); + assertNull(namespace.resolveLocal("missing")); + } + + @Test + void namespaceUnqualifiedNameOfFallbackRule() throws Exception { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + assertNull(semantics.invokeInvocation("Namespace_unqualifiedNameOf_InvocationDelegate", + "Namespace", "unqualifiedNameOf", 1, namespace, semantics.args("a::b"))); + assertNull(namespace.unqualifiedNameOf("a::b")); + } + + @Test + void packageImportedMembershipsRule() throws Exception { + Package packageElement = SysMLFactory.eINSTANCE.createPackage(); + var excluded = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("Package_importedMemberships_InvocationDelegate", + "Package", "importedMemberships", 1, packageElement, semantics.args(semantics.args()))).isEmpty()); + assertTrue(packageElement.importedMemberships(excluded).isEmpty()); + } + + @Test + void packageIncludeAsMemberRule() throws Exception { + Package packageElement = SysMLFactory.eINSTANCE.createPackage(); + Comment element = SysMLFactory.eINSTANCE.createComment(); + assertTrue((Boolean) semantics.invokeInvocation("Package_includeAsMember_InvocationDelegate", + "Package", "includeAsMember", 1, packageElement, semantics.args(element))); + assertTrue(packageElement.includeAsMember(element)); + } + + @Test + void packageIncludeAsMemberWithNullElementRule() throws Exception { + var packageElement = SysMLFactory.eINSTANCE.createPackage(); + assertFalse((Boolean) semantics.invokeInvocation("Package_includeAsMember_InvocationDelegate", + "Package", "includeAsMember", 1, packageElement, semantics.args((Object) null))); + assertFalse(packageElement.includeAsMember(null)); + } + + @Test + void namespaceImportedMembershipsRule() throws Exception { + Package namespace = SysMLFactory.eINSTANCE.createPackage(); + var excluded = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("Namespace_importedMemberships_InvocationDelegate", + "Namespace", "importedMemberships", 1, namespace, semantics.args(semantics.args()))).isEmpty()); + assertTrue(namespace.importedMemberships(excluded).isEmpty()); + } + + @Test + void namespaceVisibilityOfRule() throws Exception { + Package namespace = SysMLFactory.eINSTANCE.createPackage(); + Membership membership = SysMLFactory.eINSTANCE.createMembership(); + assertEquals(VisibilityKind.PRIVATE, semantics.invokeInvocation("Namespace_visibilityOf_InvocationDelegate", + "Namespace", "visibilityOf", 1, namespace, semantics.args(membership))); + assertEquals(VisibilityKind.PRIVATE, namespace.visibilityOf(membership)); + } + + @Test + void namespaceVisibleMembershipsRule() throws Exception { + Package namespace = SysMLFactory.eINSTANCE.createPackage(); + var excluded = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("Namespace_visibleMemberships_InvocationDelegate", + "Namespace", "visibleMemberships", 3, namespace, semantics.args(semantics.args(), Boolean.FALSE, Boolean.FALSE))) + .isEmpty()); + assertTrue(namespace.visibleMemberships(excluded, false, false).isEmpty()); + } + + @Test + void namespaceMembershipsOfVisibilityWithOwnedMembershipsRule() throws Exception { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var excluded = new BasicEList(); + var publicMembership = SysMLFactory.eINSTANCE.createMembership(); + publicMembership.setVisibility(VisibilityKind.PUBLIC); + var privateMembership = SysMLFactory.eINSTANCE.createMembership(); + privateMembership.setVisibility(VisibilityKind.PRIVATE); + namespace.getOwnedRelationship().add(publicMembership); + namespace.getOwnedRelationship().add(privateMembership); + var result = (EList) semantics.invokeInvocation("Namespace_membershipsOfVisibility_InvocationDelegate", + "Namespace", "membershipsOfVisibility", 2, namespace, semantics.args(VisibilityKind.PUBLIC, semantics.args())); + assertEquals(1, result.size()); + assertSame(publicMembership, result.getFirst()); + var operationResult = namespace.membershipsOfVisibility(VisibilityKind.PUBLIC, excluded); + assertEquals(1, operationResult.size()); + assertSame(publicMembership, operationResult.getFirst()); + } + + @Test + void namespaceMembershipsOfVisibilityWithNullVisibilityRule() throws Exception { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var excluded = new BasicEList(); + var publicMembership = SysMLFactory.eINSTANCE.createMembership(); + publicMembership.setVisibility(VisibilityKind.PUBLIC); + var privateMembership = SysMLFactory.eINSTANCE.createMembership(); + privateMembership.setVisibility(VisibilityKind.PRIVATE); + namespace.getOwnedRelationship().add(publicMembership); + namespace.getOwnedRelationship().add(privateMembership); + var result = (EList) semantics.invokeInvocation("Namespace_membershipsOfVisibility_InvocationDelegate", + "Namespace", "membershipsOfVisibility", 2, namespace, semantics.args((Object) null, semantics.args())); + assertEquals(2, result.size()); + assertTrue(result.contains(publicMembership)); + assertTrue(result.contains(privateMembership)); + var operationResult = namespace.membershipsOfVisibility(null, excluded); + assertEquals(2, operationResult.size()); + assertTrue(operationResult.contains(publicMembership)); + assertTrue(operationResult.contains(privateMembership)); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsRelationshipTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsRelationshipTest.java new file mode 100644 index 000000000..d6d5ba72b --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsRelationshipTest.java @@ -0,0 +1,129 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.MembershipImport; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.NamespaceImport; +import org.omg.sysml.model.sysml.OwningMembership; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Invocation semantics tests for Relationship and Relationship-derived metaclasses. + */ +public class InvocationSemanticsRelationshipTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void membershipImportImportedMembershipsRule() throws Exception { + MembershipImport membershipImport = SysMLFactory.eINSTANCE.createMembershipImport(); + var excluded = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("MembershipImport_importedMemberships_InvocationDelegate", + "MembershipImport", "importedMemberships", 1, membershipImport, semantics.args(semantics.args()))).isEmpty()); + assertTrue(membershipImport.importedMemberships(excluded).isEmpty()); + } + + @Test + void membershipIsDistinguishableFromRule() throws Exception { + Membership membership = SysMLFactory.eINSTANCE.createMembership(); + Membership other = SysMLFactory.eINSTANCE.createMembership(); + assertTrue((Boolean) semantics.invokeInvocation("Membership_isDistinguishableFrom_InvocationDelegate", + "Membership", "isDistinguishableFrom", 1, membership, semantics.args(other))); + assertTrue(membership.isDistinguishableFrom(other)); + } + + @Test + void membershipIsDistinguishableFromWithConflictingNamesRule() throws Exception { + var membership = SysMLFactory.eINSTANCE.createMembership(); + var other = SysMLFactory.eINSTANCE.createMembership(); + membership.setMemberElement(SysMLFactory.eINSTANCE.createComment()); + other.setMemberElement(SysMLFactory.eINSTANCE.createComment()); + membership.setMemberShortName("x"); + other.setMemberName("x"); + assertFalse((Boolean) semantics.invokeInvocation("Membership_isDistinguishableFrom_InvocationDelegate", + "Membership", "isDistinguishableFrom", 1, membership, semantics.args(other))); + assertFalse(membership.isDistinguishableFrom(other)); + } + + @Test + void relationshipLibraryNamespaceRule() throws Exception { + Membership relationship = SysMLFactory.eINSTANCE.createMembership(); + assertNull(semantics.invokeInvocation("Relationship_libraryNamespace_InvocationDelegate", + "Relationship", "libraryNamespace", 0, relationship, null)); + assertNull(relationship.libraryNamespace()); + } + + @Test + void namespaceImportImportedMembershipsRule() throws Exception { + NamespaceImport namespaceImport = SysMLFactory.eINSTANCE.createNamespaceImport(); + var excluded = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("NamespaceImport_importedMemberships_InvocationDelegate", + "NamespaceImport", "importedMemberships", 1, namespaceImport, semantics.args(semantics.args()))).isEmpty()); + assertTrue(namespaceImport.importedMemberships(excluded).isEmpty()); + } + + @Test + void relationshipPathRule() throws Exception { + Membership relationship = SysMLFactory.eINSTANCE.createMembership(); + assertEquals("", semantics.invokeInvocation("Relationship_path_InvocationDelegate", + "Relationship", "path", 0, relationship, null)); + assertEquals("", relationship.path()); + } + + @Test + void relationshipPathWithOwningElementRule() throws Exception { + var owner = SysMLFactory.eINSTANCE.createComment(); + var relationship = SysMLFactory.eINSTANCE.createMembership(); + owner.getOwnedRelationship().add(relationship); + assertEquals("/1", semantics.invokeInvocation("Relationship_path_InvocationDelegate", + "Relationship", "path", 0, relationship, null)); + assertEquals("/1", relationship.path()); + } + + @Test + void owningMembershipPathRule() throws Exception { + OwningMembership owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + assertEquals("", semantics.invokeInvocation("OwningMembership_path_InvocationDelegate", + "OwningMembership", "path", 0, owningMembership, null)); + assertEquals("", owningMembership.path()); + } + + @Test + void owningMembershipPathWithOwningElementRule() throws Exception { + var owner = SysMLFactory.eINSTANCE.createComment(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + owner.getOwnedRelationship().add(owningMembership); + assertEquals("/1", semantics.invokeInvocation("OwningMembership_path_InvocationDelegate", + "OwningMembership", "path", 0, owningMembership, null)); + assertEquals("/1", owningMembership.path()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsTypeTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsTypeTest.java new file mode 100644 index 000000000..9493b8f11 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsTypeTest.java @@ -0,0 +1,178 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.Type; + +/** + * Invocation semantics tests for Type and Type-derived metaclasses. + */ +public class InvocationSemanticsTypeTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void typeAllSupertypesRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + EList result = (EList) semantics.invokeInvocation("Type_allSupertypes_InvocationDelegate", + "Type", "allSupertypes", 0, type, null); + assertEquals(1, result.size()); + assertTrue(result.contains(type)); + var operationResult = type.allSupertypes(); + assertEquals(1, operationResult.size()); + assertTrue(operationResult.contains(type)); + } + + @Test + void typeDirectionOfRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.invokeInvocation("Type_directionOf_InvocationDelegate", + "Type", "directionOf", 1, type, semantics.args(feature))); + assertNull(type.directionOf(feature)); + } + + @Test + void typeInheritedMembershipsRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + var excluded = new BasicEList(); + var excludedFeatures = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("Type_inheritedMemberships_InvocationDelegate", + "Type", "inheritedMemberships", 3, type, semantics.args(semantics.args(), semantics.args(), Boolean.FALSE))) + .isEmpty()); + assertTrue(type.inheritedMemberships(excluded, excludedFeatures, false).isEmpty()); + } + + @Test + void typeMultiplicitiesRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + assertTrue(((EList) semantics.invokeInvocation("Type_multiplicities_InvocationDelegate", + "Type", "multiplicities", 0, type, null)).isEmpty()); + assertTrue(type.multiplicities().isEmpty()); + } + + @Test + void typeAllRedefinedFeaturesOfRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + Membership membership = SysMLFactory.eINSTANCE.createMembership(); + assertTrue(((EList) semantics.invokeInvocation("Type_allRedefinedFeaturesOf_InvocationDelegate", + "Type", "allRedefinedFeaturesOf", 1, type, semantics.args(membership))).isEmpty()); + assertTrue(type.allRedefinedFeaturesOf(membership).isEmpty()); + } + + @Test + void typeSpecializesRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + ActionUsage supertype = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Type_specializes_InvocationDelegate", + "Type", "specializes", 1, type, semantics.args(supertype))); + assertFalse(type.specializes(supertype)); + } + + @Test + void typeIsCompatibleWithRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + ActionUsage otherType = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Type_isCompatibleWith_InvocationDelegate", + "Type", "isCompatibleWith", 1, type, semantics.args(otherType))); + assertFalse(type.isCompatibleWith(otherType)); + } + + @Test + void typeSupertypesRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + assertTrue(((EList) semantics.invokeInvocation("Type_supertypes_InvocationDelegate", + "Type", "supertypes", 1, type, semantics.args(Boolean.FALSE))).isEmpty()); + assertTrue(type.supertypes(false).isEmpty()); + } + + @Test + void typeSpecializesFromLibraryRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("Type_specializesFromLibrary_InvocationDelegate", + "Type", "specializesFromLibrary", 1, type, semantics.args("Non::Existing::Type"))); + assertFalse(type.specializesFromLibrary("Non::Existing::Type")); + } + + @Test + void typeNonPrivateMembershipsRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + var excluded = new BasicEList(); + var excludedFeatures = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("Type_nonPrivateMemberships_InvocationDelegate", + "Type", "nonPrivateMemberships", 3, type, semantics.args(semantics.args(), semantics.args(), Boolean.FALSE))) + .isEmpty()); + assertTrue(type.nonPrivateMemberships(excluded, excludedFeatures, false).isEmpty()); + } + + @Test + void typeVisibleMembershipsRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + var excluded = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("Type_visibleMemberships_InvocationDelegate", + "Type", "visibleMemberships", 3, type, semantics.args(semantics.args(), Boolean.FALSE, Boolean.FALSE))) + .isEmpty()); + assertTrue(type.visibleMemberships(excluded, false, false).isEmpty()); + } + + @Test + void typeDirectionOfExcludingRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + var excluded = new BasicEList(); + assertNull(semantics.invokeInvocation("Type_directionOfExcluding_InvocationDelegate", + "Type", "directionOfExcluding", 2, type, semantics.args(feature, semantics.args()))); + assertNull(type.directionOfExcluding(feature, excluded)); + } + + @Test + void typeInheritableMembershipsRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + var excluded = new BasicEList(); + var excludedFeatures = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("Type_inheritableMemberships_InvocationDelegate", + "Type", "inheritableMemberships", 3, type, semantics.args(semantics.args(), semantics.args(), Boolean.FALSE))) + .isEmpty()); + assertTrue(type.inheritableMemberships(excluded, excludedFeatures, false).isEmpty()); + } + + @Test + void typeRemoveRedefinedFeaturesRule() throws Exception { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + var memberships = new BasicEList(); + assertTrue(((EList) semantics.invokeInvocation("Type_removeRedefinedFeatures_InvocationDelegate", + "Type", "removeRedefinedFeatures", 1, type, semantics.args(semantics.args()))).isEmpty()); + assertTrue(type.removeRedefinedFeatures(memberships).isEmpty()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsUsageTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsUsageTest.java new file mode 100644 index 000000000..703b95302 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/invocation/InvocationSemanticsUsageTest.java @@ -0,0 +1,199 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.Comment; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.PerformActionUsage; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.TransitionUsage; +import org.omg.sysml.model.sysml.ViewUsage; + +/** + * Invocation semantics tests for Usage and Usage-derived metaclasses. + */ +public class InvocationSemanticsUsageTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void acceptActionUsageIsTriggerActionRule() throws Exception { + AcceptActionUsage acceptActionUsage = SysMLFactory.eINSTANCE.createAcceptActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("AcceptActionUsage_isTriggerAction_InvocationDelegate", + "AcceptActionUsage", "isTriggerAction", 0, acceptActionUsage, null)); + assertFalse(acceptActionUsage.isTriggerAction()); + } + + @Test + void actionUsageArgumentRule() throws Exception { + ActionUsage actionUsage = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.invokeInvocation("ActionUsage_argument_InvocationDelegate", + "ActionUsage", "argument", 1, actionUsage, semantics.intArg(1))); + assertNull(actionUsage.argument(1)); + } + + @Test + void actionUsageInputParameterRule() throws Exception { + ActionUsage actionUsage = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.invokeInvocation("ActionUsage_inputParameter_InvocationDelegate", + "ActionUsage", "inputParameter", 1, actionUsage, semantics.intArg(1))); + assertNull(actionUsage.inputParameter(1)); + } + + @Test + void actionUsageInputParametersRule() throws Exception { + ActionUsage actionUsage = SysMLFactory.eINSTANCE.createActionUsage(); + assertTrue(((EList) semantics.invokeInvocation("ActionUsage_inputParameters_InvocationDelegate", + "ActionUsage", "inputParameters", 0, actionUsage, null)).isEmpty()); + assertTrue(actionUsage.inputParameters().isEmpty()); + } + + @Test + void actionUsageIsSubactionUsageRule() throws Exception { + ActionUsage actionUsage = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.invokeInvocation("ActionUsage_isSubactionUsage_InvocationDelegate", + "ActionUsage", "isSubactionUsage", 0, actionUsage, null)); + assertFalse(actionUsage.isSubactionUsage()); + } + + @Test + void actionUsageIsSubactionUsageCompositeOwnedByActionRule() throws Exception { + var actionUsage = SysMLFactory.eINSTANCE.createActionUsage(); + actionUsage.setIsComposite(true); + assertFalse((Boolean) semantics.invokeInvocation("ActionUsage_isSubactionUsage_InvocationDelegate", + "ActionUsage", "isSubactionUsage", 0, actionUsage, null)); + assertFalse(actionUsage.isSubactionUsage()); + } + + @Test + void calculationUsageModelLevelEvaluableRule() throws Exception { + CalculationUsage calculationUsage = SysMLFactory.eINSTANCE.createCalculationUsage(); + var visited = new BasicEList(); + assertFalse((Boolean) semantics.invokeInvocation("CalculationUsage_modelLevelEvaluable_InvocationDelegate", + "CalculationUsage", "modelLevelEvaluable", 1, calculationUsage, semantics.args(visited))); + assertFalse(calculationUsage.modelLevelEvaluable(visited)); + } + + @Test + void constraintUsageModelLevelEvaluableRule() throws Exception { + ConstraintUsage constraintUsage = SysMLFactory.eINSTANCE.createConstraintUsage(); + var visited = new BasicEList(); + assertFalse((Boolean) semantics.invokeInvocation("ConstraintUsage_modelLevelEvaluable_InvocationDelegate", + "ConstraintUsage", "modelLevelEvaluable", 1, constraintUsage, semantics.args(visited))); + assertFalse(constraintUsage.modelLevelEvaluable(visited)); + } + + @Test + void constraintUsageNamingFeatureRule() throws Exception { + ConstraintUsage constraintUsage = SysMLFactory.eINSTANCE.createConstraintUsage(); + assertNull(semantics.invokeInvocation("ConstraintUsage_namingFeature_InvocationDelegate", + "ConstraintUsage", "namingFeature", 0, constraintUsage, null)); + assertNull(constraintUsage.namingFeature()); + } + + @Test + void viewUsageIncludeAsExposedRule() throws Exception { + ViewUsage viewUsage = SysMLFactory.eINSTANCE.createViewUsage(); + Comment element = SysMLFactory.eINSTANCE.createComment(); + assertTrue((Boolean) semantics.invokeInvocation("ViewUsage_includeAsExposed_InvocationDelegate", + "ViewUsage", "includeAsExposed", 1, viewUsage, semantics.args(element))); + assertTrue(viewUsage.includeAsExposed(element)); + } + + @Test + void stateUsageIsSubstateUsageRule() throws Exception { + StateUsage stateUsage = SysMLFactory.eINSTANCE.createStateUsage(); + assertFalse((Boolean) semantics.invokeInvocation("StateUsage_isSubstateUsage_InvocationDelegate", + "StateUsage", "isSubstateUsage", 1, stateUsage, semantics.args(Boolean.FALSE))); + assertFalse(stateUsage.isSubstateUsage(false)); + } + + @Test + void stateUsageIsSubstateUsageCompositeOwnedByStateDefinitionRule() throws Exception { + var stateUsage = SysMLFactory.eINSTANCE.createStateUsage(); + stateUsage.setIsComposite(true); + assertFalse((Boolean) semantics.invokeInvocation("StateUsage_isSubstateUsage_InvocationDelegate", + "StateUsage", "isSubstateUsage", 1, stateUsage, semantics.args(Boolean.FALSE))); + assertFalse(stateUsage.isSubstateUsage(false)); + } + + @Test + void transitionUsageSourceFeatureRule() throws Exception { + TransitionUsage transitionUsage = SysMLFactory.eINSTANCE.createTransitionUsage(); + assertNull(semantics.invokeInvocation("TransitionUsage_sourceFeature_InvocationDelegate", + "TransitionUsage", "sourceFeature", 0, transitionUsage, null)); + assertNull(transitionUsage.sourceFeature()); + } + + @Test + void transitionUsageTriggerPayloadParameterRule() throws Exception { + TransitionUsage transitionUsage = SysMLFactory.eINSTANCE.createTransitionUsage(); + assertNull(semantics.invokeInvocation("TransitionUsage_triggerPayloadParameter_InvocationDelegate", + "TransitionUsage", "triggerPayloadParameter", 0, transitionUsage, null)); + assertNull(transitionUsage.triggerPayloadParameter()); + } + + @Test + void usageNamingFeatureRule() throws Exception { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.invokeInvocation("Usage_namingFeature_InvocationDelegate", + "Usage", "namingFeature", 0, usage, null)); + assertNull(usage.namingFeature()); + } + + @Test + void usageReferencedFeatureTargetRule() throws Exception { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.invokeInvocation("Usage_referencedFeatureTarget_InvocationDelegate", + "Usage", "referencedFeatureTarget", 0, usage, null)); + assertNull(usage.referencedFeatureTarget()); + } + + @Test + void performActionUsageNamingFeatureRule() throws Exception { + PerformActionUsage performActionUsage = SysMLFactory.eINSTANCE.createPerformActionUsage(); + assertNull(semantics.invokeInvocation("PerformActionUsage_namingFeature_InvocationDelegate", + "PerformActionUsage", "namingFeature", 0, performActionUsage, null)); + assertNull(performActionUsage.namingFeature()); + } + + @Test + void referenceUsageNamingFeatureRule() throws Exception { + ReferenceUsage referenceUsage = SysMLFactory.eINSTANCE.createReferenceUsage(); + assertNull(semantics.invokeInvocation("ReferenceUsage_namingFeature_InvocationDelegate", + "ReferenceUsage", "namingFeature", 0, referenceUsage, null)); + assertNull(referenceUsage.namingFeature()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/PlaceholderSettingDelegateBehaviorTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/PlaceholderSettingDelegateBehaviorTest.java new file mode 100644 index 000000000..20e7b7ae4 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/PlaceholderSettingDelegateBehaviorTest.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * Behavior regression tests for setting delegates still using placeholder fallback implementations. + */ +public class PlaceholderSettingDelegateBehaviorTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void placeholderDelegatesKeepNeutralDefaultBehavior() { + assertNeutralDefault("Feature", "owningType"); + assertNeutralDefault("CalculationDefinition", "calculation"); + assertNeutralDefault("Annotation", "owningAnnotatingElement"); + assertNeutralDefault("AnnotatingElement", "owningAnnotatingRelationship"); + assertNeutralDefault("MetadataAccessExpression", "referencedElement"); + assertNeutralDefault("OwningMembership", "ownedMemberElement"); + } + + private void assertNeutralDefault(String eClassName, String featureName) { + var owner = createOwner(eClassName); + var feature = findFeature(eClassName, featureName); + var value = semantics.evaluateSetting(eClassName, featureName, owner); + + if (feature.isMany()) { + assertNotNull(value, () -> eClassName + "." + featureName + " must not return null for multi-valued feature"); + assertTrue(value instanceof EList, () -> eClassName + "." + featureName + " must return an EList"); + assertTrue(((EList) value).isEmpty(), () -> eClassName + "." + featureName + " must return an empty list"); + } else { + assertNull(value, () -> eClassName + "." + featureName + " must return null"); + } + } + + private Object createOwner(String eClassName) { + var eClass = (EClass) SysMLPackage.eINSTANCE.getEClassifier(eClassName); + return SysMLFactory.eINSTANCE.create(eClass); + } + + private EStructuralFeature findFeature(String eClassName, String featureName) { + var eClass = (EClass) SysMLPackage.eINSTANCE.getEClassifier(eClassName); + for (var feature : eClass.getEAllStructuralFeatures()) { + if (featureName.equals(feature.getName())) { + return feature; + } + } + throw new IllegalStateException("Feature not found: " + eClassName + "." + featureName); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingDelegateContractSmokeTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingDelegateContractSmokeTest.java new file mode 100644 index 000000000..df990fdbc --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingDelegateContractSmokeTest.java @@ -0,0 +1,142 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.List; +import java.util.function.Supplier; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * Contract-level smoke test for setting delegates that still rely on generated fallback patterns. + * + *

Purpose: + * this test verifies delegate runtime contracts only, not business semantics. + * For a representative set of fallback-oriented setting delegates, it checks that evaluating the setting: + * returns an {@link EList} for multi-valued features, + * returns either {@code null} or a value compatible with the feature Java type for single-valued features, + * and never violates basic EMF type expectations. + * + *

What this test does not validate: + * it does not prove that returned values are semantically correct according to SysML/OCL rules. + * Semantic correctness is covered by the dedicated {@code SettingSemantics*Test} suites. + */ +public class SettingDelegateContractSmokeTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void fallbackContractRemainsTypeSafeForRepresentativeFeatures() { + var cases = List.of( + new SettingCase("AllocationUsage", "allocationDefinition", + () -> SysMLFactory.eINSTANCE.createAllocationUsage()), + new SettingCase("ConnectionUsage", "connectionDefinition", + () -> SysMLFactory.eINSTANCE.createConnectionUsage()), + new SettingCase("Usage", "owningDefinition", + () -> SysMLFactory.eINSTANCE.createActionUsage()), + new SettingCase("VerificationCaseUsage", "verificationCaseDefinition", + () -> SysMLFactory.eINSTANCE.createVerificationCaseUsage()), + new SettingCase("Feature", "owningFeatureMembership", + () -> SysMLFactory.eINSTANCE.createActionUsage()), + new SettingCase("FeatureTyping", "owningFeature", + () -> SysMLFactory.eINSTANCE.createFeatureTyping()), + new SettingCase("Behavior", "parameter", + () -> SysMLFactory.eINSTANCE.createBehavior()), + new SettingCase("Function", "expression", + () -> SysMLFactory.eINSTANCE.createFunction()), + new SettingCase("Documentation", "documentedElement", + () -> SysMLFactory.eINSTANCE.createDocumentation()), + new SettingCase("Element", "owningMembership", + () -> SysMLFactory.eINSTANCE.createComment()), + new SettingCase("Association", "associationEnd", + () -> SysMLFactory.eINSTANCE.createAssociationStructure()), + new SettingCase("OwningMembership", "ownedMemberElement", + () -> SysMLFactory.eINSTANCE.createOwningMembership()), + new SettingCase("RequirementConstraintMembership", "referencedConstraint", + () -> SysMLFactory.eINSTANCE.createRequirementConstraintMembership()), + new SettingCase("Conjugation", "owningType", + () -> SysMLFactory.eINSTANCE.createConjugation()), + new SettingCase("Intersecting", "typeIntersected", + () -> SysMLFactory.eINSTANCE.createIntersecting()), + new SettingCase("Differencing", "typeDifferenced", + () -> SysMLFactory.eINSTANCE.createDifferencing())); + + for (var settingCase : cases) { + assertSettingContract(settingCase.className(), settingCase.featureName(), settingCase.ownerFactory().get()); + } + } + + private void assertSettingContract(String className, String featureName, Object owner) { + var value = semantics.evaluateSetting(className, featureName, owner); + var feature = findFeature(className, featureName); + if (feature.isMany()) { + assertNotNull(value, className + "." + featureName + " should return a list"); + assertTrue(value instanceof EList, className + "." + featureName + " should return EList"); + return; + } + if (value == null) { + return; + } + var instanceClass = feature.getEType().getInstanceClass(); + if (instanceClass != null) { + assertTrue(wrapPrimitive(instanceClass).isInstance(value), + className + "." + featureName + " returned incompatible value type: " + value.getClass().getName()); + } + } + + private EStructuralFeature findFeature(String className, String featureName) { + var classifier = SysMLPackage.eINSTANCE.getEClassifier(className); + assertTrue(classifier instanceof EClass, "Unknown EClass: " + className); + var eClass = (EClass) classifier; + for (var feature : eClass.getEAllStructuralFeatures()) { + if (featureName.equals(feature.getName())) { + return feature; + } + } + throw new IllegalStateException("Feature not found: " + className + "." + featureName); + } + + private Class wrapPrimitive(Class type) { + if (!type.isPrimitive()) { + return type; + } + if (type == Boolean.TYPE) { + return Boolean.class; + } + if (type == Integer.TYPE) { + return Integer.class; + } + if (type == Long.TYPE) { + return Long.class; + } + if (type == Double.TYPE) { + return Double.class; + } + if (type == Float.TYPE) { + return Float.class; + } + if (type == Character.TYPE) { + return Character.class; + } + if (type == Byte.TYPE) { + return Byte.class; + } + if (type == Short.TYPE) { + return Short.class; + } + return type; + } + + private record SettingCase(String className, String featureName, Supplier ownerFactory) { + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsDefinitionTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsDefinitionTest.java new file mode 100644 index 000000000..edbbceae1 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsDefinitionTest.java @@ -0,0 +1,553 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Setting semantics tests for Definition and Definition-derived metaclasses. + */ +public class SettingSemanticsDefinitionTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void useCaseDefinitionIncludedUseCaseSettingRule() { + var useCaseDefinition = SysMLFactory.eINSTANCE.createUseCaseDefinition(); + EList result = (EList) semantics.evaluateSetting( + "UseCaseDefinition", "includedUseCase", useCaseDefinition); + assertTrue(result.isEmpty()); + assertTrue(useCaseDefinition.getIncludedUseCase().isEmpty()); + } + + @Test + void caseDefinitionSubjectParameterSettingRule() { + var caseDefinition = SysMLFactory.eINSTANCE.createCaseDefinition(); + assertNull(semantics.evaluateSetting("CaseDefinition", "subjectParameter", caseDefinition)); + assertNull(caseDefinition.getSubjectParameter()); + } + + @Test + void allocationDefinitionAllocationSettingRule() { + var allocationDefinition = SysMLFactory.eINSTANCE.createAllocationDefinition(); + EList result = (EList) semantics.evaluateSetting( + "AllocationDefinition", "allocation", allocationDefinition); + assertTrue(result.isEmpty()); + assertTrue(allocationDefinition.getAllocation().isEmpty()); + } + + @Test + void requirementDefinitionStakeholderParameterSettingRule() { + var requirementDefinition = SysMLFactory.eINSTANCE.createRequirementDefinition(); + EList result = (EList) semantics.evaluateSetting( + "RequirementDefinition", "stakeholderParameter", requirementDefinition); + assertTrue(result.isEmpty()); + assertTrue(requirementDefinition.getStakeholderParameter().isEmpty()); + } + + @Test + void viewpointDefinitionViewpointStakeholderSettingRule() { + var viewpointDefinition = SysMLFactory.eINSTANCE.createViewpointDefinition(); + EList result = (EList) semantics.evaluateSetting( + "ViewpointDefinition", "viewpointStakeholder", viewpointDefinition); + assertTrue(result.isEmpty()); + assertTrue(viewpointDefinition.getViewpointStakeholder().isEmpty()); + } + + @Test + void viewDefinitionViewConditionSettingRule() { + var viewDefinition = SysMLFactory.eINSTANCE.createViewDefinition(); + EList result = (EList) semantics.evaluateSetting("ViewDefinition", "viewCondition", viewDefinition); + assertTrue(result.isEmpty()); + assertTrue(viewDefinition.getViewCondition().isEmpty()); + } + + @Test + void requirementDefinitionAssumedConstraintSettingRule() { + var requirementDefinition = SysMLFactory.eINSTANCE.createRequirementDefinition(); + EList result = (EList) semantics.evaluateSetting( + "RequirementDefinition", "assumedConstraint", requirementDefinition); + assertTrue(result.isEmpty()); + assertTrue(requirementDefinition.getAssumedConstraint().isEmpty()); + } + + @Test + void caseDefinitionActorParameterSettingRule() { + var caseDefinition = SysMLFactory.eINSTANCE.createCaseDefinition(); + EList result = (EList) semantics.evaluateSetting("CaseDefinition", "actorParameter", caseDefinition); + assertTrue(result.isEmpty()); + assertTrue(caseDefinition.getActorParameter().isEmpty()); + } + + @Test + void caseDefinitionObjectiveRequirementSettingRule() { + var caseDefinition = SysMLFactory.eINSTANCE.createCaseDefinition(); + assertNull(semantics.evaluateSetting("CaseDefinition", "objectiveRequirement", caseDefinition)); + assertNull(caseDefinition.getObjectiveRequirement()); + } + + @Test + void stateDefinitionDoActionSettingRule() { + var stateDefinition = SysMLFactory.eINSTANCE.createStateDefinition(); + assertNull(semantics.evaluateSetting("StateDefinition", "doAction", stateDefinition)); + assertNull(stateDefinition.getDoAction()); + } + + @Test + void stateDefinitionExitActionSettingRule() { + var stateDefinition = SysMLFactory.eINSTANCE.createStateDefinition(); + assertNull(semantics.evaluateSetting("StateDefinition", "exitAction", stateDefinition)); + assertNull(stateDefinition.getExitAction()); + } + + @Test + void stateDefinitionStateSettingRule() { + var stateDefinition = SysMLFactory.eINSTANCE.createStateDefinition(); + var result = (EList) semantics.evaluateSetting("StateDefinition", "state", stateDefinition); + assertTrue(result.isEmpty()); + assertTrue(stateDefinition.getState().isEmpty()); + } + + @Test + void definitionOwnedRenderingSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + EList result = (EList) semantics.evaluateSetting("Definition", "ownedRendering", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedRendering().isEmpty()); + } + + @Test + void definitionOwnedUsageSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + EList result = (EList) semantics.evaluateSetting("Definition", "ownedUsage", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedUsage().isEmpty()); + } + + @Test + void definitionOwnedActionSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedAction", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedAction().isEmpty()); + } + + @Test + void definitionOwnedAnalysisCaseSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedAnalysisCase", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedAnalysisCase().isEmpty()); + } + + @Test + void definitionOwnedAllocationSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedAllocation", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedAllocation().isEmpty()); + } + + @Test + void definitionOwnedAttributeSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedAttribute", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedAttribute().isEmpty()); + } + + @Test + void definitionOwnedCalculationSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedCalculation", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedCalculation().isEmpty()); + } + + @Test + void definitionOwnedCaseSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedCase", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedCase().isEmpty()); + } + + @Test + void definitionOwnedConcernSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedConcern", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedConcern().isEmpty()); + } + + @Test + void definitionOwnedConnectionSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedConnection", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedConnection().isEmpty()); + } + + @Test + void definitionOwnedConstraintSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedConstraint", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedConstraint().isEmpty()); + } + + @Test + void definitionOwnedInterfaceSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedInterface", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedInterface().isEmpty()); + } + + @Test + void definitionOwnedEnumerationSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedEnumeration", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedEnumeration().isEmpty()); + } + + @Test + void definitionOwnedFlowSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedFlow", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedFlow().isEmpty()); + } + + @Test + void definitionOwnedItemSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedItem", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedItem().isEmpty()); + } + + @Test + void definitionOwnedMetadataSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedMetadata", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedMetadata().isEmpty()); + } + + @Test + void definitionOwnedOccurrenceSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedOccurrence", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedOccurrence().isEmpty()); + } + + @Test + void definitionOwnedPartSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedPart", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedPart().isEmpty()); + } + + @Test + void definitionOwnedPortSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedPort", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedPort().isEmpty()); + } + + @Test + void definitionOwnedReferenceSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedReference", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedReference().isEmpty()); + } + + @Test + void definitionOwnedRequirementSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedRequirement", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedRequirement().isEmpty()); + } + + @Test + void definitionOwnedStateSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedState", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedState().isEmpty()); + } + + @Test + void definitionOwnedTransitionSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedTransition", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedTransition().isEmpty()); + } + + @Test + void definitionOwnedUseCaseSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedUseCase", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedUseCase().isEmpty()); + } + + @Test + void definitionOwnedVerificationCaseSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedVerificationCase", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedVerificationCase().isEmpty()); + } + + @Test + void definitionOwnedViewSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedView", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedView().isEmpty()); + } + + @Test + void definitionOwnedViewpointSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "ownedViewpoint", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getOwnedViewpoint().isEmpty()); + } + + @Test + void definitionUsageSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "usage", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getUsage().isEmpty()); + } + + @Test + void definitionDirectedUsageSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "directedUsage", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getDirectedUsage().isEmpty()); + } + + @Test + void definitionVariantMembershipSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "variantMembership", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getVariantMembership().isEmpty()); + } + + @Test + void definitionVariantSettingRule() { + var definition = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Definition", "variant", definition); + assertTrue(result.isEmpty()); + assertTrue(definition.getVariant().isEmpty()); + } + + @Test + void enumerationDefinitionEnumeratedValueSettingRule() { + var enumerationDefinition = SysMLFactory.eINSTANCE.createEnumerationDefinition(); + + var enumVariantMembership = SysMLFactory.eINSTANCE.createVariantMembership(); + var enumeratedValue = SysMLFactory.eINSTANCE.createEnumerationUsage(); + enumVariantMembership.setMemberElement(enumeratedValue); + enumerationDefinition.getOwnedRelationship().add(enumVariantMembership); + + var nonEnumVariantMembership = SysMLFactory.eINSTANCE.createVariantMembership(); + nonEnumVariantMembership.setMemberElement(SysMLFactory.eINSTANCE.createPartUsage()); + enumerationDefinition.getOwnedRelationship().add(nonEnumVariantMembership); + + var result = (EList) semantics.evaluateSetting( + "EnumerationDefinition", "enumeratedValue", enumerationDefinition); + assertEquals(1, result.size()); + assertSame(enumeratedValue, result.getFirst()); + } + + @Test + void viewDefinitionViewSettingRule() { + var viewDefinition = SysMLFactory.eINSTANCE.createViewDefinition(); + var result = (EList) semantics.evaluateSetting("ViewDefinition", "view", viewDefinition); + assertTrue(result.isEmpty()); + assertTrue(viewDefinition.getView().isEmpty()); + } + + @Test + void requirementDefinitionActorParameterSettingRule() { + var requirementDefinition = SysMLFactory.eINSTANCE.createRequirementDefinition(); + var result = (EList) semantics.evaluateSetting("RequirementDefinition", "actorParameter", requirementDefinition); + assertTrue(result.isEmpty()); + assertTrue(requirementDefinition.getActorParameter().isEmpty()); + } + + @Test + void requirementDefinitionRequiredConstraintSettingRule() { + var requirementDefinition = SysMLFactory.eINSTANCE.createRequirementDefinition(); + var result = (EList) semantics.evaluateSetting( + "RequirementDefinition", "requiredConstraint", requirementDefinition); + assertTrue(result.isEmpty()); + assertTrue(requirementDefinition.getRequiredConstraint().isEmpty()); + } + + @Test + void requirementDefinitionSubjectParameterSettingRule() { + var requirementDefinition = SysMLFactory.eINSTANCE.createRequirementDefinition(); + assertNull(semantics.evaluateSetting("RequirementDefinition", "subjectParameter", requirementDefinition)); + assertNull(requirementDefinition.getSubjectParameter()); + } + + @Test + void requirementDefinitionFramedConcernSettingRule() { + var requirementDefinition = SysMLFactory.eINSTANCE.createRequirementDefinition(); + var result = (EList) semantics.evaluateSetting("RequirementDefinition", "framedConcern", requirementDefinition); + assertTrue(result.isEmpty()); + assertTrue(requirementDefinition.getFramedConcern().isEmpty()); + } + + @Test + void requirementDefinitionTextSettingRule() { + var requirementDefinition = SysMLFactory.eINSTANCE.createRequirementDefinition(); + var result = (EList) semantics.evaluateSetting("RequirementDefinition", "text", requirementDefinition); + assertTrue(result.isEmpty()); + assertTrue(requirementDefinition.getText().isEmpty()); + } + + @Test + void viewDefinitionSatisfiedViewpointSettingRule() { + var viewDefinition = SysMLFactory.eINSTANCE.createViewDefinition(); + var result = (EList) semantics.evaluateSetting("ViewDefinition", "satisfiedViewpoint", viewDefinition); + assertTrue(result.isEmpty()); + assertTrue(viewDefinition.getSatisfiedViewpoint().isEmpty()); + } + + @Test + void viewDefinitionViewRenderingSettingRule() { + var viewDefinition = SysMLFactory.eINSTANCE.createViewDefinition(); + assertNull(semantics.evaluateSetting("ViewDefinition", "viewRendering", viewDefinition)); + assertNull(viewDefinition.getViewRendering()); + } + + @Test + void analysisCaseDefinitionResultExpressionSettingRule() { + var analysisCaseDefinition = SysMLFactory.eINSTANCE.createAnalysisCaseDefinition(); + assertNull(semantics.evaluateSetting("AnalysisCaseDefinition", "resultExpression", analysisCaseDefinition)); + assertNull(analysisCaseDefinition.getResultExpression()); + } + + @Test + void verificationCaseDefinitionVerifiedRequirementSettingRule() { + var verificationCaseDefinition = SysMLFactory.eINSTANCE.createVerificationCaseDefinition(); + var result = (EList) semantics.evaluateSetting( + "VerificationCaseDefinition", "verifiedRequirement", verificationCaseDefinition); + assertTrue(result.isEmpty()); + assertTrue(verificationCaseDefinition.getVerifiedRequirement().isEmpty()); + } + + @Test + void actionDefinitionActionSettingRule() { + var actionDefinition = SysMLFactory.eINSTANCE.createActionDefinition(); + var result = (EList) semantics.evaluateSetting("ActionDefinition", "action", actionDefinition); + assertTrue(result.isEmpty()); + assertTrue(actionDefinition.getAction().isEmpty()); + } + + @Test + void behaviorStepSettingRule() { + var behavior = SysMLFactory.eINSTANCE.createActionDefinition(); + var result = (EList) semantics.evaluateSetting("Behavior", "step", behavior); + assertTrue(result.isEmpty()); + assertTrue(behavior.getStep().isEmpty()); + } + + @Test + void requirementConstraintMembershipReferencedConstraintSettingRule() { + var requirementConstraintMembership = SysMLFactory.eINSTANCE.createRequirementConstraintMembership(); + assertNull(semantics.evaluateSetting( + "RequirementConstraintMembership", "referencedConstraint", requirementConstraintMembership)); + assertNull(requirementConstraintMembership.getReferencedConstraint()); + } + + @Test + void framedConcernMembershipReferencedConcernSettingRule() { + var framedConcernMembership = SysMLFactory.eINSTANCE.createFramedConcernMembership(); + var concernUsage = SysMLFactory.eINSTANCE.createConcernUsage(); + framedConcernMembership.setMemberElement(concernUsage); + + assertSame(concernUsage, semantics.evaluateSetting( + "FramedConcernMembership", "referencedConcern", framedConcernMembership)); + assertSame(concernUsage, framedConcernMembership.getReferencedConcern()); + } + + @Test + void interfaceDefinitionInterfaceEndSettingRule() { + var interfaceDefinition = SysMLFactory.eINSTANCE.createInterfaceDefinition(); + var portUsage = SysMLFactory.eINSTANCE.createPortUsage(); + var partUsage = SysMLFactory.eINSTANCE.createPartUsage(); + + var portMembership = SysMLFactory.eINSTANCE.createFeatureMembership(); + portMembership.setOwningRelatedElement(interfaceDefinition); + portMembership.setMemberElement(portUsage); + + var partMembership = SysMLFactory.eINSTANCE.createFeatureMembership(); + partMembership.setOwningRelatedElement(interfaceDefinition); + partMembership.setMemberElement(partUsage); + + var result = (EList) semantics.evaluateSetting( + "InterfaceDefinition", "interfaceEnd", interfaceDefinition); + assertTrue(result.contains(portUsage)); + assertFalse(result.contains(partUsage)); + } + + @Test + void stateDefinitionEntryActionSettingRule() { + var stateDefinition = SysMLFactory.eINSTANCE.createStateDefinition(); + assertNull(semantics.evaluateSetting("StateDefinition", "entryAction", stateDefinition)); + assertNull(stateDefinition.getEntryAction()); + } + + @Test + void renderingDefinitionRenderingSettingRule() { + var renderingDefinition = SysMLFactory.eINSTANCE.createRenderingDefinition(); + var result = (EList) semantics.evaluateSetting("RenderingDefinition", "rendering", renderingDefinition); + assertTrue(result.isEmpty()); + assertTrue(renderingDefinition.getRendering().isEmpty()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsElementTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsElementTest.java new file mode 100644 index 000000000..6cd395909 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsElementTest.java @@ -0,0 +1,307 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.Comment; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Setting semantics tests for Element and Element-derived metaclasses. + */ +public class SettingSemanticsElementTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void annotatingElementOwnedAnnotatingRelationshipSettingRule() { + MetadataFeature annotatingElement = SysMLFactory.eINSTANCE.createMetadataFeature(); + Annotation annotationToSelf = SysMLFactory.eINSTANCE.createAnnotation(); + Annotation annotationToOther = SysMLFactory.eINSTANCE.createAnnotation(); + annotationToSelf.setAnnotatedElement(annotatingElement); + annotationToOther.setAnnotatedElement(SysMLFactory.eINSTANCE.createComment()); + annotatingElement.getOwnedRelationship().add(annotationToSelf); + annotatingElement.getOwnedRelationship().add(annotationToOther); + + EList result = (EList) semantics.evaluateSetting( + "AnnotatingElement", "ownedAnnotatingRelationship", annotatingElement); + assertEquals(1, result.size()); + assertSame(annotationToOther, result.getFirst()); + } + + @Test + void elementTextualRepresentationSettingRule() { + Comment element = SysMLFactory.eINSTANCE.createComment(); + EList result = (EList) semantics.evaluateSetting("Element", "textualRepresentation", element); + assertTrue(result.isEmpty()); + assertTrue(element.getTextualRepresentation().isEmpty()); + } + + @Test + void elementNameSettingRule() { + var element = SysMLFactory.eINSTANCE.createComment(); + element.setDeclaredName("DocComment"); + assertEquals("DocComment", semantics.evaluateSetting("Element", "name", element)); + assertEquals("DocComment", element.getName()); + } + + @Test + void elementQualifiedNameSettingRule() { + var element = SysMLFactory.eINSTANCE.createComment(); + assertNull(semantics.evaluateSetting("Element", "qualifiedName", element)); + assertNull(element.getQualifiedName()); + } + + @Test + void elementShortNameSettingRule() { + var element = SysMLFactory.eINSTANCE.createComment(); + element.setDeclaredShortName("dc"); + assertEquals("dc", semantics.evaluateSetting("Element", "shortName", element)); + assertEquals("dc", element.getShortName()); + } + + @Test + void elementOwnedElementSettingRule() { + var element = SysMLFactory.eINSTANCE.createComment(); + var result = (EList) semantics.evaluateSetting("Element", "ownedElement", element); + assertTrue(result.isEmpty()); + assertTrue(element.getOwnedElement().isEmpty()); + } + + @Test + void elementOwnedElementWithOwnedRelationshipSettingRule() { + var owner = SysMLFactory.eINSTANCE.createComment(); + var ownedChild = SysMLFactory.eINSTANCE.createComment(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + owningMembership.setOwningRelatedElement(owner); + owningMembership.getOwnedRelatedElement().add(ownedChild); + var result = (EList) semantics.evaluateSetting("Element", "ownedElement", owner); + assertEquals(1, result.size()); + assertSame(ownedChild, result.getFirst()); + } + + @Test + void elementOwnerSettingRule() { + var element = SysMLFactory.eINSTANCE.createComment(); + assertNull(semantics.evaluateSetting("Element", "owner", element)); + assertNull(element.getOwner()); + } + + @Test + void elementOwnerWithOwningRelationshipSettingRule() { + var owner = SysMLFactory.eINSTANCE.createComment(); + var ownedChild = SysMLFactory.eINSTANCE.createComment(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + owningMembership.setOwningRelatedElement(owner); + owningMembership.getOwnedRelatedElement().add(ownedChild); + assertSame(owner, semantics.evaluateSetting("Element", "owner", ownedChild)); + assertSame(owner, ownedChild.getOwner()); + } + + @Test + void elementDocumentationSettingRule() { + var element = SysMLFactory.eINSTANCE.createComment(); + var result = (EList) semantics.evaluateSetting("Element", "documentation", element); + assertTrue(result.isEmpty()); + assertTrue(element.getDocumentation().isEmpty()); + } + + @Test + void elementDocumentationFiltersOwnedDocumentationSettingRule() { + var owner = SysMLFactory.eINSTANCE.createComment(); + var documentation = SysMLFactory.eINSTANCE.createDocumentation(); + var notDocumentation = SysMLFactory.eINSTANCE.createComment(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + owningMembership.setOwningRelatedElement(owner); + owningMembership.getOwnedRelatedElement().add(documentation); + owningMembership.getOwnedRelatedElement().add(notDocumentation); + var result = (EList) semantics.evaluateSetting("Element", "documentation", owner); + assertEquals(1, result.size()); + assertSame(documentation, result.getFirst()); + } + + @Test + void elementIsLibraryElementSettingRule() { + var element = SysMLFactory.eINSTANCE.createComment(); + assertFalse((Boolean) semantics.evaluateSetting("Element", "isLibraryElement", element)); + assertFalse(element.isIsLibraryElement()); + } + + @Test + void elementOwnedAnnotationSettingRule() { + var element = SysMLFactory.eINSTANCE.createComment(); + var result = (EList) semantics.evaluateSetting("Element", "ownedAnnotation", element); + assertTrue(result.isEmpty()); + assertTrue(element.getOwnedAnnotation().isEmpty()); + } + + @Test + void namespaceOwnedMembershipSettingRule() { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var result = (EList) semantics.evaluateSetting("Namespace", "ownedMembership", namespace); + assertTrue(result.isEmpty()); + assertTrue(namespace.getOwnedMembership().isEmpty()); + } + + @Test + void namespaceOwnedMembershipWithOwnedRelationshipSettingRule() { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var membership = SysMLFactory.eINSTANCE.createMembership(); + namespace.getOwnedRelationship().add(membership); + var result = (EList) semantics.evaluateSetting("Namespace", "ownedMembership", namespace); + assertEquals(1, result.size()); + assertSame(membership, result.getFirst()); + } + + @Test + void namespaceOwnedMembershipFiltersNonMembershipSettingRule() { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + namespace.getOwnedRelationship().add(annotation); + var result = (EList) semantics.evaluateSetting("Namespace", "ownedMembership", namespace); + assertTrue(result.isEmpty()); + assertTrue(namespace.getOwnedMembership().isEmpty()); + } + + @Test + void namespaceOwnedMemberSettingRule() { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var result = (EList) semantics.evaluateSetting("Namespace", "ownedMember", namespace); + assertTrue(result.isEmpty()); + assertTrue(namespace.getOwnedMember().isEmpty()); + } + + @Test + void namespaceOwnedMemberWithOwningMembershipSettingRule() { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + var ownedMember = SysMLFactory.eINSTANCE.createComment(); + namespace.getOwnedRelationship().add(owningMembership); + owningMembership.getOwnedRelatedElement().add(ownedMember); + var result = (EList) semantics.evaluateSetting("Namespace", "ownedMember", namespace); + assertEquals(1, result.size()); + assertSame(ownedMember, result.getFirst()); + } + + @Test + void namespaceOwnedImportSettingRule() { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var result = (EList) semantics.evaluateSetting("Namespace", "ownedImport", namespace); + assertTrue(result.isEmpty()); + assertTrue(namespace.getOwnedImport().isEmpty()); + } + + @Test + void namespaceOwnedImportWithNamespaceImportSettingRule() { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var namespaceImport = SysMLFactory.eINSTANCE.createNamespaceImport(); + namespace.getOwnedRelationship().add(namespaceImport); + var result = (EList) semantics.evaluateSetting("Namespace", "ownedImport", namespace); + assertEquals(1, result.size()); + assertSame(namespaceImport, result.getFirst()); + } + + @Test + void namespaceImportedMembershipSettingRule() { + var namespace = SysMLFactory.eINSTANCE.createPackage(); + var result = (EList) semantics.evaluateSetting("Namespace", "importedMembership", namespace); + assertTrue(result.isEmpty()); + assertTrue(namespace.getImportedMembership().isEmpty()); + } + + @Test + void annotationOwningAnnotatedElementSubsetsFallback() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + var annotated = SysMLFactory.eINSTANCE.createComment(); + annotation.setAnnotatedElement(annotated); + assertSame(annotated, semantics.evaluateSetting("Annotation", "owningAnnotatedElement", annotation)); + assertSame(annotated, annotation.getOwningAnnotatedElement()); + } + + @Test + void annotationOwnedAnnotatingElementSettingRule() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + assertNull(semantics.evaluateSetting("Annotation", "ownedAnnotatingElement", annotation)); + assertNull(annotation.getOwnedAnnotatingElement()); + } + + @Test + void annotationOwnedAnnotatingElementWithOwnedRelatedElementSettingRule() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + var annotatingElement = SysMLFactory.eINSTANCE.createMetadataFeature(); + annotation.getOwnedRelatedElement().add(annotatingElement); + assertSame(annotatingElement, semantics.evaluateSetting( + "Annotation", "ownedAnnotatingElement", annotation)); + assertSame(annotatingElement, annotation.getOwnedAnnotatingElement()); + } + + @Test + void annotationAnnotatingElementSettingRule() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + assertNull(semantics.evaluateSetting("Annotation", "annotatingElement", annotation)); + assertNull(annotation.getAnnotatingElement()); + } + + @Test + void annotatingElementAnnotationSettingRule() { + var annotatingElement = SysMLFactory.eINSTANCE.createMetadataFeature(); + var result = (EList) semantics.evaluateSetting("AnnotatingElement", "annotation", annotatingElement); + assertTrue(result.isEmpty()); + assertTrue(annotatingElement.getAnnotation().isEmpty()); + } + + @Test + void annotatingElementAnnotatedElementSettingRule() { + var annotatingElement = SysMLFactory.eINSTANCE.createMetadataFeature(); + var annotatedElement = SysMLFactory.eINSTANCE.createComment(); + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + annotation.setAnnotatedElement(annotatedElement); + annotatingElement.getOwnedRelationship().add(annotation); + var result = (EList) semantics.evaluateSetting("AnnotatingElement", "annotatedElement", annotatingElement); + assertEquals(1, result.size()); + assertSame(annotatedElement, result.getFirst()); + } + + @Test + void metadataFeatureMetaclassSettingRule() { + var metadataFeature = SysMLFactory.eINSTANCE.createMetadataFeature(); + assertNull(semantics.evaluateSetting("MetadataFeature", "metaclass", metadataFeature)); + assertNull(metadataFeature.getMetaclass()); + } + + @Test + void packageFilterConditionSettingRule() { + var packageElement = SysMLFactory.eINSTANCE.createPackage(); + var result = (EList) semantics.evaluateSetting("Package", "filterCondition", packageElement); + assertTrue(result.isEmpty()); + assertTrue(packageElement.getFilterCondition().isEmpty()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsExpressionTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsExpressionTest.java new file mode 100644 index 000000000..6a07837f1 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsExpressionTest.java @@ -0,0 +1,117 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.ConstructorExpression; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChainExpression; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.InvocationExpression; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Setting semantics tests for Expression and Expression-derived metaclasses. + */ +public class SettingSemanticsExpressionTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void instantiationExpressionInstantiatedTypeSettingRule() { + ConstructorExpression constructorExpression = SysMLFactory.eINSTANCE.createConstructorExpression(); + assertNull(semantics.evaluateSetting("InstantiationExpression", "instantiatedType", constructorExpression)); + assertNull(constructorExpression.getInstantiatedType()); + } + + @Test + void featureReferenceExpressionReferentSettingRule() { + var featureReferenceExpression = SysMLFactory.eINSTANCE.createFeatureReferenceExpression(); + assertNull(semantics.evaluateSetting( + "FeatureReferenceExpression", "referent", featureReferenceExpression)); + assertNull(featureReferenceExpression.getReferent()); + } + + @Test + void expressionResultSettingRule() { + Expression expression = SysMLFactory.eINSTANCE.createFeatureReferenceExpression(); + assertNull(semantics.evaluateSetting("Expression", "result", expression)); + assertNull(expression.getResult()); + } + + @Test + void functionResultSettingRule() { + Function function = SysMLFactory.eINSTANCE.createFunction(); + assertNull(semantics.evaluateSetting("Function", "result", function)); + assertNull(function.getResult()); + } + + @Test + void functionIsModelLevelEvaluableSettingRule() { + Function function = SysMLFactory.eINSTANCE.createFunction(); + assertFalse((Boolean) semantics.evaluateSetting("Function", "isModelLevelEvaluable", function)); + assertFalse(function.isIsModelLevelEvaluable()); + } + + @Test + void expressionIsModelLevelEvaluableSettingRule() { + var expression = SysMLFactory.eINSTANCE.createFeatureReferenceExpression(); + assertEquals( + expression.modelLevelEvaluable(new BasicEList()), + semantics.evaluateSetting("Expression", "isModelLevelEvaluable", expression)); + assertEquals( + expression.modelLevelEvaluable(new BasicEList()), expression.isIsModelLevelEvaluable()); + } + + @Test + void instantiationExpressionArgumentSettingInvocationRule() { + InvocationExpression invocationExpression = SysMLFactory.eINSTANCE.createInvocationExpression(); + var result = semantics.evaluateSetting("InstantiationExpression", "argument", invocationExpression); + assertTrue(result instanceof EList); + assertTrue(((EList) result).isEmpty()); + } + + @Test + void instantiationExpressionArgumentSettingConstructorRule() { + ConstructorExpression constructorExpression = SysMLFactory.eINSTANCE.createConstructorExpression(); + var result = semantics.evaluateSetting("InstantiationExpression", "argument", constructorExpression); + assertTrue(result instanceof EList); + assertTrue(((EList) result).isEmpty()); + } + + @Test + void featureChainExpressionTargetFeatureSettingRule() { + FeatureChainExpression featureChainExpression = SysMLFactory.eINSTANCE.createFeatureChainExpression(); + assertNull(semantics.evaluateSetting( + "FeatureChainExpression", "targetFeature", featureChainExpression)); + assertNull(featureChainExpression.getTargetFeature()); + } + +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsFeatureTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsFeatureTest.java new file mode 100644 index 000000000..b8b1cfca7 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsFeatureTest.java @@ -0,0 +1,229 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.ConjugatedPortTyping; +import org.omg.sysml.model.sysml.MultiplicityRange; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Setting semantics tests for Feature and Feature-derived metaclasses. + */ +public class SettingSemanticsFeatureTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void conjugatedPortTypingPortDefinitionSettingRule() { + ConjugatedPortTyping conjugatedPortTyping = SysMLFactory.eINSTANCE.createConjugatedPortTyping(); + assertNull(semantics.evaluateSetting("ConjugatedPortTyping", "portDefinition", conjugatedPortTyping)); + assertNull(conjugatedPortTyping.getPortDefinition()); + } + + @Test + void featureOwnedRedefinitionSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Feature", "ownedRedefinition", feature); + assertTrue(result.isEmpty()); + assertTrue(feature.getOwnedRedefinition().isEmpty()); + } + + @Test + void featureEndOwningTypeSettingRuleReturnsNullWhenNotAnEnd() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var owningType = SysMLFactory.eINSTANCE.createPartDefinition(); + var featureMembership = SysMLFactory.eINSTANCE.createFeatureMembership(); + featureMembership.setOwningRelatedElement(owningType); + featureMembership.setMemberElement(feature); + + assertNull(semantics.evaluateSetting("Feature", "endOwningType", feature)); + assertNull(feature.getEndOwningType()); + } + + @Test + void featureTypeSettingRule() { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Feature", "type", feature); + assertTrue(result.isEmpty()); + assertTrue(feature.getType().isEmpty()); + } + + @Test + void featureFeatureTargetSettingRule() { + ActionUsage feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertSame(feature, semantics.evaluateSetting("Feature", "featureTarget", feature)); + assertSame(feature, feature.getFeatureTarget()); + } + + @Test + void featureOwnedReferenceSubsettingSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.evaluateSetting("Feature", "ownedReferenceSubsetting", feature)); + assertNull(feature.getOwnedReferenceSubsetting()); + } + + @Test + void featureFeaturingTypeSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Feature", "featuringType", feature); + assertTrue(result.isEmpty()); + assertTrue(feature.getFeaturingType().isEmpty()); + } + + @Test + void featureOwnedFeatureChainingSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Feature", "ownedFeatureChaining", feature); + assertTrue(result.isEmpty()); + assertTrue(feature.getOwnedFeatureChaining().isEmpty()); + } + + @Test + void featureOwnedCrossSubsettingSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.evaluateSetting("Feature", "ownedCrossSubsetting", feature)); + assertNull(feature.getOwnedCrossSubsetting()); + } + + @Test + void multiplicityRangeUpperBoundSettingRule() { + MultiplicityRange multiplicityRange = SysMLFactory.eINSTANCE.createMultiplicityRange(); + assertNull(semantics.evaluateSetting("MultiplicityRange", "upperBound", multiplicityRange)); + assertNull(multiplicityRange.getUpperBound()); + } + + @Test + void featureOwnedFeatureInvertingSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Feature", "ownedFeatureInverting", feature); + assertTrue(result.isEmpty()); + assertTrue(feature.getOwnedFeatureInverting().isEmpty()); + } + + @Test + void multiplicityRangeBoundSettingRule() { + var multiplicityRange = SysMLFactory.eINSTANCE.createMultiplicityRange(); + var result = (EList) semantics.evaluateSetting("MultiplicityRange", "bound", multiplicityRange); + assertTrue(result.isEmpty()); + assertTrue(multiplicityRange.getBound().isEmpty()); + } + + @Test + void featureOwnedTypingSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Feature", "ownedTyping", feature); + assertTrue(result.isEmpty()); + assertTrue(feature.getOwnedTyping().isEmpty()); + } + + @Test + void multiplicityRangeLowerBoundSettingRule() { + var multiplicityRange = SysMLFactory.eINSTANCE.createMultiplicityRange(); + assertNull(semantics.evaluateSetting("MultiplicityRange", "lowerBound", multiplicityRange)); + assertNull(multiplicityRange.getLowerBound()); + } + + @Test + void featureOwnedSubsettingSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Feature", "ownedSubsetting", feature); + assertTrue(result.isEmpty()); + assertTrue(feature.getOwnedSubsetting().isEmpty()); + } + + @Test + void featureOwnedTypeFeaturingSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Feature", "ownedTypeFeaturing", feature); + assertTrue(result.isEmpty()); + assertTrue(feature.getOwnedTypeFeaturing().isEmpty()); + } + + @Test + void featureCrossFeatureSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.evaluateSetting("Feature", "crossFeature", feature)); + assertNull(feature.getCrossFeature()); + } + + @Test + void featureChainingFeatureSettingRule() { + var feature = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Feature", "chainingFeature", feature); + assertTrue(result.isEmpty()); + assertTrue(feature.getChainingFeature().isEmpty()); + } + + @Test + void featureTypingOwningFeatureSubsetsFallbackSettingRule() { + var featureTyping = SysMLFactory.eINSTANCE.createFeatureTyping(); + var ownerFeature = SysMLFactory.eINSTANCE.createActionUsage(); + featureTyping.setTypedFeature(ownerFeature); + assertSame(ownerFeature, semantics.evaluateSetting("FeatureTyping", "owningFeature", featureTyping)); + assertSame(ownerFeature, featureTyping.getOwningFeature()); + } + + @Test + void subsettingOwningFeatureSubsetsFallbackSettingRule() { + var subsetting = SysMLFactory.eINSTANCE.createSubsetting(); + var ownerFeature = SysMLFactory.eINSTANCE.createActionUsage(); + subsetting.setSubsettingFeature(ownerFeature); + assertSame(ownerFeature, semantics.evaluateSetting("Subsetting", "owningFeature", subsetting)); + assertSame(ownerFeature, subsetting.getOwningFeature()); + } + + @Test + void featureInvertingOwningFeatureSubsetsFallbackSettingRule() { + var featureInverting = SysMLFactory.eINSTANCE.createFeatureInverting(); + var ownerFeature = SysMLFactory.eINSTANCE.createActionUsage(); + featureInverting.setFeatureInverted(ownerFeature); + assertSame(ownerFeature, semantics.evaluateSetting("FeatureInverting", "owningFeature", featureInverting)); + assertSame(ownerFeature, featureInverting.getOwningFeature()); + } + + @Test + void crossSubsettingCrossingFeatureRedefinesFallbackSettingRule() { + var crossSubsetting = SysMLFactory.eINSTANCE.createCrossSubsetting(); + var crossingFeature = SysMLFactory.eINSTANCE.createActionUsage(); + crossSubsetting.setSubsettingFeature(crossingFeature); + assertSame(crossingFeature, semantics.evaluateSetting("CrossSubsetting", "crossingFeature", crossSubsetting)); + assertSame(crossingFeature, crossSubsetting.getCrossingFeature()); + } + + @Test + void referenceSubsettingReferencingFeatureRedefinesFallbackSettingRule() { + var referenceSubsetting = SysMLFactory.eINSTANCE.createReferenceSubsetting(); + var referencingFeature = SysMLFactory.eINSTANCE.createActionUsage(); + referenceSubsetting.setSubsettingFeature(referencingFeature); + assertSame(referencingFeature, + semantics.evaluateSetting("ReferenceSubsetting", "referencingFeature", referenceSubsetting)); + assertSame(referencingFeature, referenceSubsetting.getReferencingFeature()); + } + +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsGuardTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsGuardTest.java new file mode 100644 index 000000000..1cc62155c --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsGuardTest.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Guard and precedence tests for setting delegates with subset fallbacks. + */ +public class SettingSemanticsGuardTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void membershipOwningNamespaceReturnsNullWhenOwningRelatedElementIsNotNamespace() { + var membership = SysMLFactory.eINSTANCE.createMembership(); + membership.setOwningRelatedElement(SysMLFactory.eINSTANCE.createComment()); + + assertNull(semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership)); + assertNull(membership.getMembershipOwningNamespace()); + } + + @Test + void specializationOwningTypeFallsBackToSpecificWhenOwningRelatedElementIsNotType() { + var specialization = SysMLFactory.eINSTANCE.createSpecialization(); + var specific = SysMLFactory.eINSTANCE.createPartDefinition(); + specialization.setOwningRelatedElement(SysMLFactory.eINSTANCE.createComment()); + specialization.setSpecific(specific); + + assertSame(specific, semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertSame(specific, specialization.getOwningType()); + } + + @Test + void specializationOwningTypePrefersOwningRelatedElementOverSpecific() { + var specialization = SysMLFactory.eINSTANCE.createSpecialization(); + var owningType = SysMLFactory.eINSTANCE.createActionDefinition(); + var specific = SysMLFactory.eINSTANCE.createPartDefinition(); + specialization.setOwningRelatedElement(owningType); + specialization.setSpecific(specific); + + assertSame(owningType, semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertSame(owningType, specialization.getOwningType()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsMutationTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsMutationTest.java new file mode 100644 index 000000000..469c7a508 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsMutationTest.java @@ -0,0 +1,197 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Mutation-focused setting semantics tests for translated delegates. + * + *

These tests verify that delegate results evolve correctly when source links are updated. + */ +public class SettingSemanticsMutationTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + public void membershipOwningNamespaceFollowsOwningRelatedElementMutation() { + var membership = SysMLFactory.eINSTANCE.createMembership(); + var namespaceA = SysMLFactory.eINSTANCE.createPackage(); + var namespaceB = SysMLFactory.eINSTANCE.createPackage(); + + membership.setOwningRelatedElement(namespaceA); + assertSame(namespaceA, semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership)); + assertSame(namespaceA, membership.getMembershipOwningNamespace()); + + membership.setOwningRelatedElement(namespaceB); + assertSame(namespaceB, semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership)); + assertSame(namespaceB, membership.getMembershipOwningNamespace()); + } + + @Test + public void featureTypingOwningFeatureFollowsTypedFeatureMutation() { + var featureTyping = SysMLFactory.eINSTANCE.createFeatureTyping(); + var featureA = SysMLFactory.eINSTANCE.createActionUsage(); + var featureB = SysMLFactory.eINSTANCE.createPartUsage(); + + featureTyping.setTypedFeature(featureA); + assertSame(featureA, semantics.evaluateSetting("FeatureTyping", "owningFeature", featureTyping)); + assertSame(featureA, featureTyping.getOwningFeature()); + + featureTyping.setTypedFeature(featureB); + assertSame(featureB, semantics.evaluateSetting("FeatureTyping", "owningFeature", featureTyping)); + assertSame(featureB, featureTyping.getOwningFeature()); + } + + @Test + public void specializationOwningTypeFollowsSpecificMutation() { + var specialization = SysMLFactory.eINSTANCE.createSpecialization(); + var specificA = SysMLFactory.eINSTANCE.createActionDefinition(); + var specificB = SysMLFactory.eINSTANCE.createPartDefinition(); + + specialization.setSpecific(specificA); + assertSame(specificA, semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertSame(specificA, specialization.getOwningType()); + + specialization.setSpecific(specificB); + assertSame(specificB, semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertSame(specificB, specialization.getOwningType()); + } + + @Test + public void annotationOwningAnnotatedElementFollowsAnnotatedElementMutation() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + var annotatedA = SysMLFactory.eINSTANCE.createComment(); + var annotatedB = SysMLFactory.eINSTANCE.createDocumentation(); + + annotation.setAnnotatedElement(annotatedA); + assertSame(annotatedA, semantics.evaluateSetting("Annotation", "owningAnnotatedElement", annotation)); + assertSame(annotatedA, annotation.getOwningAnnotatedElement()); + + annotation.setAnnotatedElement(annotatedB); + assertSame(annotatedB, semantics.evaluateSetting("Annotation", "owningAnnotatedElement", annotation)); + assertSame(annotatedB, annotation.getOwningAnnotatedElement()); + } + + @Test + public void membershipOwningNamespaceTracksGuardTransitionsAcrossMultipleMutations() { + var membership = SysMLFactory.eINSTANCE.createMembership(); + var namespaceA = SysMLFactory.eINSTANCE.createPackage(); + var namespaceB = SysMLFactory.eINSTANCE.createLibraryPackage(); + var nonNamespace = SysMLFactory.eINSTANCE.createComment(); + + assertNull(semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership)); + assertNull(membership.getMembershipOwningNamespace()); + + membership.setOwningRelatedElement(namespaceA); + assertSame(namespaceA, semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership)); + assertSame(namespaceA, membership.getMembershipOwningNamespace()); + + membership.setOwningRelatedElement(nonNamespace); + assertNull(semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership)); + assertNull(membership.getMembershipOwningNamespace()); + + membership.setOwningRelatedElement(namespaceB); + assertSame(namespaceB, semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership)); + assertSame(namespaceB, membership.getMembershipOwningNamespace()); + } + + @Test + public void importOwningNamespaceTracksGuardTransitionsAcrossMultipleMutations() { + var namespaceImport = SysMLFactory.eINSTANCE.createNamespaceImport(); + var namespaceA = SysMLFactory.eINSTANCE.createPackage(); + var namespaceB = SysMLFactory.eINSTANCE.createLibraryPackage(); + var nonNamespace = SysMLFactory.eINSTANCE.createComment(); + + assertNull(semantics.evaluateSetting("Import", "importOwningNamespace", namespaceImport)); + assertNull(namespaceImport.getImportOwningNamespace()); + + namespaceImport.setOwningRelatedElement(namespaceA); + assertSame(namespaceA, semantics.evaluateSetting("Import", "importOwningNamespace", namespaceImport)); + assertSame(namespaceA, namespaceImport.getImportOwningNamespace()); + + namespaceImport.setOwningRelatedElement(nonNamespace); + assertNull(semantics.evaluateSetting("Import", "importOwningNamespace", namespaceImport)); + assertNull(namespaceImport.getImportOwningNamespace()); + + namespaceImport.setOwningRelatedElement(namespaceB); + assertSame(namespaceB, semantics.evaluateSetting("Import", "importOwningNamespace", namespaceImport)); + assertSame(namespaceB, namespaceImport.getImportOwningNamespace()); + } + + @Test + public void specializationOwningTypeSwitchesBetweenFallbackAndPreferredSourcesAcrossMutations() { + var specialization = SysMLFactory.eINSTANCE.createSpecialization(); + var specificA = SysMLFactory.eINSTANCE.createActionDefinition(); + var specificB = SysMLFactory.eINSTANCE.createPartDefinition(); + var owningA = SysMLFactory.eINSTANCE.createUsage(); + var owningB = SysMLFactory.eINSTANCE.createActionUsage(); + + specialization.setSpecific(specificA); + assertSame(specificA, semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertSame(specificA, specialization.getOwningType()); + + specialization.setOwningRelatedElement(owningA); + assertSame(owningA, semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertSame(owningA, specialization.getOwningType()); + + specialization.setOwningRelatedElement(SysMLFactory.eINSTANCE.createComment()); + assertSame(specificA, semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertSame(specificA, specialization.getOwningType()); + + specialization.setSpecific(specificB); + assertSame(specificB, semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertSame(specificB, specialization.getOwningType()); + + specialization.setOwningRelatedElement(owningB); + assertSame(owningB, semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertSame(owningB, specialization.getOwningType()); + } + + @Test + public void annotationOwningAnnotatedElementPrefersAnnotatedThenFallsBackToOwningRelatedElement() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + var annotatedA = SysMLFactory.eINSTANCE.createComment(); + var annotatedB = SysMLFactory.eINSTANCE.createDocumentation(); + var fallbackElement = SysMLFactory.eINSTANCE.createPackage(); + + annotation.setOwningRelatedElement(fallbackElement); + assertSame(fallbackElement, semantics.evaluateSetting("Annotation", "owningAnnotatedElement", annotation)); + assertSame(fallbackElement, annotation.getOwningAnnotatedElement()); + + annotation.setAnnotatedElement(annotatedA); + assertSame(annotatedA, semantics.evaluateSetting("Annotation", "owningAnnotatedElement", annotation)); + assertSame(annotatedA, annotation.getOwningAnnotatedElement()); + + annotation.setAnnotatedElement(annotatedB); + assertSame(annotatedB, semantics.evaluateSetting("Annotation", "owningAnnotatedElement", annotation)); + assertSame(annotatedB, annotation.getOwningAnnotatedElement()); + + annotation.setAnnotatedElement(null); + assertSame(fallbackElement, semantics.evaluateSetting("Annotation", "owningAnnotatedElement", annotation)); + assertSame(fallbackElement, annotation.getOwningAnnotatedElement()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsNullAndEmptyTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsNullAndEmptyTest.java new file mode 100644 index 000000000..b653d2913 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsNullAndEmptyTest.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertNull; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Null and empty-input behavior tests for selected setting delegates. + */ +public class SettingSemanticsNullAndEmptyTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void membershipOwningNamespaceReturnsNullWhenUnset() { + var membership = SysMLFactory.eINSTANCE.createMembership(); + assertNull(semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership)); + assertNull(membership.getMembershipOwningNamespace()); + } + + @Test + void featureTypingOwningFeatureReturnsNullWhenTypedFeatureUnset() { + var featureTyping = SysMLFactory.eINSTANCE.createFeatureTyping(); + assertNull(semantics.evaluateSetting("FeatureTyping", "owningFeature", featureTyping)); + assertNull(featureTyping.getOwningFeature()); + } + + @Test + void specializationOwningTypeReturnsNullWhenNoSourceIsSet() { + var specialization = SysMLFactory.eINSTANCE.createSpecialization(); + assertNull(semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertNull(specialization.getOwningType()); + } + + @Test + void annotationOwnedAnnotatingElementReturnsNullWhenOwnedRelatedElementIsEmpty() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + assertNull(semantics.evaluateSetting("Annotation", "ownedAnnotatingElement", annotation)); + assertNull(annotation.getOwnedAnnotatingElement()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsRelationshipTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsRelationshipTest.java new file mode 100644 index 000000000..73a8700e6 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsRelationshipTest.java @@ -0,0 +1,210 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.FlowUsage; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.OwningMembership; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Setting semantics tests for Relationship and Relationship-derived metaclasses. + */ +public class SettingSemanticsRelationshipTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void connectorTargetFeatureSettingRule() { + FlowUsage connector = SysMLFactory.eINSTANCE.createFlowUsage(); + EList result = (EList) semantics.evaluateSetting("Connector", "targetFeature", connector); + assertTrue(result.isEmpty()); + assertTrue(connector.getTargetFeature().isEmpty()); + } + + @Test + void connectorDefaultFeaturingTypeSettingRule() { + FlowUsage connector = SysMLFactory.eINSTANCE.createFlowUsage(); + assertNull(semantics.evaluateSetting("Connector", "defaultFeaturingType", connector)); + assertNull(connector.getDefaultFeaturingType()); + } + + @Test + void flowFlowEndSettingRule() { + FlowUsage flow = SysMLFactory.eINSTANCE.createFlowUsage(); + EList result = (EList) semantics.evaluateSetting("Flow", "flowEnd", flow); + assertTrue(result.isEmpty()); + assertTrue(flow.getFlowEnd().isEmpty()); + } + + @Test + void membershipMemberElementIdSettingRule() { + Membership membership = SysMLFactory.eINSTANCE.createMembership(); + var element = SysMLFactory.eINSTANCE.createComment(); + membership.setMemberElement(element); + assertEquals(element.getElementId(), semantics.evaluateSetting("Membership", "memberElementId", membership)); + assertEquals(element.getElementId(), membership.getMemberElementId()); + } + + @Test + void membershipMemberElementIdWithoutMemberElementSettingRule() { + var membership = SysMLFactory.eINSTANCE.createMembership(); + assertNull(semantics.evaluateSetting("Membership", "memberElementId", membership)); + assertNull(membership.getMemberElementId()); + } + + @Test + void flowPayloadFeatureSettingRule() { + FlowUsage flowUsage = SysMLFactory.eINSTANCE.createFlowUsage(); + assertNull(semantics.evaluateSetting("Flow", "payloadFeature", flowUsage)); + assertNull(flowUsage.getPayloadFeature()); + } + + @Test + void flowPayloadTypeSettingRule() { + var flowUsage = SysMLFactory.eINSTANCE.createFlowUsage(); + var result = (EList) semantics.evaluateSetting("Flow", "payloadType", flowUsage); + assertTrue(result.isEmpty()); + assertTrue(flowUsage.getPayloadType().isEmpty()); + } + + @Test + void connectorRelatedFeatureSettingRule() { + var connector = SysMLFactory.eINSTANCE.createFlowUsage(); + var result = (EList) semantics.evaluateSetting("Connector", "relatedFeature", connector); + assertTrue(result.isEmpty()); + assertTrue(connector.getRelatedFeature().isEmpty()); + } + + @Test + void owningMembershipOwnedMemberNameSettingRule() { + OwningMembership owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + assertNull(semantics.evaluateSetting("OwningMembership", "ownedMemberName", owningMembership)); + assertNull(owningMembership.getOwnedMemberName()); + } + + @Test + void owningMembershipOwnedMemberShortNameSettingRule() { + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + assertNull(semantics.evaluateSetting("OwningMembership", "ownedMemberShortName", owningMembership)); + assertNull(owningMembership.getOwnedMemberShortName()); + } + + @Test + void relationshipRelatedElementSettingRule() { + Membership membership = SysMLFactory.eINSTANCE.createMembership(); + EList result = (EList) semantics.evaluateSetting("Relationship", "relatedElement", membership); + assertTrue(result.isEmpty()); + assertTrue(membership.getRelatedElement().isEmpty()); + } + + @Test + void associationSourceTypeSettingRule() { + var association = SysMLFactory.eINSTANCE.createAssociationStructure(); + assertNull(semantics.evaluateSetting("Association", "sourceType", association)); + assertNull(association.getSourceType()); + } + + @Test + void associationTargetTypeSettingRule() { + var association = SysMLFactory.eINSTANCE.createAssociationStructure(); + var result = (EList) semantics.evaluateSetting("Association", "targetType", association); + assertTrue(result.isEmpty()); + assertTrue(association.getTargetType().isEmpty()); + } + + @Test + void associationRelatedTypeSettingRule() { + var association = SysMLFactory.eINSTANCE.createAssociationStructure(); + var result = (EList) semantics.evaluateSetting("Association", "relatedType", association); + assertTrue(result.isEmpty()); + assertTrue(association.getRelatedType().isEmpty()); + } + + @Test + void flowSourceOutputFeatureSettingRule() { + var flow = SysMLFactory.eINSTANCE.createFlowUsage(); + assertNull(semantics.evaluateSetting("Flow", "sourceOutputFeature", flow)); + assertNull(flow.getSourceOutputFeature()); + } + + @Test + void flowTargetInputFeatureSettingRule() { + var flow = SysMLFactory.eINSTANCE.createFlowUsage(); + assertNull(semantics.evaluateSetting("Flow", "targetInputFeature", flow)); + assertNull(flow.getTargetInputFeature()); + } + + @Test + void connectorSourceFeatureSettingRule() { + var connector = SysMLFactory.eINSTANCE.createFlowUsage(); + assertNull(semantics.evaluateSetting("Connector", "sourceFeature", connector)); + assertNull(connector.getSourceFeature()); + } + + @Test + void membershipMembershipOwningNamespaceSubsetsFallbackSettingRule() { + var membership = SysMLFactory.eINSTANCE.createMembership(); + var namespace = SysMLFactory.eINSTANCE.createPackage(); + membership.setOwningRelatedElement(namespace); + assertSame(namespace, semantics.evaluateSetting("Membership", "membershipOwningNamespace", membership)); + assertSame(namespace, membership.getMembershipOwningNamespace()); + } + + @Test + void importImportOwningNamespaceSubsetsFallbackSettingRule() { + var namespaceImport = SysMLFactory.eINSTANCE.createNamespaceImport(); + var namespace = SysMLFactory.eINSTANCE.createPackage(); + namespaceImport.setOwningRelatedElement(namespace); + assertSame(namespace, semantics.evaluateSetting("Import", "importOwningNamespace", namespaceImport)); + assertSame(namespace, namespaceImport.getImportOwningNamespace()); + } + + @Test + void requirementVerificationMembershipVerifiedRequirementSettingRule() { + var requirementVerificationMembership = SysMLFactory.eINSTANCE.createRequirementVerificationMembership(); + RequirementUsage requirementUsage = SysMLFactory.eINSTANCE.createRequirementUsage(); + requirementVerificationMembership.setMemberElement(requirementUsage); + assertSame(requirementUsage, semantics.evaluateSetting( + "RequirementVerificationMembership", "verifiedRequirement", requirementVerificationMembership)); + assertSame(requirementUsage, requirementVerificationMembership.getVerifiedRequirement()); + } + + @Test + void requirementVerificationMembershipVerifiedRequirementSettingRuleReturnsNullForNonRequirementConstraint() { + var requirementVerificationMembership = SysMLFactory.eINSTANCE.createRequirementVerificationMembership(); + ConstraintUsage constraintUsage = SysMLFactory.eINSTANCE.createConstraintUsage(); + requirementVerificationMembership.setMemberElement(constraintUsage); + assertNull(semantics.evaluateSetting( + "RequirementVerificationMembership", "verifiedRequirement", requirementVerificationMembership)); + assertNull(requirementVerificationMembership.getVerifiedRequirement()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsTypeFilteringTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsTypeFilteringTest.java new file mode 100644 index 000000000..d0681ba87 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsTypeFilteringTest.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertNull; + +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Type-filtering tests for setting delegates generated from subset fallback rules. + */ +public class SettingSemanticsTypeFilteringTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void annotationOwnedAnnotatingElementSelectsFirstAnnotatingElement() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + var nonAnnotating = SysMLFactory.eINSTANCE.createMembership(); + var firstAnnotating = SysMLFactory.eINSTANCE.createMetadataFeature(); + var secondAnnotating = SysMLFactory.eINSTANCE.createMetadataFeature(); + annotation.getOwnedRelatedElement().add(nonAnnotating); + annotation.getOwnedRelatedElement().add(firstAnnotating); + annotation.getOwnedRelatedElement().add(secondAnnotating); + + var result = semantics.evaluateSetting("Annotation", "ownedAnnotatingElement", annotation); + assertSame(firstAnnotating, result); + } + + @Test + void annotationOwnedAnnotatingElementReturnsNullWhenNoAnnotatingElementExists() { + var annotation = SysMLFactory.eINSTANCE.createAnnotation(); + annotation.getOwnedRelatedElement().add(SysMLFactory.eINSTANCE.createMembership()); + annotation.getOwnedRelatedElement().add(SysMLFactory.eINSTANCE.createOwningMembership()); + var result = semantics.evaluateSetting("Annotation", "ownedAnnotatingElement", annotation); + assertNull(result); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsTypeTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsTypeTest.java new file mode 100644 index 000000000..a1451bad3 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsTypeTest.java @@ -0,0 +1,234 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.Specialization; +import org.omg.sysml.model.sysml.SysMLFactory; + +/** + * Setting semantics tests for Type and Type-derived metaclasses. + */ +public class SettingSemanticsTypeTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void typeOwnedSpecializationSettingRule() { + ActionUsage type = SysMLFactory.eINSTANCE.createActionUsage(); + Specialization specialization = SysMLFactory.eINSTANCE.createSpecialization(); + specialization.setSpecific(type); + type.getOwnedRelationship().add(specialization); + + EList result = (EList) semantics.evaluateSetting("Type", "ownedSpecialization", type); + assertTrue(result.contains(specialization)); + } + + @Test + void portDefinitionConjugatedPortDefinitionSettingRule() { + PortDefinition portDefinition = SysMLFactory.eINSTANCE.createPortDefinition(); + assertNull(semantics.evaluateSetting("PortDefinition", "conjugatedPortDefinition", portDefinition)); + assertNull(portDefinition.getConjugatedPortDefinition()); + } + + @Test + void typeFeatureSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "feature", type); + assertTrue(result.isEmpty()); + assertTrue(type.getFeature().isEmpty()); + } + + @Test + void typeFeatureMembershipSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "featureMembership", type); + assertTrue(result.isEmpty()); + assertTrue(type.getFeatureMembership().isEmpty()); + } + + @Test + void typeOwnedFeatureSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "ownedFeature", type); + assertTrue(result.isEmpty()); + assertTrue(type.getOwnedFeature().isEmpty()); + } + + @Test + void typeOwnedFeatureMembershipSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "ownedFeatureMembership", type); + assertTrue(result.isEmpty()); + assertTrue(type.getOwnedFeatureMembership().isEmpty()); + } + + @Test + void typeDirectedFeatureSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "directedFeature", type); + assertTrue(result.isEmpty()); + assertTrue(type.getDirectedFeature().isEmpty()); + } + + @Test + void typeEndFeatureSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "endFeature", type); + assertTrue(result.isEmpty()); + assertTrue(type.getEndFeature().isEmpty()); + } + + @Test + void typeOwnedEndFeatureSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "ownedEndFeature", type); + assertTrue(result.isEmpty()); + assertTrue(type.getOwnedEndFeature().isEmpty()); + } + + @Test + void typeInheritedFeatureSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "inheritedFeature", type); + assertTrue(result.isEmpty()); + assertTrue(type.getInheritedFeature().isEmpty()); + } + + @Test + void typeInheritedMembershipSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "inheritedMembership", type); + assertTrue(result.isEmpty()); + assertTrue(type.getInheritedMembership().isEmpty()); + } + + @Test + void typeMultiplicitySettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.evaluateSetting("Type", "multiplicity", type)); + assertNull(type.getMultiplicity()); + } + + @Test + void typeUnioningTypeSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "unioningType", type); + assertTrue(result.isEmpty()); + assertTrue(type.getUnioningType().isEmpty()); + } + + @Test + void typeIntersectingTypeSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "intersectingType", type); + assertTrue(result.isEmpty()); + assertTrue(type.getIntersectingType().isEmpty()); + } + + @Test + void typeDifferencingTypeSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "differencingType", type); + assertTrue(result.isEmpty()); + assertTrue(type.getDifferencingType().isEmpty()); + } + + @Test + void typeOwnedUnioningSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "ownedUnioning", type); + assertTrue(result.isEmpty()); + assertTrue(type.getOwnedUnioning().isEmpty()); + } + + @Test + void typeOwnedIntersectingSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "ownedIntersecting", type); + assertTrue(result.isEmpty()); + assertTrue(type.getOwnedIntersecting().isEmpty()); + } + + @Test + void typeOwnedDifferencingSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "ownedDifferencing", type); + assertTrue(result.isEmpty()); + assertTrue(type.getOwnedDifferencing().isEmpty()); + } + + @Test + void typeOwnedDisjoiningSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "ownedDisjoining", type); + assertTrue(result.isEmpty()); + assertTrue(type.getOwnedDisjoining().isEmpty()); + } + + @Test + void typeOwnedConjugatorSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + assertNull(semantics.evaluateSetting("Type", "ownedConjugator", type)); + assertNull(type.getOwnedConjugator()); + } + + @Test + void typeInputSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "input", type); + assertTrue(result.isEmpty()); + assertTrue(type.getInput().isEmpty()); + } + + @Test + void typeOutputSettingRule() { + var type = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Type", "output", type); + assertTrue(result.isEmpty()); + assertTrue(type.getOutput().isEmpty()); + } + + @Test + void classifierOwnedSubclassificationSettingRule() { + var classifier = SysMLFactory.eINSTANCE.createPartDefinition(); + var result = (EList) semantics.evaluateSetting("Classifier", "ownedSubclassification", classifier); + assertTrue(result.isEmpty()); + assertTrue(classifier.getOwnedSubclassification().isEmpty()); + } + + @Test + void specializationOwningTypeSubsetsFallbackSettingRule() { + var specialization = SysMLFactory.eINSTANCE.createSpecialization(); + var specific = SysMLFactory.eINSTANCE.createActionDefinition(); + specialization.setSpecific(specific); + assertSame(specific, semantics.evaluateSetting("Specialization", "owningType", specialization)); + assertSame(specific, specialization.getOwningType()); + } +} diff --git a/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsUsageTest.java b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsUsageTest.java new file mode 100644 index 000000000..8b485cdf6 --- /dev/null +++ b/unified/org.omg.sysml.logic.tests/src/test/java/org/omg/sysml/logic/delegate/setting/SettingSemanticsUsageTest.java @@ -0,0 +1,767 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.common.util.EList; +import org.junit.jupiter.api.Test; +import org.omg.sysml.logic.delegate.DelegateSemanticsSupport; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.TerminateActionUsage; +import org.omg.sysml.model.sysml.TransitionUsage; +import org.omg.sysml.model.sysml.VerificationCaseUsage; +import org.omg.sysml.model.sysml.ViewUsage; + +/** + * Setting semantics tests for Usage and Usage-derived metaclasses. + */ +public class SettingSemanticsUsageTest { + + private final DelegateSemanticsSupport semantics = new DelegateSemanticsSupport(); + + @Test + void usageNestedAnalysisCaseSettingRule() { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + EList result = (EList) semantics.evaluateSetting("Usage", "nestedAnalysisCase", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedAnalysisCase().isEmpty()); + } + + @Test + void usageVariantSettingRule() { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + EList result = (EList) semantics.evaluateSetting("Usage", "variant", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getVariant().isEmpty()); + } + + @Test + void terminateActionUsageTerminatedOccurrenceArgumentSettingRule() { + TerminateActionUsage terminateActionUsage = SysMLFactory.eINSTANCE.createTerminateActionUsage(); + assertNull(semantics.evaluateSetting( + "TerminateActionUsage", "terminatedOccurrenceArgument", terminateActionUsage)); + assertNull(terminateActionUsage.getTerminatedOccurrenceArgument()); + } + + @Test + void assignmentActionUsageReferentSettingRule() { + var assignmentActionUsage = SysMLFactory.eINSTANCE.createAssignmentActionUsage(); + assertNull(semantics.evaluateSetting("AssignmentActionUsage", "referent", assignmentActionUsage)); + assertNull(assignmentActionUsage.getReferent()); + } + + @Test + void viewUsageExposedElementSettingRule() { + ViewUsage viewUsage = SysMLFactory.eINSTANCE.createViewUsage(); + assertTrue(((EList) semantics.evaluateSetting("ViewUsage", "exposedElement", viewUsage)).isEmpty()); + } + + @Test + void requirementUsageSubjectParameterSettingRule() { + RequirementUsage requirementUsage = SysMLFactory.eINSTANCE.createRequirementUsage(); + assertNull(semantics.evaluateSetting("RequirementUsage", "subjectParameter", requirementUsage)); + assertNull(requirementUsage.getSubjectParameter()); + } + + @Test + void usageNestedUseCaseSettingRule() { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + EList result = (EList) semantics.evaluateSetting("Usage", "nestedUseCase", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedUseCase().isEmpty()); + } + + @Test + void usageNestedEnumerationSettingRule() { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + EList result = (EList) semantics.evaluateSetting("Usage", "nestedEnumeration", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedEnumeration().isEmpty()); + } + + @Test + void usageNestedReferenceSettingRule() { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + EList result = (EList) semantics.evaluateSetting("Usage", "nestedReference", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedReference().isEmpty()); + } + + @Test + void usageNestedFlowSettingRule() { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + EList result = (EList) semantics.evaluateSetting("Usage", "nestedFlow", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedFlow().isEmpty()); + } + + @Test + void usageMayTimeVarySettingRule() { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + assertFalse((Boolean) semantics.evaluateSetting("Usage", "mayTimeVary", usage)); + assertFalse(usage.isMayTimeVary()); + } + + @Test + void verificationCaseUsageVerifiedRequirementSettingRule() { + VerificationCaseUsage verificationCaseUsage = SysMLFactory.eINSTANCE.createVerificationCaseUsage(); + EList result = (EList) semantics.evaluateSetting( + "VerificationCaseUsage", "verifiedRequirement", verificationCaseUsage); + assertTrue(result.isEmpty()); + assertTrue(verificationCaseUsage.getVerifiedRequirement().isEmpty()); + } + + @Test + void verificationCaseUsageVerificationCaseDefinitionSubsetsFallbackSettingRule() { + var verificationCaseUsage = SysMLFactory.eINSTANCE.createVerificationCaseUsage(); + assertNull(semantics.evaluateSetting( + "VerificationCaseUsage", "verificationCaseDefinition", verificationCaseUsage)); + assertNull(verificationCaseUsage.getVerificationCaseDefinition()); + } + + @Test + void usageNestedConnectionSettingRule() { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + EList result = (EList) semantics.evaluateSetting("Usage", "nestedConnection", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedConnection().isEmpty()); + } + + @Test + void caseUsageSubjectParameterSettingRule() { + CaseUsage caseUsage = SysMLFactory.eINSTANCE.createCaseUsage(); + assertNull(semantics.evaluateSetting("CaseUsage", "subjectParameter", caseUsage)); + assertNull(caseUsage.getSubjectParameter()); + } + + @Test + void transitionUsageSourceSettingRule() { + TransitionUsage transitionUsage = SysMLFactory.eINSTANCE.createTransitionUsage(); + assertNull(semantics.evaluateSetting("TransitionUsage", "source", transitionUsage)); + assertNull(transitionUsage.getSource()); + } + + @Test + void usageNestedRenderingSettingRule() { + ActionUsage usage = SysMLFactory.eINSTANCE.createActionUsage(); + EList result = (EList) semantics.evaluateSetting("Usage", "nestedRendering", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedRendering().isEmpty()); + } + + @Test + void requirementUsageRequiredConstraintSettingRule() { + RequirementUsage requirementUsage = SysMLFactory.eINSTANCE.createRequirementUsage(); + EList result = (EList) semantics.evaluateSetting("RequirementUsage", "requiredConstraint", requirementUsage); + assertTrue(result.isEmpty()); + assertTrue(requirementUsage.getRequiredConstraint().isEmpty()); + } + + @Test + void usageNestedPartSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedPart", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedPart().isEmpty()); + } + + @Test + void usageNestedItemSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedItem", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedItem().isEmpty()); + } + + @Test + void usageNestedViewSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedView", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedView().isEmpty()); + } + + @Test + void usageNestedViewpointSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedViewpoint", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedViewpoint().isEmpty()); + } + + @Test + void usageNestedOccurrenceSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedOccurrence", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedOccurrence().isEmpty()); + } + + @Test + void usageNestedTransitionSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedTransition", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedTransition().isEmpty()); + } + + @Test + void usageNestedCalculationSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedCalculation", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedCalculation().isEmpty()); + } + + @Test + void usageNestedMetadataSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedMetadata", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedMetadata().isEmpty()); + } + + @Test + void usageNestedStateSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedState", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedState().isEmpty()); + } + + @Test + void usageNestedAttributeSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedAttribute", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedAttribute().isEmpty()); + } + + @Test + void usageNestedCaseSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedCase", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedCase().isEmpty()); + } + + @Test + void usageNestedActionSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedAction", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedAction().isEmpty()); + } + + @Test + void usageNestedConcernSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedConcern", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedConcern().isEmpty()); + } + + @Test + void usageNestedRequirementSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedRequirement", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedRequirement().isEmpty()); + } + + @Test + void usageNestedConstraintSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedConstraint", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedConstraint().isEmpty()); + } + + @Test + void usageNestedInterfaceSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedInterface", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedInterface().isEmpty()); + } + + @Test + void usageNestedAllocationSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedAllocation", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedAllocation().isEmpty()); + } + + @Test + void usageNestedVerificationCaseSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedVerificationCase", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedVerificationCase().isEmpty()); + } + + @Test + void usageNestedUsageSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedUsage", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedUsage().isEmpty()); + } + + @Test + void usageNestedPortSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "nestedPort", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getNestedPort().isEmpty()); + } + + @Test + void requirementUsageActorParameterSettingRule() { + var requirementUsage = SysMLFactory.eINSTANCE.createRequirementUsage(); + var result = (EList) semantics.evaluateSetting("RequirementUsage", "actorParameter", requirementUsage); + assertTrue(result.isEmpty()); + assertTrue(requirementUsage.getActorParameter().isEmpty()); + } + + @Test + void requirementUsageAssumedConstraintSettingRule() { + var requirementUsage = SysMLFactory.eINSTANCE.createRequirementUsage(); + var result = (EList) semantics.evaluateSetting("RequirementUsage", "assumedConstraint", requirementUsage); + assertTrue(result.isEmpty()); + assertTrue(requirementUsage.getAssumedConstraint().isEmpty()); + } + + @Test + void requirementUsageFramedConcernSettingRule() { + var requirementUsage = SysMLFactory.eINSTANCE.createRequirementUsage(); + var result = (EList) semantics.evaluateSetting("RequirementUsage", "framedConcern", requirementUsage); + assertTrue(result.isEmpty()); + assertTrue(requirementUsage.getFramedConcern().isEmpty()); + } + + @Test + void requirementUsageStakeholderParameterSettingRule() { + var requirementUsage = SysMLFactory.eINSTANCE.createRequirementUsage(); + var result = (EList) semantics.evaluateSetting( + "RequirementUsage", "stakeholderParameter", requirementUsage); + assertTrue(result.isEmpty()); + assertTrue(requirementUsage.getStakeholderParameter().isEmpty()); + } + + @Test + void requirementUsageTextSettingRule() { + var requirementUsage = SysMLFactory.eINSTANCE.createRequirementUsage(); + var result = (EList) semantics.evaluateSetting("RequirementUsage", "text", requirementUsage); + assertTrue(result.isEmpty()); + assertTrue(requirementUsage.getText().isEmpty()); + } + + @Test + void viewUsageViewConditionSettingRule() { + var viewUsage = SysMLFactory.eINSTANCE.createViewUsage(); + var result = (EList) semantics.evaluateSetting("ViewUsage", "viewCondition", viewUsage); + assertTrue(result.isEmpty()); + assertTrue(viewUsage.getViewCondition().isEmpty()); + } + + @Test + void viewUsageSatisfiedViewpointSettingRule() { + var viewUsage = SysMLFactory.eINSTANCE.createViewUsage(); + var result = (EList) semantics.evaluateSetting("ViewUsage", "satisfiedViewpoint", viewUsage); + assertTrue(result.isEmpty()); + assertTrue(viewUsage.getSatisfiedViewpoint().isEmpty()); + } + + @Test + void viewUsageViewRenderingSettingRule() { + var viewUsage = SysMLFactory.eINSTANCE.createViewUsage(); + assertNull(semantics.evaluateSetting("ViewUsage", "viewRendering", viewUsage)); + assertNull(viewUsage.getViewRendering()); + } + + @Test + void viewpointUsageViewpointStakeholderSettingRule() { + var viewpointUsage = SysMLFactory.eINSTANCE.createViewpointUsage(); + var result = (EList) semantics.evaluateSetting("ViewpointUsage", "viewpointStakeholder", viewpointUsage); + assertTrue(result.isEmpty()); + assertTrue(viewpointUsage.getViewpointStakeholder().isEmpty()); + } + + @Test + void useCaseUsageIncludedUseCaseSettingRule() { + var useCaseUsage = SysMLFactory.eINSTANCE.createUseCaseUsage(); + var result = (EList) semantics.evaluateSetting("UseCaseUsage", "includedUseCase", useCaseUsage); + assertTrue(result.isEmpty()); + assertTrue(useCaseUsage.getIncludedUseCase().isEmpty()); + } + + @Test + void includeUseCaseUsageUseCaseIncludedSettingRule() { + var includeUseCaseUsage = SysMLFactory.eINSTANCE.createIncludeUseCaseUsage(); + assertSame(includeUseCaseUsage, semantics.evaluateSetting( + "IncludeUseCaseUsage", "useCaseIncluded", includeUseCaseUsage)); + assertSame(includeUseCaseUsage, includeUseCaseUsage.getUseCaseIncluded()); + } + + @Test + void analysisCaseUsageResultExpressionSettingRule() { + var analysisCaseUsage = SysMLFactory.eINSTANCE.createAnalysisCaseUsage(); + assertNull(semantics.evaluateSetting("AnalysisCaseUsage", "resultExpression", analysisCaseUsage)); + assertNull(analysisCaseUsage.getResultExpression()); + } + + @Test + void forLoopActionUsageSeqArgumentSettingRule() { + var forLoopActionUsage = SysMLFactory.eINSTANCE.createForLoopActionUsage(); + assertNull(semantics.evaluateSetting("ForLoopActionUsage", "seqArgument", forLoopActionUsage)); + assertNull(forLoopActionUsage.getSeqArgument()); + } + + @Test + void stateUsageExitActionSettingRule() { + var stateUsage = SysMLFactory.eINSTANCE.createStateUsage(); + assertNull(semantics.evaluateSetting("StateUsage", "exitAction", stateUsage)); + assertNull(stateUsage.getExitAction()); + } + + @Test + void transitionUsageGuardExpressionSettingRule() { + var transitionUsage = SysMLFactory.eINSTANCE.createTransitionUsage(); + var result = (EList) semantics.evaluateSetting("TransitionUsage", "guardExpression", transitionUsage); + assertTrue(result.isEmpty()); + assertTrue(transitionUsage.getGuardExpression().isEmpty()); + } + + @Test + void sendActionUsageReceiverArgumentSettingRule() { + var sendActionUsage = SysMLFactory.eINSTANCE.createSendActionUsage(); + assertNull(semantics.evaluateSetting("SendActionUsage", "receiverArgument", sendActionUsage)); + assertNull(sendActionUsage.getReceiverArgument()); + } + + @Test + void transitionUsageTargetSettingRule() { + var transitionUsage = SysMLFactory.eINSTANCE.createTransitionUsage(); + assertNull(semantics.evaluateSetting("TransitionUsage", "target", transitionUsage)); + assertNull(transitionUsage.getTarget()); + } + + @Test + void forLoopActionUsageLoopVariableSettingRule() { + var forLoopActionUsage = SysMLFactory.eINSTANCE.createForLoopActionUsage(); + assertNull(semantics.evaluateSetting("ForLoopActionUsage", "loopVariable", forLoopActionUsage)); + assertNull(forLoopActionUsage.getLoopVariable()); + } + + @Test + void whileLoopActionUsageWhileArgumentSettingRule() { + var whileLoopActionUsage = SysMLFactory.eINSTANCE.createWhileLoopActionUsage(); + assertNull(semantics.evaluateSetting("WhileLoopActionUsage", "whileArgument", whileLoopActionUsage)); + assertNull(whileLoopActionUsage.getWhileArgument()); + } + + @Test + void whileLoopActionUsageUntilArgumentSettingRule() { + var whileLoopActionUsage = SysMLFactory.eINSTANCE.createWhileLoopActionUsage(); + assertNull(semantics.evaluateSetting("WhileLoopActionUsage", "untilArgument", whileLoopActionUsage)); + assertNull(whileLoopActionUsage.getUntilArgument()); + } + + @Test + void occurrenceUsageIndividualDefinitionSettingRule() { + var occurrenceUsage = SysMLFactory.eINSTANCE.createOccurrenceUsage(); + assertNull(semantics.evaluateSetting("OccurrenceUsage", "individualDefinition", occurrenceUsage)); + assertNull(occurrenceUsage.getIndividualDefinition()); + } + + @Test + void stepBehaviorSettingRule() { + var step = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Step", "behavior", step); + assertTrue(result.isEmpty()); + assertTrue(step.getBehavior().isEmpty()); + } + + @Test + void stepParameterSettingRule() { + var step = SysMLFactory.eINSTANCE.createActionUsage(); + var parameter = SysMLFactory.eINSTANCE.createPartUsage(); + parameter.setDirection(FeatureDirectionKind.IN); + var parameterMembership = SysMLFactory.eINSTANCE.createParameterMembership(); + parameterMembership.setMemberElement(parameter); + step.getOwnedRelationship().add(parameterMembership); + var result = (EList) semantics.evaluateSetting("Step", "parameter", step); + assertEquals(1, result.size()); + assertSame(parameter, result.get(0)); + } + + @Test + void acceptActionUsagePayloadParameterSettingRule() { + var acceptActionUsage = SysMLFactory.eINSTANCE.createAcceptActionUsage(); + assertNull(semantics.evaluateSetting("AcceptActionUsage", "payloadParameter", acceptActionUsage)); + assertNull(acceptActionUsage.getPayloadParameter()); + } + + @Test + void satisfyRequirementUsageSatisfyingFeatureSettingRule() { + var satisfyRequirementUsage = SysMLFactory.eINSTANCE.createSatisfyRequirementUsage(); + assertNull(semantics.evaluateSetting( + "SatisfyRequirementUsage", "satisfyingFeature", satisfyRequirementUsage)); + assertNull(satisfyRequirementUsage.getSatisfyingFeature()); + } + + @Test + void satisfyRequirementUsageSatisfiedRequirementSettingRule() { + var satisfyRequirementUsage = SysMLFactory.eINSTANCE.createSatisfyRequirementUsage(); + assertSame(satisfyRequirementUsage, semantics.evaluateSetting( + "SatisfyRequirementUsage", "satisfiedRequirement", satisfyRequirementUsage)); + assertSame(satisfyRequirementUsage, satisfyRequirementUsage.getSatisfiedRequirement()); + } + + @Test + void transitionUsageSuccessionSettingRule() { + var transitionUsage = SysMLFactory.eINSTANCE.createTransitionUsage(); + assertNull(semantics.evaluateSetting("TransitionUsage", "succession", transitionUsage)); + assertNull(transitionUsage.getSuccession()); + } + + @Test + void usageIsReferenceSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + assertTrue((Boolean) semantics.evaluateSetting("Usage", "isReference", usage)); + assertTrue(usage.isIsReference()); + } + + @Test + void acceptActionUsageReceiverArgumentSettingRule() { + var acceptActionUsage = SysMLFactory.eINSTANCE.createAcceptActionUsage(); + assertNull(semantics.evaluateSetting("AcceptActionUsage", "receiverArgument", acceptActionUsage)); + assertNull(acceptActionUsage.getReceiverArgument()); + } + + @Test + void eventOccurrenceUsageEventOccurrenceSettingRule() { + var eventOccurrenceUsage = SysMLFactory.eINSTANCE.createEventOccurrenceUsage(); + assertSame(eventOccurrenceUsage, semantics.evaluateSetting( + "EventOccurrenceUsage", "eventOccurrence", eventOccurrenceUsage)); + assertSame(eventOccurrenceUsage, eventOccurrenceUsage.getEventOccurrence()); + } + + @Test + void performActionUsagePerformedActionSettingRule() { + var performActionUsage = SysMLFactory.eINSTANCE.createPerformActionUsage(); + assertSame(performActionUsage, semantics.evaluateSetting( + "PerformActionUsage", "performedAction", performActionUsage)); + assertSame(performActionUsage, performActionUsage.getPerformedAction()); + } + + @Test + void exhibitStateUsageExhibitedStateSettingRule() { + var exhibitStateUsage = SysMLFactory.eINSTANCE.createExhibitStateUsage(); + assertSame(exhibitStateUsage, semantics.evaluateSetting( + "ExhibitStateUsage", "exhibitedState", exhibitStateUsage)); + assertSame(exhibitStateUsage, exhibitStateUsage.getExhibitedState()); + } + + @Test + void stateUsageEntryActionSettingRule() { + var stateUsage = SysMLFactory.eINSTANCE.createStateUsage(); + assertNull(semantics.evaluateSetting("StateUsage", "entryAction", stateUsage)); + assertNull(stateUsage.getEntryAction()); + } + + @Test + void stateUsageDoActionSettingRule() { + var stateUsage = SysMLFactory.eINSTANCE.createStateUsage(); + assertNull(semantics.evaluateSetting("StateUsage", "doAction", stateUsage)); + assertNull(stateUsage.getDoAction()); + } + + @Test + void caseUsageActorParameterSettingRule() { + var caseUsage = SysMLFactory.eINSTANCE.createCaseUsage(); + var result = (EList) semantics.evaluateSetting("CaseUsage", "actorParameter", caseUsage); + assertTrue(result.isEmpty()); + assertTrue(caseUsage.getActorParameter().isEmpty()); + } + + @Test + void caseUsageObjectiveRequirementSettingRule() { + var caseUsage = SysMLFactory.eINSTANCE.createCaseUsage(); + assertNull(semantics.evaluateSetting("CaseUsage", "objectiveRequirement", caseUsage)); + assertNull(caseUsage.getObjectiveRequirement()); + } + + @Test + void ifActionUsageIfArgumentSettingRule() { + var ifActionUsage = SysMLFactory.eINSTANCE.createIfActionUsage(); + assertNull(semantics.evaluateSetting("IfActionUsage", "ifArgument", ifActionUsage)); + assertNull(ifActionUsage.getIfArgument()); + } + + @Test + void sendActionUsagePayloadArgumentSettingRule() { + var sendActionUsage = SysMLFactory.eINSTANCE.createSendActionUsage(); + assertNull(semantics.evaluateSetting("SendActionUsage", "payloadArgument", sendActionUsage)); + assertNull(sendActionUsage.getPayloadArgument()); + } + + @Test + void acceptActionUsagePayloadArgumentSettingRule() { + var acceptActionUsage = SysMLFactory.eINSTANCE.createAcceptActionUsage(); + assertNull(semantics.evaluateSetting("AcceptActionUsage", "payloadArgument", acceptActionUsage)); + assertNull(acceptActionUsage.getPayloadArgument()); + } + + @Test + void usageVariantMembershipSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "variantMembership", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getVariantMembership().isEmpty()); + } + + @Test + void ifActionUsageThenActionSettingRule() { + var ifActionUsage = SysMLFactory.eINSTANCE.createIfActionUsage(); + assertNull(semantics.evaluateSetting("IfActionUsage", "thenAction", ifActionUsage)); + assertNull(ifActionUsage.getThenAction()); + } + + @Test + void ifActionUsageElseActionSettingRule() { + var ifActionUsage = SysMLFactory.eINSTANCE.createIfActionUsage(); + assertNull(semantics.evaluateSetting("IfActionUsage", "elseAction", ifActionUsage)); + assertNull(ifActionUsage.getElseAction()); + } + + @Test + void usageDirectedUsageSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "directedUsage", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getDirectedUsage().isEmpty()); + } + + @Test + void loopActionUsageBodyActionSettingRule() { + var loopActionUsage = SysMLFactory.eINSTANCE.createWhileLoopActionUsage(); + assertNull(semantics.evaluateSetting("LoopActionUsage", "bodyAction", loopActionUsage)); + assertNull(loopActionUsage.getBodyAction()); + } + + @Test + void transitionUsageTriggerActionSettingRule() { + var transitionUsage = SysMLFactory.eINSTANCE.createTransitionUsage(); + var result = (EList) semantics.evaluateSetting("TransitionUsage", "triggerAction", transitionUsage); + assertTrue(result.isEmpty()); + assertTrue(transitionUsage.getTriggerAction().isEmpty()); + } + + @Test + void transitionUsageEffectActionSettingRule() { + var transitionUsage = SysMLFactory.eINSTANCE.createTransitionUsage(); + var result = (EList) semantics.evaluateSetting("TransitionUsage", "effectAction", transitionUsage); + assertTrue(result.isEmpty()); + assertTrue(transitionUsage.getEffectAction().isEmpty()); + } + + @Test + void assignmentActionUsageValueExpressionSettingRule() { + var assignmentActionUsage = SysMLFactory.eINSTANCE.createAssignmentActionUsage(); + assertNull(semantics.evaluateSetting("AssignmentActionUsage", "valueExpression", assignmentActionUsage)); + assertNull(assignmentActionUsage.getValueExpression()); + } + + @Test + void sendActionUsageSenderArgumentSettingRule() { + var sendActionUsage = SysMLFactory.eINSTANCE.createSendActionUsage(); + assertNull(semantics.evaluateSetting("SendActionUsage", "senderArgument", sendActionUsage)); + assertNull(sendActionUsage.getSenderArgument()); + } + + @Test + void assertConstraintUsageAssertedConstraintSettingRule() { + var assertConstraintUsage = SysMLFactory.eINSTANCE.createAssertConstraintUsage(); + assertSame( + assertConstraintUsage, + semantics.evaluateSetting("AssertConstraintUsage", "assertedConstraint", assertConstraintUsage)); + assertSame( + assertConstraintUsage, assertConstraintUsage.getAssertedConstraint()); + } + + @Test + void itemUsageItemDefinitionSettingRule() { + ItemUsage itemUsage = SysMLFactory.eINSTANCE.createItemUsage(); + var result = (EList) semantics.evaluateSetting("ItemUsage", "itemDefinition", itemUsage); + assertTrue(result.isEmpty()); + assertTrue(itemUsage.getItemDefinition().isEmpty()); + } + + @Test + void partUsagePartDefinitionSettingRule() { + PartUsage partUsage = SysMLFactory.eINSTANCE.createPartUsage(); + var result = (EList) semantics.evaluateSetting("PartUsage", "partDefinition", partUsage); + assertTrue(result.isEmpty()); + assertTrue(partUsage.getPartDefinition().isEmpty()); + } + + @Test + void portUsagePortDefinitionSettingRule() { + PortUsage portUsage = SysMLFactory.eINSTANCE.createPortUsage(); + PortDefinition portDefinition = SysMLFactory.eINSTANCE.createPortDefinition(); + var nonPortType = SysMLFactory.eINSTANCE.createActionUsage(); + var validTyping = SysMLFactory.eINSTANCE.createFeatureTyping(); + validTyping.setTypedFeature(portUsage); + validTyping.setType(portDefinition); + var invalidTyping = SysMLFactory.eINSTANCE.createFeatureTyping(); + invalidTyping.setTypedFeature(portUsage); + invalidTyping.setType(nonPortType); + portUsage.getOwnedRelationship().add(validTyping); + portUsage.getOwnedRelationship().add(invalidTyping); + var result = (EList) semantics.evaluateSetting("PortUsage", "portDefinition", portUsage); + assertEquals(1, result.size()); + assertSame(portDefinition, result.get(0)); + } + + @Test + void usageUsageSettingRule() { + var usage = SysMLFactory.eINSTANCE.createActionUsage(); + var result = (EList) semantics.evaluateSetting("Usage", "usage", usage); + assertTrue(result.isEmpty()); + assertTrue(usage.getUsage().isEmpty()); + } +} diff --git a/unified/org.omg.sysml.logic/.classpath b/unified/org.omg.sysml.logic/.classpath new file mode 100644 index 000000000..0a389560d --- /dev/null +++ b/unified/org.omg.sysml.logic/.classpath @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/unified/org.omg.sysml.logic/.project b/unified/org.omg.sysml.logic/.project new file mode 100644 index 000000000..807823e71 --- /dev/null +++ b/unified/org.omg.sysml.logic/.project @@ -0,0 +1,20 @@ + + + org.omg.sysml.logic + + + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.m2e.core.maven2Builder + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/unified/org.omg.sysml.logic/.settings/org.eclipse.core.resources.prefs b/unified/org.omg.sysml.logic/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..99f26c020 --- /dev/null +++ b/unified/org.omg.sysml.logic/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/unified/org.omg.sysml.logic/.settings/org.eclipse.jdt.core.prefs b/unified/org.omg.sysml.logic/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..e9186c3e3 --- /dev/null +++ b/unified/org.omg.sysml.logic/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.source=21 diff --git a/unified/org.omg.sysml.logic/.settings/org.eclipse.m2e.core.prefs b/unified/org.omg.sysml.logic/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000..54212ae86 --- /dev/null +++ b/unified/org.omg.sysml.logic/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/unified/org.omg.sysml.logic/README.md b/unified/org.omg.sysml.logic/README.md new file mode 100644 index 000000000..04d695de7 --- /dev/null +++ b/unified/org.omg.sysml.logic/README.md @@ -0,0 +1,19 @@ +# org.omg.sysml.logic + +## Purpose +- Provides the delegate runtime for derived features and operations defined in the SysML metamodel. +- Contains generated delegate classes and delegate factories/registration utilities. + +## What This Module Provides +- Invocation delegates in `org.omg.sysml.logic.delegate.invocation`. +- Setting delegates in `org.omg.sysml.logic.delegate.setting`. +- Delegate factories and registrar in `org.omg.sysml.logic.delegate`. +- Tests validating delegate coverage and Spring integration. + +## Design Intent +- Depends on `org.omg.sysml.model` (not the reverse). +- Owns behavior wiring for EMF delegate execution. + +## Generation Source of Truth +- Delegate classes are generated from + `org.omg.sysml.model/src/main/resources/model/SysML.ecore` via `org.omg.sysml.model.tools`. diff --git a/unified/org.omg.sysml.logic/pom.xml b/unified/org.omg.sysml.logic/pom.xml new file mode 100644 index 000000000..1c0bc9f01 --- /dev/null +++ b/unified/org.omg.sysml.logic/pom.xml @@ -0,0 +1,54 @@ + + + 4.0.0 + + + org.omg.sysml + org.omg.sysml.unified.parent + 0.1.0-SNAPSHOT + ../pom.xml + + + org.omg.sysml.logic + org.omg.sysml.logic + + + + org.omg.sysml + org.omg.sysml.model + ${project.version} + + + org.eclipse.emf + org.eclipse.emf.common + + + org.eclipse.emf + org.eclipse.emf.ecore + + + org.springframework + spring-context + + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.3.1 + + + attach-sources + + jar-no-fork + + + + + + + diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AbstractSysMLAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AbstractSysMLAdapter.java new file mode 100644 index 000000000..8f668de04 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AbstractSysMLAdapter.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import java.util.Optional; + +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterImpl; + +/** + * Base type for generated SysML element adapters. + * + * @param adapted SysML element type + */ +public abstract class AbstractSysMLAdapter extends AdapterImpl { + + private final Class adaptedType; + + protected AbstractSysMLAdapter(Class adaptedType) { + this.adaptedType = adaptedType; + } + + public final Class adaptedType() { + return adaptedType; + } + + @Override + public boolean isAdapterForType(Object type) { + return type == adaptedType; + } + + @Override + public void setTarget(Notifier newTarget) { + super.setTarget(newTarget); + } + + public final Optional adaptedTarget() { + var target = getTarget(); + if (adaptedType.isInstance(target)) { + return Optional.of(adaptedType.cast(target)); + } + return Optional.empty(); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AcceptActionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AcceptActionUsageAdapter.java new file mode 100644 index 000000000..99ad7b195 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AcceptActionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AcceptActionUsage; + +/** + * Generated adapter for {@link AcceptActionUsage}. + */ +public class AcceptActionUsageAdapter extends AbstractSysMLAdapter { + + public AcceptActionUsageAdapter() { + super(AcceptActionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ActionDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ActionDefinitionAdapter.java new file mode 100644 index 000000000..6cc97976f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ActionDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ActionDefinition; + +/** + * Generated adapter for {@link ActionDefinition}. + */ +public class ActionDefinitionAdapter extends AbstractSysMLAdapter { + + public ActionDefinitionAdapter() { + super(ActionDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ActionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ActionUsageAdapter.java new file mode 100644 index 000000000..dfc273c8d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ActionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ActionUsage; + +/** + * Generated adapter for {@link ActionUsage}. + */ +public class ActionUsageAdapter extends AbstractSysMLAdapter { + + public ActionUsageAdapter() { + super(ActionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ActorMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ActorMembershipAdapter.java new file mode 100644 index 000000000..cc87c6264 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ActorMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ActorMembership; + +/** + * Generated adapter for {@link ActorMembership}. + */ +public class ActorMembershipAdapter extends AbstractSysMLAdapter { + + public ActorMembershipAdapter() { + super(ActorMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AllocationDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AllocationDefinitionAdapter.java new file mode 100644 index 000000000..87f44d63a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AllocationDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AllocationDefinition; + +/** + * Generated adapter for {@link AllocationDefinition}. + */ +public class AllocationDefinitionAdapter extends AbstractSysMLAdapter { + + public AllocationDefinitionAdapter() { + super(AllocationDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AllocationUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AllocationUsageAdapter.java new file mode 100644 index 000000000..208da297c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AllocationUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AllocationUsage; + +/** + * Generated adapter for {@link AllocationUsage}. + */ +public class AllocationUsageAdapter extends AbstractSysMLAdapter { + + public AllocationUsageAdapter() { + super(AllocationUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnalysisCaseDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnalysisCaseDefinitionAdapter.java new file mode 100644 index 000000000..0b2f5c868 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnalysisCaseDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AnalysisCaseDefinition; + +/** + * Generated adapter for {@link AnalysisCaseDefinition}. + */ +public class AnalysisCaseDefinitionAdapter extends AbstractSysMLAdapter { + + public AnalysisCaseDefinitionAdapter() { + super(AnalysisCaseDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnalysisCaseUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnalysisCaseUsageAdapter.java new file mode 100644 index 000000000..e8bd1f762 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnalysisCaseUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AnalysisCaseUsage; + +/** + * Generated adapter for {@link AnalysisCaseUsage}. + */ +public class AnalysisCaseUsageAdapter extends AbstractSysMLAdapter { + + public AnalysisCaseUsageAdapter() { + super(AnalysisCaseUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnnotatingElementAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnnotatingElementAdapter.java new file mode 100644 index 000000000..54a0ca2ae --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnnotatingElementAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AnnotatingElement; + +/** + * Generated adapter for {@link AnnotatingElement}. + */ +public class AnnotatingElementAdapter extends AbstractSysMLAdapter { + + public AnnotatingElementAdapter() { + super(AnnotatingElement.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnnotationAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnnotationAdapter.java new file mode 100644 index 000000000..05f2ab098 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AnnotationAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Annotation; + +/** + * Generated adapter for {@link Annotation}. + */ +public class AnnotationAdapter extends AbstractSysMLAdapter { + + public AnnotationAdapter() { + super(Annotation.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssertConstraintUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssertConstraintUsageAdapter.java new file mode 100644 index 000000000..fdf740993 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssertConstraintUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AssertConstraintUsage; + +/** + * Generated adapter for {@link AssertConstraintUsage}. + */ +public class AssertConstraintUsageAdapter extends AbstractSysMLAdapter { + + public AssertConstraintUsageAdapter() { + super(AssertConstraintUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssignmentActionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssignmentActionUsageAdapter.java new file mode 100644 index 000000000..a7ab35364 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssignmentActionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AssignmentActionUsage; + +/** + * Generated adapter for {@link AssignmentActionUsage}. + */ +public class AssignmentActionUsageAdapter extends AbstractSysMLAdapter { + + public AssignmentActionUsageAdapter() { + super(AssignmentActionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssociationAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssociationAdapter.java new file mode 100644 index 000000000..483cea2b2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssociationAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Association; + +/** + * Generated adapter for {@link Association}. + */ +public class AssociationAdapter extends AbstractSysMLAdapter { + + public AssociationAdapter() { + super(Association.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssociationStructureAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssociationStructureAdapter.java new file mode 100644 index 000000000..ae83dac0d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AssociationStructureAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AssociationStructure; + +/** + * Generated adapter for {@link AssociationStructure}. + */ +public class AssociationStructureAdapter extends AbstractSysMLAdapter { + + public AssociationStructureAdapter() { + super(AssociationStructure.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AttributeDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AttributeDefinitionAdapter.java new file mode 100644 index 000000000..32ba7da2f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AttributeDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AttributeDefinition; + +/** + * Generated adapter for {@link AttributeDefinition}. + */ +public class AttributeDefinitionAdapter extends AbstractSysMLAdapter { + + public AttributeDefinitionAdapter() { + super(AttributeDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AttributeUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AttributeUsageAdapter.java new file mode 100644 index 000000000..fdad4aae2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/AttributeUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.AttributeUsage; + +/** + * Generated adapter for {@link AttributeUsage}. + */ +public class AttributeUsageAdapter extends AbstractSysMLAdapter { + + public AttributeUsageAdapter() { + super(AttributeUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BehaviorAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BehaviorAdapter.java new file mode 100644 index 000000000..d6f3e9bfe --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BehaviorAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Behavior; + +/** + * Generated adapter for {@link Behavior}. + */ +public class BehaviorAdapter extends AbstractSysMLAdapter { + + public BehaviorAdapter() { + super(Behavior.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BindingConnectorAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BindingConnectorAdapter.java new file mode 100644 index 000000000..eab02a815 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BindingConnectorAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.BindingConnector; + +/** + * Generated adapter for {@link BindingConnector}. + */ +public class BindingConnectorAdapter extends AbstractSysMLAdapter { + + public BindingConnectorAdapter() { + super(BindingConnector.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BindingConnectorAsUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BindingConnectorAsUsageAdapter.java new file mode 100644 index 000000000..32c03a1a7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BindingConnectorAsUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.BindingConnectorAsUsage; + +/** + * Generated adapter for {@link BindingConnectorAsUsage}. + */ +public class BindingConnectorAsUsageAdapter extends AbstractSysMLAdapter { + + public BindingConnectorAsUsageAdapter() { + super(BindingConnectorAsUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BooleanExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BooleanExpressionAdapter.java new file mode 100644 index 000000000..08f117cdb --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/BooleanExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.BooleanExpression; + +/** + * Generated adapter for {@link BooleanExpression}. + */ +public class BooleanExpressionAdapter extends AbstractSysMLAdapter { + + public BooleanExpressionAdapter() { + super(BooleanExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CalculationDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CalculationDefinitionAdapter.java new file mode 100644 index 000000000..3a80dee51 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CalculationDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.CalculationDefinition; + +/** + * Generated adapter for {@link CalculationDefinition}. + */ +public class CalculationDefinitionAdapter extends AbstractSysMLAdapter { + + public CalculationDefinitionAdapter() { + super(CalculationDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CalculationUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CalculationUsageAdapter.java new file mode 100644 index 000000000..2d3d323f3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CalculationUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.CalculationUsage; + +/** + * Generated adapter for {@link CalculationUsage}. + */ +public class CalculationUsageAdapter extends AbstractSysMLAdapter { + + public CalculationUsageAdapter() { + super(CalculationUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CaseDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CaseDefinitionAdapter.java new file mode 100644 index 000000000..f26cba1d3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CaseDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.CaseDefinition; + +/** + * Generated adapter for {@link CaseDefinition}. + */ +public class CaseDefinitionAdapter extends AbstractSysMLAdapter { + + public CaseDefinitionAdapter() { + super(CaseDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CaseUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CaseUsageAdapter.java new file mode 100644 index 000000000..5acf65a71 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CaseUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.CaseUsage; + +/** + * Generated adapter for {@link CaseUsage}. + */ +public class CaseUsageAdapter extends AbstractSysMLAdapter { + + public CaseUsageAdapter() { + super(CaseUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ClassAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ClassAdapter.java new file mode 100644 index 000000000..99dc0fdbd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ClassAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Class; + +/** + * Generated adapter for {@link Class}. + */ +public class ClassAdapter extends AbstractSysMLAdapter { + + public ClassAdapter() { + super(Class.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ClassifierAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ClassifierAdapter.java new file mode 100644 index 000000000..74983a09d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ClassifierAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Classifier; + +/** + * Generated adapter for {@link Classifier}. + */ +public class ClassifierAdapter extends AbstractSysMLAdapter { + + public ClassifierAdapter() { + super(Classifier.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CollectExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CollectExpressionAdapter.java new file mode 100644 index 000000000..908f509c7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CollectExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.CollectExpression; + +/** + * Generated adapter for {@link CollectExpression}. + */ +public class CollectExpressionAdapter extends AbstractSysMLAdapter { + + public CollectExpressionAdapter() { + super(CollectExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CommentAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CommentAdapter.java new file mode 100644 index 000000000..549e980a6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CommentAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Comment; + +/** + * Generated adapter for {@link Comment}. + */ +public class CommentAdapter extends AbstractSysMLAdapter { + + public CommentAdapter() { + super(Comment.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConcernDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConcernDefinitionAdapter.java new file mode 100644 index 000000000..a9526ce41 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConcernDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ConcernDefinition; + +/** + * Generated adapter for {@link ConcernDefinition}. + */ +public class ConcernDefinitionAdapter extends AbstractSysMLAdapter { + + public ConcernDefinitionAdapter() { + super(ConcernDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConcernUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConcernUsageAdapter.java new file mode 100644 index 000000000..451a5de11 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConcernUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ConcernUsage; + +/** + * Generated adapter for {@link ConcernUsage}. + */ +public class ConcernUsageAdapter extends AbstractSysMLAdapter { + + public ConcernUsageAdapter() { + super(ConcernUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConjugatedPortDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConjugatedPortDefinitionAdapter.java new file mode 100644 index 000000000..88e2657a3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConjugatedPortDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; + +/** + * Generated adapter for {@link ConjugatedPortDefinition}. + */ +public class ConjugatedPortDefinitionAdapter extends AbstractSysMLAdapter { + + public ConjugatedPortDefinitionAdapter() { + super(ConjugatedPortDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConjugatedPortTypingAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConjugatedPortTypingAdapter.java new file mode 100644 index 000000000..8b7cdab25 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConjugatedPortTypingAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ConjugatedPortTyping; + +/** + * Generated adapter for {@link ConjugatedPortTyping}. + */ +public class ConjugatedPortTypingAdapter extends AbstractSysMLAdapter { + + public ConjugatedPortTypingAdapter() { + super(ConjugatedPortTyping.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConjugationAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConjugationAdapter.java new file mode 100644 index 000000000..f421e3c58 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConjugationAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Conjugation; + +/** + * Generated adapter for {@link Conjugation}. + */ +public class ConjugationAdapter extends AbstractSysMLAdapter { + + public ConjugationAdapter() { + super(Conjugation.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectionDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectionDefinitionAdapter.java new file mode 100644 index 000000000..a3c025849 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectionDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ConnectionDefinition; + +/** + * Generated adapter for {@link ConnectionDefinition}. + */ +public class ConnectionDefinitionAdapter extends AbstractSysMLAdapter { + + public ConnectionDefinitionAdapter() { + super(ConnectionDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectionUsageAdapter.java new file mode 100644 index 000000000..d6884468e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ConnectionUsage; + +/** + * Generated adapter for {@link ConnectionUsage}. + */ +public class ConnectionUsageAdapter extends AbstractSysMLAdapter { + + public ConnectionUsageAdapter() { + super(ConnectionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectorAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectorAdapter.java new file mode 100644 index 000000000..a788c5f3f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectorAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Connector; + +/** + * Generated adapter for {@link Connector}. + */ +public class ConnectorAdapter extends AbstractSysMLAdapter { + + public ConnectorAdapter() { + super(Connector.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectorAsUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectorAsUsageAdapter.java new file mode 100644 index 000000000..f57c99c07 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConnectorAsUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ConnectorAsUsage; + +/** + * Generated adapter for {@link ConnectorAsUsage}. + */ +public class ConnectorAsUsageAdapter extends AbstractSysMLAdapter { + + public ConnectorAsUsageAdapter() { + super(ConnectorAsUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConstraintDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConstraintDefinitionAdapter.java new file mode 100644 index 000000000..1d0f67005 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConstraintDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ConstraintDefinition; + +/** + * Generated adapter for {@link ConstraintDefinition}. + */ +public class ConstraintDefinitionAdapter extends AbstractSysMLAdapter { + + public ConstraintDefinitionAdapter() { + super(ConstraintDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConstraintUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConstraintUsageAdapter.java new file mode 100644 index 000000000..8ed63fb6b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConstraintUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ConstraintUsage; + +/** + * Generated adapter for {@link ConstraintUsage}. + */ +public class ConstraintUsageAdapter extends AbstractSysMLAdapter { + + public ConstraintUsageAdapter() { + super(ConstraintUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConstructorExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConstructorExpressionAdapter.java new file mode 100644 index 000000000..2149f46a9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ConstructorExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ConstructorExpression; + +/** + * Generated adapter for {@link ConstructorExpression}. + */ +public class ConstructorExpressionAdapter extends AbstractSysMLAdapter { + + public ConstructorExpressionAdapter() { + super(ConstructorExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ControlNodeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ControlNodeAdapter.java new file mode 100644 index 000000000..93328bc45 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ControlNodeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ControlNode; + +/** + * Generated adapter for {@link ControlNode}. + */ +public class ControlNodeAdapter extends AbstractSysMLAdapter { + + public ControlNodeAdapter() { + super(ControlNode.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CrossSubsettingAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CrossSubsettingAdapter.java new file mode 100644 index 000000000..d6049d2d3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/CrossSubsettingAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.CrossSubsetting; + +/** + * Generated adapter for {@link CrossSubsetting}. + */ +public class CrossSubsettingAdapter extends AbstractSysMLAdapter { + + public CrossSubsettingAdapter() { + super(CrossSubsetting.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DataTypeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DataTypeAdapter.java new file mode 100644 index 000000000..926bc2ebe --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DataTypeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.DataType; + +/** + * Generated adapter for {@link DataType}. + */ +public class DataTypeAdapter extends AbstractSysMLAdapter { + + public DataTypeAdapter() { + super(DataType.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DecisionNodeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DecisionNodeAdapter.java new file mode 100644 index 000000000..dec5ad1b1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DecisionNodeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.DecisionNode; + +/** + * Generated adapter for {@link DecisionNode}. + */ +public class DecisionNodeAdapter extends AbstractSysMLAdapter { + + public DecisionNodeAdapter() { + super(DecisionNode.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DefinitionAdapter.java new file mode 100644 index 000000000..00c263fc5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Definition; + +/** + * Generated adapter for {@link Definition}. + */ +public class DefinitionAdapter extends AbstractSysMLAdapter { + + public DefinitionAdapter() { + super(Definition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DependencyAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DependencyAdapter.java new file mode 100644 index 000000000..8fd58f4b9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DependencyAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Dependency; + +/** + * Generated adapter for {@link Dependency}. + */ +public class DependencyAdapter extends AbstractSysMLAdapter { + + public DependencyAdapter() { + super(Dependency.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DifferencingAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DifferencingAdapter.java new file mode 100644 index 000000000..ca727a9b0 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DifferencingAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Differencing; + +/** + * Generated adapter for {@link Differencing}. + */ +public class DifferencingAdapter extends AbstractSysMLAdapter { + + public DifferencingAdapter() { + super(Differencing.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DisjoiningAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DisjoiningAdapter.java new file mode 100644 index 000000000..f4e40f111 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DisjoiningAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Disjoining; + +/** + * Generated adapter for {@link Disjoining}. + */ +public class DisjoiningAdapter extends AbstractSysMLAdapter { + + public DisjoiningAdapter() { + super(Disjoining.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DocumentationAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DocumentationAdapter.java new file mode 100644 index 000000000..df8c36631 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/DocumentationAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Documentation; + +/** + * Generated adapter for {@link Documentation}. + */ +public class DocumentationAdapter extends AbstractSysMLAdapter { + + public DocumentationAdapter() { + super(Documentation.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ElementAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ElementAdapter.java new file mode 100644 index 000000000..373adcddb --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ElementAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Element; + +/** + * Generated adapter for {@link Element}. + */ +public class ElementAdapter extends AbstractSysMLAdapter { + + public ElementAdapter() { + super(Element.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ElementFilterMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ElementFilterMembershipAdapter.java new file mode 100644 index 000000000..9978796c5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ElementFilterMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ElementFilterMembership; + +/** + * Generated adapter for {@link ElementFilterMembership}. + */ +public class ElementFilterMembershipAdapter extends AbstractSysMLAdapter { + + public ElementFilterMembershipAdapter() { + super(ElementFilterMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EndFeatureMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EndFeatureMembershipAdapter.java new file mode 100644 index 000000000..6b3b1f589 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EndFeatureMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.EndFeatureMembership; + +/** + * Generated adapter for {@link EndFeatureMembership}. + */ +public class EndFeatureMembershipAdapter extends AbstractSysMLAdapter { + + public EndFeatureMembershipAdapter() { + super(EndFeatureMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EnumerationDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EnumerationDefinitionAdapter.java new file mode 100644 index 000000000..fd1991487 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EnumerationDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.EnumerationDefinition; + +/** + * Generated adapter for {@link EnumerationDefinition}. + */ +public class EnumerationDefinitionAdapter extends AbstractSysMLAdapter { + + public EnumerationDefinitionAdapter() { + super(EnumerationDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EnumerationUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EnumerationUsageAdapter.java new file mode 100644 index 000000000..da35ea9b6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EnumerationUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.EnumerationUsage; + +/** + * Generated adapter for {@link EnumerationUsage}. + */ +public class EnumerationUsageAdapter extends AbstractSysMLAdapter { + + public EnumerationUsageAdapter() { + super(EnumerationUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EventOccurrenceUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EventOccurrenceUsageAdapter.java new file mode 100644 index 000000000..d0fc6bcdf --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/EventOccurrenceUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.EventOccurrenceUsage; + +/** + * Generated adapter for {@link EventOccurrenceUsage}. + */ +public class EventOccurrenceUsageAdapter extends AbstractSysMLAdapter { + + public EventOccurrenceUsageAdapter() { + super(EventOccurrenceUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ExhibitStateUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ExhibitStateUsageAdapter.java new file mode 100644 index 000000000..2d6574376 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ExhibitStateUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ExhibitStateUsage; + +/** + * Generated adapter for {@link ExhibitStateUsage}. + */ +public class ExhibitStateUsageAdapter extends AbstractSysMLAdapter { + + public ExhibitStateUsageAdapter() { + super(ExhibitStateUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ExposeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ExposeAdapter.java new file mode 100644 index 000000000..fcf811a26 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ExposeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Expose; + +/** + * Generated adapter for {@link Expose}. + */ +public class ExposeAdapter extends AbstractSysMLAdapter { + + public ExposeAdapter() { + super(Expose.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ExpressionAdapter.java new file mode 100644 index 000000000..0665fbc2b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Expression; + +/** + * Generated adapter for {@link Expression}. + */ +public class ExpressionAdapter extends AbstractSysMLAdapter { + + public ExpressionAdapter() { + super(Expression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureAdapter.java new file mode 100644 index 000000000..ecec159a7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated adapter for {@link Feature}. + */ +public class FeatureAdapter extends AbstractSysMLAdapter { + + public FeatureAdapter() { + super(Feature.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureChainExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureChainExpressionAdapter.java new file mode 100644 index 000000000..3fe1c9f46 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureChainExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FeatureChainExpression; + +/** + * Generated adapter for {@link FeatureChainExpression}. + */ +public class FeatureChainExpressionAdapter extends AbstractSysMLAdapter { + + public FeatureChainExpressionAdapter() { + super(FeatureChainExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureChainingAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureChainingAdapter.java new file mode 100644 index 000000000..cba03c782 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureChainingAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FeatureChaining; + +/** + * Generated adapter for {@link FeatureChaining}. + */ +public class FeatureChainingAdapter extends AbstractSysMLAdapter { + + public FeatureChainingAdapter() { + super(FeatureChaining.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureInvertingAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureInvertingAdapter.java new file mode 100644 index 000000000..e2f704fc0 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureInvertingAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FeatureInverting; + +/** + * Generated adapter for {@link FeatureInverting}. + */ +public class FeatureInvertingAdapter extends AbstractSysMLAdapter { + + public FeatureInvertingAdapter() { + super(FeatureInverting.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureMembershipAdapter.java new file mode 100644 index 000000000..2926e515f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FeatureMembership; + +/** + * Generated adapter for {@link FeatureMembership}. + */ +public class FeatureMembershipAdapter extends AbstractSysMLAdapter { + + public FeatureMembershipAdapter() { + super(FeatureMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureReferenceExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureReferenceExpressionAdapter.java new file mode 100644 index 000000000..3ff2ecb98 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureReferenceExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FeatureReferenceExpression; + +/** + * Generated adapter for {@link FeatureReferenceExpression}. + */ +public class FeatureReferenceExpressionAdapter extends AbstractSysMLAdapter { + + public FeatureReferenceExpressionAdapter() { + super(FeatureReferenceExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureTypingAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureTypingAdapter.java new file mode 100644 index 000000000..577db4ade --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureTypingAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FeatureTyping; + +/** + * Generated adapter for {@link FeatureTyping}. + */ +public class FeatureTypingAdapter extends AbstractSysMLAdapter { + + public FeatureTypingAdapter() { + super(FeatureTyping.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureValueAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureValueAdapter.java new file mode 100644 index 000000000..aed9c46ea --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FeatureValueAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FeatureValue; + +/** + * Generated adapter for {@link FeatureValue}. + */ +public class FeatureValueAdapter extends AbstractSysMLAdapter { + + public FeatureValueAdapter() { + super(FeatureValue.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowAdapter.java new file mode 100644 index 000000000..cc821dd56 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Flow; + +/** + * Generated adapter for {@link Flow}. + */ +public class FlowAdapter extends AbstractSysMLAdapter { + + public FlowAdapter() { + super(Flow.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowDefinitionAdapter.java new file mode 100644 index 000000000..d17437849 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FlowDefinition; + +/** + * Generated adapter for {@link FlowDefinition}. + */ +public class FlowDefinitionAdapter extends AbstractSysMLAdapter { + + public FlowDefinitionAdapter() { + super(FlowDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowEndAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowEndAdapter.java new file mode 100644 index 000000000..366224ec3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowEndAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FlowEnd; + +/** + * Generated adapter for {@link FlowEnd}. + */ +public class FlowEndAdapter extends AbstractSysMLAdapter { + + public FlowEndAdapter() { + super(FlowEnd.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowUsageAdapter.java new file mode 100644 index 000000000..9a3c28cd4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FlowUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FlowUsage; + +/** + * Generated adapter for {@link FlowUsage}. + */ +public class FlowUsageAdapter extends AbstractSysMLAdapter { + + public FlowUsageAdapter() { + super(FlowUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ForLoopActionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ForLoopActionUsageAdapter.java new file mode 100644 index 000000000..193ebcf7e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ForLoopActionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ForLoopActionUsage; + +/** + * Generated adapter for {@link ForLoopActionUsage}. + */ +public class ForLoopActionUsageAdapter extends AbstractSysMLAdapter { + + public ForLoopActionUsageAdapter() { + super(ForLoopActionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ForkNodeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ForkNodeAdapter.java new file mode 100644 index 000000000..be04b03bb --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ForkNodeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ForkNode; + +/** + * Generated adapter for {@link ForkNode}. + */ +public class ForkNodeAdapter extends AbstractSysMLAdapter { + + public ForkNodeAdapter() { + super(ForkNode.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FramedConcernMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FramedConcernMembershipAdapter.java new file mode 100644 index 000000000..1eaacf8b2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FramedConcernMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.FramedConcernMembership; + +/** + * Generated adapter for {@link FramedConcernMembership}. + */ +public class FramedConcernMembershipAdapter extends AbstractSysMLAdapter { + + public FramedConcernMembershipAdapter() { + super(FramedConcernMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FunctionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FunctionAdapter.java new file mode 100644 index 000000000..f5f289ac5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/FunctionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Function; + +/** + * Generated adapter for {@link Function}. + */ +public class FunctionAdapter extends AbstractSysMLAdapter { + + public FunctionAdapter() { + super(Function.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IfActionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IfActionUsageAdapter.java new file mode 100644 index 000000000..7c2ec0b46 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IfActionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.IfActionUsage; + +/** + * Generated adapter for {@link IfActionUsage}. + */ +public class IfActionUsageAdapter extends AbstractSysMLAdapter { + + public IfActionUsageAdapter() { + super(IfActionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ImportAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ImportAdapter.java new file mode 100644 index 000000000..8e0de16ea --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ImportAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Import; + +/** + * Generated adapter for {@link Import}. + */ +public class ImportAdapter extends AbstractSysMLAdapter { + + public ImportAdapter() { + super(Import.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IncludeUseCaseUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IncludeUseCaseUsageAdapter.java new file mode 100644 index 000000000..9f072b055 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IncludeUseCaseUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.IncludeUseCaseUsage; + +/** + * Generated adapter for {@link IncludeUseCaseUsage}. + */ +public class IncludeUseCaseUsageAdapter extends AbstractSysMLAdapter { + + public IncludeUseCaseUsageAdapter() { + super(IncludeUseCaseUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IndexExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IndexExpressionAdapter.java new file mode 100644 index 000000000..0f5136f90 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IndexExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.IndexExpression; + +/** + * Generated adapter for {@link IndexExpression}. + */ +public class IndexExpressionAdapter extends AbstractSysMLAdapter { + + public IndexExpressionAdapter() { + super(IndexExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InstantiationExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InstantiationExpressionAdapter.java new file mode 100644 index 000000000..c68235a22 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InstantiationExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.InstantiationExpression; + +/** + * Generated adapter for {@link InstantiationExpression}. + */ +public class InstantiationExpressionAdapter extends AbstractSysMLAdapter { + + public InstantiationExpressionAdapter() { + super(InstantiationExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InteractionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InteractionAdapter.java new file mode 100644 index 000000000..e008cb6ab --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InteractionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Interaction; + +/** + * Generated adapter for {@link Interaction}. + */ +public class InteractionAdapter extends AbstractSysMLAdapter { + + public InteractionAdapter() { + super(Interaction.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InterfaceDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InterfaceDefinitionAdapter.java new file mode 100644 index 000000000..9cc8889b7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InterfaceDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.InterfaceDefinition; + +/** + * Generated adapter for {@link InterfaceDefinition}. + */ +public class InterfaceDefinitionAdapter extends AbstractSysMLAdapter { + + public InterfaceDefinitionAdapter() { + super(InterfaceDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InterfaceUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InterfaceUsageAdapter.java new file mode 100644 index 000000000..92cd621ff --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InterfaceUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.InterfaceUsage; + +/** + * Generated adapter for {@link InterfaceUsage}. + */ +public class InterfaceUsageAdapter extends AbstractSysMLAdapter { + + public InterfaceUsageAdapter() { + super(InterfaceUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IntersectingAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IntersectingAdapter.java new file mode 100644 index 000000000..1f00bf04c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/IntersectingAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Intersecting; + +/** + * Generated adapter for {@link Intersecting}. + */ +public class IntersectingAdapter extends AbstractSysMLAdapter { + + public IntersectingAdapter() { + super(Intersecting.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InvariantAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InvariantAdapter.java new file mode 100644 index 000000000..c3c16936a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InvariantAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Invariant; + +/** + * Generated adapter for {@link Invariant}. + */ +public class InvariantAdapter extends AbstractSysMLAdapter { + + public InvariantAdapter() { + super(Invariant.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InvocationExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InvocationExpressionAdapter.java new file mode 100644 index 000000000..2b94a671a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/InvocationExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.InvocationExpression; + +/** + * Generated adapter for {@link InvocationExpression}. + */ +public class InvocationExpressionAdapter extends AbstractSysMLAdapter { + + public InvocationExpressionAdapter() { + super(InvocationExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ItemDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ItemDefinitionAdapter.java new file mode 100644 index 000000000..eb80d4774 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ItemDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ItemDefinition; + +/** + * Generated adapter for {@link ItemDefinition}. + */ +public class ItemDefinitionAdapter extends AbstractSysMLAdapter { + + public ItemDefinitionAdapter() { + super(ItemDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ItemUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ItemUsageAdapter.java new file mode 100644 index 000000000..171ed2dfb --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ItemUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ItemUsage; + +/** + * Generated adapter for {@link ItemUsage}. + */ +public class ItemUsageAdapter extends AbstractSysMLAdapter { + + public ItemUsageAdapter() { + super(ItemUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/JoinNodeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/JoinNodeAdapter.java new file mode 100644 index 000000000..c84b075b6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/JoinNodeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.JoinNode; + +/** + * Generated adapter for {@link JoinNode}. + */ +public class JoinNodeAdapter extends AbstractSysMLAdapter { + + public JoinNodeAdapter() { + super(JoinNode.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LibraryPackageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LibraryPackageAdapter.java new file mode 100644 index 000000000..30bda28c7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LibraryPackageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.LibraryPackage; + +/** + * Generated adapter for {@link LibraryPackage}. + */ +public class LibraryPackageAdapter extends AbstractSysMLAdapter { + + public LibraryPackageAdapter() { + super(LibraryPackage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralBooleanAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralBooleanAdapter.java new file mode 100644 index 000000000..af324430d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralBooleanAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.LiteralBoolean; + +/** + * Generated adapter for {@link LiteralBoolean}. + */ +public class LiteralBooleanAdapter extends AbstractSysMLAdapter { + + public LiteralBooleanAdapter() { + super(LiteralBoolean.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralExpressionAdapter.java new file mode 100644 index 000000000..a0fe9bf3f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.LiteralExpression; + +/** + * Generated adapter for {@link LiteralExpression}. + */ +public class LiteralExpressionAdapter extends AbstractSysMLAdapter { + + public LiteralExpressionAdapter() { + super(LiteralExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralInfinityAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralInfinityAdapter.java new file mode 100644 index 000000000..620cb56c6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralInfinityAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.LiteralInfinity; + +/** + * Generated adapter for {@link LiteralInfinity}. + */ +public class LiteralInfinityAdapter extends AbstractSysMLAdapter { + + public LiteralInfinityAdapter() { + super(LiteralInfinity.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralIntegerAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralIntegerAdapter.java new file mode 100644 index 000000000..5f1cb9533 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralIntegerAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.LiteralInteger; + +/** + * Generated adapter for {@link LiteralInteger}. + */ +public class LiteralIntegerAdapter extends AbstractSysMLAdapter { + + public LiteralIntegerAdapter() { + super(LiteralInteger.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralRationalAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralRationalAdapter.java new file mode 100644 index 000000000..9dd39db0d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralRationalAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.LiteralRational; + +/** + * Generated adapter for {@link LiteralRational}. + */ +public class LiteralRationalAdapter extends AbstractSysMLAdapter { + + public LiteralRationalAdapter() { + super(LiteralRational.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralStringAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralStringAdapter.java new file mode 100644 index 000000000..751642f6e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LiteralStringAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.LiteralString; + +/** + * Generated adapter for {@link LiteralString}. + */ +public class LiteralStringAdapter extends AbstractSysMLAdapter { + + public LiteralStringAdapter() { + super(LiteralString.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LoopActionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LoopActionUsageAdapter.java new file mode 100644 index 000000000..5c45136e8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/LoopActionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.LoopActionUsage; + +/** + * Generated adapter for {@link LoopActionUsage}. + */ +public class LoopActionUsageAdapter extends AbstractSysMLAdapter { + + public LoopActionUsageAdapter() { + super(LoopActionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MembershipAdapter.java new file mode 100644 index 000000000..d9483b98a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Membership; + +/** + * Generated adapter for {@link Membership}. + */ +public class MembershipAdapter extends AbstractSysMLAdapter { + + public MembershipAdapter() { + super(Membership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MembershipExposeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MembershipExposeAdapter.java new file mode 100644 index 000000000..87945e280 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MembershipExposeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.MembershipExpose; + +/** + * Generated adapter for {@link MembershipExpose}. + */ +public class MembershipExposeAdapter extends AbstractSysMLAdapter { + + public MembershipExposeAdapter() { + super(MembershipExpose.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MembershipImportAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MembershipImportAdapter.java new file mode 100644 index 000000000..b9bc31dc4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MembershipImportAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.MembershipImport; + +/** + * Generated adapter for {@link MembershipImport}. + */ +public class MembershipImportAdapter extends AbstractSysMLAdapter { + + public MembershipImportAdapter() { + super(MembershipImport.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MergeNodeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MergeNodeAdapter.java new file mode 100644 index 000000000..bb5d26f83 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MergeNodeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.MergeNode; + +/** + * Generated adapter for {@link MergeNode}. + */ +public class MergeNodeAdapter extends AbstractSysMLAdapter { + + public MergeNodeAdapter() { + super(MergeNode.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetaclassAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetaclassAdapter.java new file mode 100644 index 000000000..de1b1df33 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetaclassAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Metaclass; + +/** + * Generated adapter for {@link Metaclass}. + */ +public class MetaclassAdapter extends AbstractSysMLAdapter { + + public MetaclassAdapter() { + super(Metaclass.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataAccessExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataAccessExpressionAdapter.java new file mode 100644 index 000000000..e3da1c94b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataAccessExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.MetadataAccessExpression; + +/** + * Generated adapter for {@link MetadataAccessExpression}. + */ +public class MetadataAccessExpressionAdapter extends AbstractSysMLAdapter { + + public MetadataAccessExpressionAdapter() { + super(MetadataAccessExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataDefinitionAdapter.java new file mode 100644 index 000000000..1b16e11fb --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.MetadataDefinition; + +/** + * Generated adapter for {@link MetadataDefinition}. + */ +public class MetadataDefinitionAdapter extends AbstractSysMLAdapter { + + public MetadataDefinitionAdapter() { + super(MetadataDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataFeatureAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataFeatureAdapter.java new file mode 100644 index 000000000..0b7c428cd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataFeatureAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.MetadataFeature; + +/** + * Generated adapter for {@link MetadataFeature}. + */ +public class MetadataFeatureAdapter extends AbstractSysMLAdapter { + + public MetadataFeatureAdapter() { + super(MetadataFeature.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataUsageAdapter.java new file mode 100644 index 000000000..5b26e8ef8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MetadataUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.MetadataUsage; + +/** + * Generated adapter for {@link MetadataUsage}. + */ +public class MetadataUsageAdapter extends AbstractSysMLAdapter { + + public MetadataUsageAdapter() { + super(MetadataUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MultiplicityAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MultiplicityAdapter.java new file mode 100644 index 000000000..a298f44be --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MultiplicityAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Multiplicity; + +/** + * Generated adapter for {@link Multiplicity}. + */ +public class MultiplicityAdapter extends AbstractSysMLAdapter { + + public MultiplicityAdapter() { + super(Multiplicity.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MultiplicityRangeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MultiplicityRangeAdapter.java new file mode 100644 index 000000000..66f4ba721 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/MultiplicityRangeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.MultiplicityRange; + +/** + * Generated adapter for {@link MultiplicityRange}. + */ +public class MultiplicityRangeAdapter extends AbstractSysMLAdapter { + + public MultiplicityRangeAdapter() { + super(MultiplicityRange.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NamespaceAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NamespaceAdapter.java new file mode 100644 index 000000000..69ad31552 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NamespaceAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated adapter for {@link Namespace}. + */ +public class NamespaceAdapter extends AbstractSysMLAdapter { + + public NamespaceAdapter() { + super(Namespace.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NamespaceExposeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NamespaceExposeAdapter.java new file mode 100644 index 000000000..be8d21f2b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NamespaceExposeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.NamespaceExpose; + +/** + * Generated adapter for {@link NamespaceExpose}. + */ +public class NamespaceExposeAdapter extends AbstractSysMLAdapter { + + public NamespaceExposeAdapter() { + super(NamespaceExpose.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NamespaceImportAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NamespaceImportAdapter.java new file mode 100644 index 000000000..7027d1b9c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NamespaceImportAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.NamespaceImport; + +/** + * Generated adapter for {@link NamespaceImport}. + */ +public class NamespaceImportAdapter extends AbstractSysMLAdapter { + + public NamespaceImportAdapter() { + super(NamespaceImport.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NullExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NullExpressionAdapter.java new file mode 100644 index 000000000..2911de753 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/NullExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.NullExpression; + +/** + * Generated adapter for {@link NullExpression}. + */ +public class NullExpressionAdapter extends AbstractSysMLAdapter { + + public NullExpressionAdapter() { + super(NullExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ObjectiveMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ObjectiveMembershipAdapter.java new file mode 100644 index 000000000..cad918eb4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ObjectiveMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ObjectiveMembership; + +/** + * Generated adapter for {@link ObjectiveMembership}. + */ +public class ObjectiveMembershipAdapter extends AbstractSysMLAdapter { + + public ObjectiveMembershipAdapter() { + super(ObjectiveMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OccurrenceDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OccurrenceDefinitionAdapter.java new file mode 100644 index 000000000..7a1f83f11 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OccurrenceDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.OccurrenceDefinition; + +/** + * Generated adapter for {@link OccurrenceDefinition}. + */ +public class OccurrenceDefinitionAdapter extends AbstractSysMLAdapter { + + public OccurrenceDefinitionAdapter() { + super(OccurrenceDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OccurrenceUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OccurrenceUsageAdapter.java new file mode 100644 index 000000000..f36955e64 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OccurrenceUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.OccurrenceUsage; + +/** + * Generated adapter for {@link OccurrenceUsage}. + */ +public class OccurrenceUsageAdapter extends AbstractSysMLAdapter { + + public OccurrenceUsageAdapter() { + super(OccurrenceUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OperatorExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OperatorExpressionAdapter.java new file mode 100644 index 000000000..ad1350693 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OperatorExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.OperatorExpression; + +/** + * Generated adapter for {@link OperatorExpression}. + */ +public class OperatorExpressionAdapter extends AbstractSysMLAdapter { + + public OperatorExpressionAdapter() { + super(OperatorExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OwningMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OwningMembershipAdapter.java new file mode 100644 index 000000000..23052e133 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/OwningMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.OwningMembership; + +/** + * Generated adapter for {@link OwningMembership}. + */ +public class OwningMembershipAdapter extends AbstractSysMLAdapter { + + public OwningMembershipAdapter() { + super(OwningMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PackageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PackageAdapter.java new file mode 100644 index 000000000..d0be9dd42 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PackageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Package; + +/** + * Generated adapter for {@link Package}. + */ +public class PackageAdapter extends AbstractSysMLAdapter { + + public PackageAdapter() { + super(Package.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ParameterMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ParameterMembershipAdapter.java new file mode 100644 index 000000000..5455bb4e6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ParameterMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ParameterMembership; + +/** + * Generated adapter for {@link ParameterMembership}. + */ +public class ParameterMembershipAdapter extends AbstractSysMLAdapter { + + public ParameterMembershipAdapter() { + super(ParameterMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PartDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PartDefinitionAdapter.java new file mode 100644 index 000000000..8aed1ae6e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PartDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.PartDefinition; + +/** + * Generated adapter for {@link PartDefinition}. + */ +public class PartDefinitionAdapter extends AbstractSysMLAdapter { + + public PartDefinitionAdapter() { + super(PartDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PartUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PartUsageAdapter.java new file mode 100644 index 000000000..43c75d045 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PartUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.PartUsage; + +/** + * Generated adapter for {@link PartUsage}. + */ +public class PartUsageAdapter extends AbstractSysMLAdapter { + + public PartUsageAdapter() { + super(PartUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PayloadFeatureAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PayloadFeatureAdapter.java new file mode 100644 index 000000000..5ab7aec58 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PayloadFeatureAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.PayloadFeature; + +/** + * Generated adapter for {@link PayloadFeature}. + */ +public class PayloadFeatureAdapter extends AbstractSysMLAdapter { + + public PayloadFeatureAdapter() { + super(PayloadFeature.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PerformActionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PerformActionUsageAdapter.java new file mode 100644 index 000000000..45f078d88 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PerformActionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.PerformActionUsage; + +/** + * Generated adapter for {@link PerformActionUsage}. + */ +public class PerformActionUsageAdapter extends AbstractSysMLAdapter { + + public PerformActionUsageAdapter() { + super(PerformActionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PortConjugationAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PortConjugationAdapter.java new file mode 100644 index 000000000..8dd572098 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PortConjugationAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.PortConjugation; + +/** + * Generated adapter for {@link PortConjugation}. + */ +public class PortConjugationAdapter extends AbstractSysMLAdapter { + + public PortConjugationAdapter() { + super(PortConjugation.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PortDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PortDefinitionAdapter.java new file mode 100644 index 000000000..b9f60bc93 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PortDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.PortDefinition; + +/** + * Generated adapter for {@link PortDefinition}. + */ +public class PortDefinitionAdapter extends AbstractSysMLAdapter { + + public PortDefinitionAdapter() { + super(PortDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PortUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PortUsageAdapter.java new file mode 100644 index 000000000..f0528b676 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PortUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.PortUsage; + +/** + * Generated adapter for {@link PortUsage}. + */ +public class PortUsageAdapter extends AbstractSysMLAdapter { + + public PortUsageAdapter() { + super(PortUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PredicateAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PredicateAdapter.java new file mode 100644 index 000000000..4af8ab6c0 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/PredicateAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Predicate; + +/** + * Generated adapter for {@link Predicate}. + */ +public class PredicateAdapter extends AbstractSysMLAdapter { + + public PredicateAdapter() { + super(Predicate.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RedefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RedefinitionAdapter.java new file mode 100644 index 000000000..8d06bfa25 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RedefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Redefinition; + +/** + * Generated adapter for {@link Redefinition}. + */ +public class RedefinitionAdapter extends AbstractSysMLAdapter { + + public RedefinitionAdapter() { + super(Redefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ReferenceSubsettingAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ReferenceSubsettingAdapter.java new file mode 100644 index 000000000..ee3a0dac3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ReferenceSubsettingAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ReferenceSubsetting; + +/** + * Generated adapter for {@link ReferenceSubsetting}. + */ +public class ReferenceSubsettingAdapter extends AbstractSysMLAdapter { + + public ReferenceSubsettingAdapter() { + super(ReferenceSubsetting.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ReferenceUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ReferenceUsageAdapter.java new file mode 100644 index 000000000..2f8d6654e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ReferenceUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ReferenceUsage; + +/** + * Generated adapter for {@link ReferenceUsage}. + */ +public class ReferenceUsageAdapter extends AbstractSysMLAdapter { + + public ReferenceUsageAdapter() { + super(ReferenceUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RelationshipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RelationshipAdapter.java new file mode 100644 index 000000000..b78e4ea0e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RelationshipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Relationship; + +/** + * Generated adapter for {@link Relationship}. + */ +public class RelationshipAdapter extends AbstractSysMLAdapter { + + public RelationshipAdapter() { + super(Relationship.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RenderingDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RenderingDefinitionAdapter.java new file mode 100644 index 000000000..f023c85a4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RenderingDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.RenderingDefinition; + +/** + * Generated adapter for {@link RenderingDefinition}. + */ +public class RenderingDefinitionAdapter extends AbstractSysMLAdapter { + + public RenderingDefinitionAdapter() { + super(RenderingDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RenderingUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RenderingUsageAdapter.java new file mode 100644 index 000000000..5a99dbf4c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RenderingUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.RenderingUsage; + +/** + * Generated adapter for {@link RenderingUsage}. + */ +public class RenderingUsageAdapter extends AbstractSysMLAdapter { + + public RenderingUsageAdapter() { + super(RenderingUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementConstraintMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementConstraintMembershipAdapter.java new file mode 100644 index 000000000..97276eab9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementConstraintMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.RequirementConstraintMembership; + +/** + * Generated adapter for {@link RequirementConstraintMembership}. + */ +public class RequirementConstraintMembershipAdapter extends AbstractSysMLAdapter { + + public RequirementConstraintMembershipAdapter() { + super(RequirementConstraintMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementDefinitionAdapter.java new file mode 100644 index 000000000..b7d7fcf3f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.RequirementDefinition; + +/** + * Generated adapter for {@link RequirementDefinition}. + */ +public class RequirementDefinitionAdapter extends AbstractSysMLAdapter { + + public RequirementDefinitionAdapter() { + super(RequirementDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementUsageAdapter.java new file mode 100644 index 000000000..8d82da310 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.RequirementUsage; + +/** + * Generated adapter for {@link RequirementUsage}. + */ +public class RequirementUsageAdapter extends AbstractSysMLAdapter { + + public RequirementUsageAdapter() { + super(RequirementUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementVerificationMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementVerificationMembershipAdapter.java new file mode 100644 index 000000000..98ce28dfe --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/RequirementVerificationMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.RequirementVerificationMembership; + +/** + * Generated adapter for {@link RequirementVerificationMembership}. + */ +public class RequirementVerificationMembershipAdapter extends AbstractSysMLAdapter { + + public RequirementVerificationMembershipAdapter() { + super(RequirementVerificationMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ResultExpressionMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ResultExpressionMembershipAdapter.java new file mode 100644 index 000000000..8a4165839 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ResultExpressionMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ResultExpressionMembership; + +/** + * Generated adapter for {@link ResultExpressionMembership}. + */ +public class ResultExpressionMembershipAdapter extends AbstractSysMLAdapter { + + public ResultExpressionMembershipAdapter() { + super(ResultExpressionMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ReturnParameterMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ReturnParameterMembershipAdapter.java new file mode 100644 index 000000000..a2852ba3a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ReturnParameterMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ReturnParameterMembership; + +/** + * Generated adapter for {@link ReturnParameterMembership}. + */ +public class ReturnParameterMembershipAdapter extends AbstractSysMLAdapter { + + public ReturnParameterMembershipAdapter() { + super(ReturnParameterMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SatisfyRequirementUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SatisfyRequirementUsageAdapter.java new file mode 100644 index 000000000..e7c097c3c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SatisfyRequirementUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.SatisfyRequirementUsage; + +/** + * Generated adapter for {@link SatisfyRequirementUsage}. + */ +public class SatisfyRequirementUsageAdapter extends AbstractSysMLAdapter { + + public SatisfyRequirementUsageAdapter() { + super(SatisfyRequirementUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SelectExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SelectExpressionAdapter.java new file mode 100644 index 000000000..51ebff30c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SelectExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.SelectExpression; + +/** + * Generated adapter for {@link SelectExpression}. + */ +public class SelectExpressionAdapter extends AbstractSysMLAdapter { + + public SelectExpressionAdapter() { + super(SelectExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SendActionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SendActionUsageAdapter.java new file mode 100644 index 000000000..cacbfaa5a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SendActionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.SendActionUsage; + +/** + * Generated adapter for {@link SendActionUsage}. + */ +public class SendActionUsageAdapter extends AbstractSysMLAdapter { + + public SendActionUsageAdapter() { + super(SendActionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SpecializationAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SpecializationAdapter.java new file mode 100644 index 000000000..dc497cb33 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SpecializationAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Specialization; + +/** + * Generated adapter for {@link Specialization}. + */ +public class SpecializationAdapter extends AbstractSysMLAdapter { + + public SpecializationAdapter() { + super(Specialization.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StakeholderMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StakeholderMembershipAdapter.java new file mode 100644 index 000000000..52e39bf06 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StakeholderMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.StakeholderMembership; + +/** + * Generated adapter for {@link StakeholderMembership}. + */ +public class StakeholderMembershipAdapter extends AbstractSysMLAdapter { + + public StakeholderMembershipAdapter() { + super(StakeholderMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StateDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StateDefinitionAdapter.java new file mode 100644 index 000000000..7b6b7a007 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StateDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.StateDefinition; + +/** + * Generated adapter for {@link StateDefinition}. + */ +public class StateDefinitionAdapter extends AbstractSysMLAdapter { + + public StateDefinitionAdapter() { + super(StateDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StateSubactionMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StateSubactionMembershipAdapter.java new file mode 100644 index 000000000..40191cab6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StateSubactionMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.StateSubactionMembership; + +/** + * Generated adapter for {@link StateSubactionMembership}. + */ +public class StateSubactionMembershipAdapter extends AbstractSysMLAdapter { + + public StateSubactionMembershipAdapter() { + super(StateSubactionMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StateUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StateUsageAdapter.java new file mode 100644 index 000000000..b8046ce63 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StateUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.StateUsage; + +/** + * Generated adapter for {@link StateUsage}. + */ +public class StateUsageAdapter extends AbstractSysMLAdapter { + + public StateUsageAdapter() { + super(StateUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StepAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StepAdapter.java new file mode 100644 index 000000000..086eeed32 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StepAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Step; + +/** + * Generated adapter for {@link Step}. + */ +public class StepAdapter extends AbstractSysMLAdapter { + + public StepAdapter() { + super(Step.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StructureAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StructureAdapter.java new file mode 100644 index 000000000..06b51567e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/StructureAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Structure; + +/** + * Generated adapter for {@link Structure}. + */ +public class StructureAdapter extends AbstractSysMLAdapter { + + public StructureAdapter() { + super(Structure.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SubclassificationAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SubclassificationAdapter.java new file mode 100644 index 000000000..6bddaca90 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SubclassificationAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Subclassification; + +/** + * Generated adapter for {@link Subclassification}. + */ +public class SubclassificationAdapter extends AbstractSysMLAdapter { + + public SubclassificationAdapter() { + super(Subclassification.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SubjectMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SubjectMembershipAdapter.java new file mode 100644 index 000000000..26040f616 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SubjectMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.SubjectMembership; + +/** + * Generated adapter for {@link SubjectMembership}. + */ +public class SubjectMembershipAdapter extends AbstractSysMLAdapter { + + public SubjectMembershipAdapter() { + super(SubjectMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SubsettingAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SubsettingAdapter.java new file mode 100644 index 000000000..28615de82 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SubsettingAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Subsetting; + +/** + * Generated adapter for {@link Subsetting}. + */ +public class SubsettingAdapter extends AbstractSysMLAdapter { + + public SubsettingAdapter() { + super(Subsetting.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionAdapter.java new file mode 100644 index 000000000..24c4739a4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Succession; + +/** + * Generated adapter for {@link Succession}. + */ +public class SuccessionAdapter extends AbstractSysMLAdapter { + + public SuccessionAdapter() { + super(Succession.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionAsUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionAsUsageAdapter.java new file mode 100644 index 000000000..b6124ac48 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionAsUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.SuccessionAsUsage; + +/** + * Generated adapter for {@link SuccessionAsUsage}. + */ +public class SuccessionAsUsageAdapter extends AbstractSysMLAdapter { + + public SuccessionAsUsageAdapter() { + super(SuccessionAsUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionFlowAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionFlowAdapter.java new file mode 100644 index 000000000..4848bf90f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionFlowAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.SuccessionFlow; + +/** + * Generated adapter for {@link SuccessionFlow}. + */ +public class SuccessionFlowAdapter extends AbstractSysMLAdapter { + + public SuccessionFlowAdapter() { + super(SuccessionFlow.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionFlowUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionFlowUsageAdapter.java new file mode 100644 index 000000000..b56b2d3fc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SuccessionFlowUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.SuccessionFlowUsage; + +/** + * Generated adapter for {@link SuccessionFlowUsage}. + */ +public class SuccessionFlowUsageAdapter extends AbstractSysMLAdapter { + + public SuccessionFlowUsageAdapter() { + super(SuccessionFlowUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SysMLAdapters.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SysMLAdapters.java new file mode 100644 index 000000000..aa07680e9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SysMLAdapters.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import java.util.Optional; + +import org.eclipse.emf.ecore.EObject; + +/** + * Runtime adapter access service for SysML model elements. + */ +public class SysMLAdapters { + + private final SysMLLogicAdapterFactory adapterFactory; + + public SysMLAdapters(SysMLLogicAdapterFactory adapterFactory) { + this.adapterFactory = adapterFactory; + } + + public > Optional find(EObject element, Class adapterClass) { + for (var adapter : element.eAdapters()) { + if (adapterClass.isInstance(adapter)) { + return Optional.of(adapterClass.cast(adapter)); + } + } + return Optional.empty(); + } + + public > A adapt(EObject element, Class adapterClass) { + var existing = find(element, adapterClass); + if (existing.isPresent()) { + return existing.orElseThrow(); + } + + var created = adapterFactory.createAdapter(element); + if (created == null || !adapterClass.isInstance(created)) { + var createdType = created == null ? "null" : created.getClass().getName(); + throw new IllegalStateException( + "Cannot adapt " + element.eClass().getName() + " with " + adapterClass.getName() + + "; factory produced " + createdType); + } + + element.eAdapters().add(created); + return adapterClass.cast(created); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SysMLLogicAdapterFactory.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SysMLLogicAdapterFactory.java new file mode 100644 index 000000000..b0d928731 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/SysMLLogicAdapterFactory.java @@ -0,0 +1,1460 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; +import org.eclipse.emf.ecore.EObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.util.SysMLSwitch; + +/** + * Generated adapter factory for SysML logic adapters. + */ +public class SysMLLogicAdapterFactory extends AdapterFactoryImpl { + + private final SysMLSwitch modelSwitch = new SysMLSwitch<>() { + @Override + public org.eclipse.emf.common.notify.Adapter caseAcceptActionUsage(org.omg.sysml.model.sysml.AcceptActionUsage object) { + return createAcceptActionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseActionDefinition(org.omg.sysml.model.sysml.ActionDefinition object) { + return createActionDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseActionUsage(org.omg.sysml.model.sysml.ActionUsage object) { + return createActionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseActorMembership(org.omg.sysml.model.sysml.ActorMembership object) { + return createActorMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAllocationDefinition(org.omg.sysml.model.sysml.AllocationDefinition object) { + return createAllocationDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAllocationUsage(org.omg.sysml.model.sysml.AllocationUsage object) { + return createAllocationUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAnalysisCaseDefinition(org.omg.sysml.model.sysml.AnalysisCaseDefinition object) { + return createAnalysisCaseDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAnalysisCaseUsage(org.omg.sysml.model.sysml.AnalysisCaseUsage object) { + return createAnalysisCaseUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAnnotatingElement(org.omg.sysml.model.sysml.AnnotatingElement object) { + return createAnnotatingElementAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAnnotation(org.omg.sysml.model.sysml.Annotation object) { + return createAnnotationAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAssertConstraintUsage(org.omg.sysml.model.sysml.AssertConstraintUsage object) { + return createAssertConstraintUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAssignmentActionUsage(org.omg.sysml.model.sysml.AssignmentActionUsage object) { + return createAssignmentActionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAssociation(org.omg.sysml.model.sysml.Association object) { + return createAssociationAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAssociationStructure(org.omg.sysml.model.sysml.AssociationStructure object) { + return createAssociationStructureAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAttributeDefinition(org.omg.sysml.model.sysml.AttributeDefinition object) { + return createAttributeDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseAttributeUsage(org.omg.sysml.model.sysml.AttributeUsage object) { + return createAttributeUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseBehavior(org.omg.sysml.model.sysml.Behavior object) { + return createBehaviorAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseBindingConnector(org.omg.sysml.model.sysml.BindingConnector object) { + return createBindingConnectorAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseBindingConnectorAsUsage(org.omg.sysml.model.sysml.BindingConnectorAsUsage object) { + return createBindingConnectorAsUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseBooleanExpression(org.omg.sysml.model.sysml.BooleanExpression object) { + return createBooleanExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseCalculationDefinition(org.omg.sysml.model.sysml.CalculationDefinition object) { + return createCalculationDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseCalculationUsage(org.omg.sysml.model.sysml.CalculationUsage object) { + return createCalculationUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseCaseDefinition(org.omg.sysml.model.sysml.CaseDefinition object) { + return createCaseDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseCaseUsage(org.omg.sysml.model.sysml.CaseUsage object) { + return createCaseUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseClass(org.omg.sysml.model.sysml.Class object) { + return createClassAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseClassifier(org.omg.sysml.model.sysml.Classifier object) { + return createClassifierAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseCollectExpression(org.omg.sysml.model.sysml.CollectExpression object) { + return createCollectExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseComment(org.omg.sysml.model.sysml.Comment object) { + return createCommentAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConcernDefinition(org.omg.sysml.model.sysml.ConcernDefinition object) { + return createConcernDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConcernUsage(org.omg.sysml.model.sysml.ConcernUsage object) { + return createConcernUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConjugatedPortDefinition(org.omg.sysml.model.sysml.ConjugatedPortDefinition object) { + return createConjugatedPortDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConjugatedPortTyping(org.omg.sysml.model.sysml.ConjugatedPortTyping object) { + return createConjugatedPortTypingAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConjugation(org.omg.sysml.model.sysml.Conjugation object) { + return createConjugationAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConnectionDefinition(org.omg.sysml.model.sysml.ConnectionDefinition object) { + return createConnectionDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConnectionUsage(org.omg.sysml.model.sysml.ConnectionUsage object) { + return createConnectionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConnector(org.omg.sysml.model.sysml.Connector object) { + return createConnectorAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConnectorAsUsage(org.omg.sysml.model.sysml.ConnectorAsUsage object) { + return createConnectorAsUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConstraintDefinition(org.omg.sysml.model.sysml.ConstraintDefinition object) { + return createConstraintDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConstraintUsage(org.omg.sysml.model.sysml.ConstraintUsage object) { + return createConstraintUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseConstructorExpression(org.omg.sysml.model.sysml.ConstructorExpression object) { + return createConstructorExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseControlNode(org.omg.sysml.model.sysml.ControlNode object) { + return createControlNodeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseCrossSubsetting(org.omg.sysml.model.sysml.CrossSubsetting object) { + return createCrossSubsettingAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseDataType(org.omg.sysml.model.sysml.DataType object) { + return createDataTypeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseDecisionNode(org.omg.sysml.model.sysml.DecisionNode object) { + return createDecisionNodeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseDefinition(org.omg.sysml.model.sysml.Definition object) { + return createDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseDependency(org.omg.sysml.model.sysml.Dependency object) { + return createDependencyAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseDifferencing(org.omg.sysml.model.sysml.Differencing object) { + return createDifferencingAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseDisjoining(org.omg.sysml.model.sysml.Disjoining object) { + return createDisjoiningAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseDocumentation(org.omg.sysml.model.sysml.Documentation object) { + return createDocumentationAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseElement(org.omg.sysml.model.sysml.Element object) { + return createElementAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseElementFilterMembership(org.omg.sysml.model.sysml.ElementFilterMembership object) { + return createElementFilterMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseEndFeatureMembership(org.omg.sysml.model.sysml.EndFeatureMembership object) { + return createEndFeatureMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseEnumerationDefinition(org.omg.sysml.model.sysml.EnumerationDefinition object) { + return createEnumerationDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseEnumerationUsage(org.omg.sysml.model.sysml.EnumerationUsage object) { + return createEnumerationUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseEventOccurrenceUsage(org.omg.sysml.model.sysml.EventOccurrenceUsage object) { + return createEventOccurrenceUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseExhibitStateUsage(org.omg.sysml.model.sysml.ExhibitStateUsage object) { + return createExhibitStateUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseExpose(org.omg.sysml.model.sysml.Expose object) { + return createExposeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseExpression(org.omg.sysml.model.sysml.Expression object) { + return createExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFeature(org.omg.sysml.model.sysml.Feature object) { + return createFeatureAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFeatureChainExpression(org.omg.sysml.model.sysml.FeatureChainExpression object) { + return createFeatureChainExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFeatureChaining(org.omg.sysml.model.sysml.FeatureChaining object) { + return createFeatureChainingAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFeatureInverting(org.omg.sysml.model.sysml.FeatureInverting object) { + return createFeatureInvertingAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFeatureMembership(org.omg.sysml.model.sysml.FeatureMembership object) { + return createFeatureMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFeatureReferenceExpression(org.omg.sysml.model.sysml.FeatureReferenceExpression object) { + return createFeatureReferenceExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFeatureTyping(org.omg.sysml.model.sysml.FeatureTyping object) { + return createFeatureTypingAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFeatureValue(org.omg.sysml.model.sysml.FeatureValue object) { + return createFeatureValueAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFlow(org.omg.sysml.model.sysml.Flow object) { + return createFlowAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFlowDefinition(org.omg.sysml.model.sysml.FlowDefinition object) { + return createFlowDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFlowEnd(org.omg.sysml.model.sysml.FlowEnd object) { + return createFlowEndAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFlowUsage(org.omg.sysml.model.sysml.FlowUsage object) { + return createFlowUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseForLoopActionUsage(org.omg.sysml.model.sysml.ForLoopActionUsage object) { + return createForLoopActionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseForkNode(org.omg.sysml.model.sysml.ForkNode object) { + return createForkNodeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFramedConcernMembership(org.omg.sysml.model.sysml.FramedConcernMembership object) { + return createFramedConcernMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseFunction(org.omg.sysml.model.sysml.Function object) { + return createFunctionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseIfActionUsage(org.omg.sysml.model.sysml.IfActionUsage object) { + return createIfActionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseImport(org.omg.sysml.model.sysml.Import object) { + return createImportAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseIncludeUseCaseUsage(org.omg.sysml.model.sysml.IncludeUseCaseUsage object) { + return createIncludeUseCaseUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseIndexExpression(org.omg.sysml.model.sysml.IndexExpression object) { + return createIndexExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseInstantiationExpression(org.omg.sysml.model.sysml.InstantiationExpression object) { + return createInstantiationExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseInteraction(org.omg.sysml.model.sysml.Interaction object) { + return createInteractionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseInterfaceDefinition(org.omg.sysml.model.sysml.InterfaceDefinition object) { + return createInterfaceDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseInterfaceUsage(org.omg.sysml.model.sysml.InterfaceUsage object) { + return createInterfaceUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseIntersecting(org.omg.sysml.model.sysml.Intersecting object) { + return createIntersectingAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseInvariant(org.omg.sysml.model.sysml.Invariant object) { + return createInvariantAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseInvocationExpression(org.omg.sysml.model.sysml.InvocationExpression object) { + return createInvocationExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseItemDefinition(org.omg.sysml.model.sysml.ItemDefinition object) { + return createItemDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseItemUsage(org.omg.sysml.model.sysml.ItemUsage object) { + return createItemUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseJoinNode(org.omg.sysml.model.sysml.JoinNode object) { + return createJoinNodeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseLibraryPackage(org.omg.sysml.model.sysml.LibraryPackage object) { + return createLibraryPackageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseLiteralBoolean(org.omg.sysml.model.sysml.LiteralBoolean object) { + return createLiteralBooleanAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseLiteralExpression(org.omg.sysml.model.sysml.LiteralExpression object) { + return createLiteralExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseLiteralInfinity(org.omg.sysml.model.sysml.LiteralInfinity object) { + return createLiteralInfinityAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseLiteralInteger(org.omg.sysml.model.sysml.LiteralInteger object) { + return createLiteralIntegerAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseLiteralRational(org.omg.sysml.model.sysml.LiteralRational object) { + return createLiteralRationalAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseLiteralString(org.omg.sysml.model.sysml.LiteralString object) { + return createLiteralStringAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseLoopActionUsage(org.omg.sysml.model.sysml.LoopActionUsage object) { + return createLoopActionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMembership(org.omg.sysml.model.sysml.Membership object) { + return createMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMembershipExpose(org.omg.sysml.model.sysml.MembershipExpose object) { + return createMembershipExposeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMembershipImport(org.omg.sysml.model.sysml.MembershipImport object) { + return createMembershipImportAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMergeNode(org.omg.sysml.model.sysml.MergeNode object) { + return createMergeNodeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMetaclass(org.omg.sysml.model.sysml.Metaclass object) { + return createMetaclassAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMetadataAccessExpression(org.omg.sysml.model.sysml.MetadataAccessExpression object) { + return createMetadataAccessExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMetadataDefinition(org.omg.sysml.model.sysml.MetadataDefinition object) { + return createMetadataDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMetadataFeature(org.omg.sysml.model.sysml.MetadataFeature object) { + return createMetadataFeatureAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMetadataUsage(org.omg.sysml.model.sysml.MetadataUsage object) { + return createMetadataUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMultiplicity(org.omg.sysml.model.sysml.Multiplicity object) { + return createMultiplicityAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseMultiplicityRange(org.omg.sysml.model.sysml.MultiplicityRange object) { + return createMultiplicityRangeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseNamespace(org.omg.sysml.model.sysml.Namespace object) { + return createNamespaceAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseNamespaceExpose(org.omg.sysml.model.sysml.NamespaceExpose object) { + return createNamespaceExposeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseNamespaceImport(org.omg.sysml.model.sysml.NamespaceImport object) { + return createNamespaceImportAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseNullExpression(org.omg.sysml.model.sysml.NullExpression object) { + return createNullExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseObjectiveMembership(org.omg.sysml.model.sysml.ObjectiveMembership object) { + return createObjectiveMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseOccurrenceDefinition(org.omg.sysml.model.sysml.OccurrenceDefinition object) { + return createOccurrenceDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseOccurrenceUsage(org.omg.sysml.model.sysml.OccurrenceUsage object) { + return createOccurrenceUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseOperatorExpression(org.omg.sysml.model.sysml.OperatorExpression object) { + return createOperatorExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseOwningMembership(org.omg.sysml.model.sysml.OwningMembership object) { + return createOwningMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter casePackage(org.omg.sysml.model.sysml.Package object) { + return createPackageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseParameterMembership(org.omg.sysml.model.sysml.ParameterMembership object) { + return createParameterMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter casePartDefinition(org.omg.sysml.model.sysml.PartDefinition object) { + return createPartDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter casePartUsage(org.omg.sysml.model.sysml.PartUsage object) { + return createPartUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter casePayloadFeature(org.omg.sysml.model.sysml.PayloadFeature object) { + return createPayloadFeatureAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter casePerformActionUsage(org.omg.sysml.model.sysml.PerformActionUsage object) { + return createPerformActionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter casePortConjugation(org.omg.sysml.model.sysml.PortConjugation object) { + return createPortConjugationAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter casePortDefinition(org.omg.sysml.model.sysml.PortDefinition object) { + return createPortDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter casePortUsage(org.omg.sysml.model.sysml.PortUsage object) { + return createPortUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter casePredicate(org.omg.sysml.model.sysml.Predicate object) { + return createPredicateAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseRedefinition(org.omg.sysml.model.sysml.Redefinition object) { + return createRedefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseReferenceSubsetting(org.omg.sysml.model.sysml.ReferenceSubsetting object) { + return createReferenceSubsettingAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseReferenceUsage(org.omg.sysml.model.sysml.ReferenceUsage object) { + return createReferenceUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseRelationship(org.omg.sysml.model.sysml.Relationship object) { + return createRelationshipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseRenderingDefinition(org.omg.sysml.model.sysml.RenderingDefinition object) { + return createRenderingDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseRenderingUsage(org.omg.sysml.model.sysml.RenderingUsage object) { + return createRenderingUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseRequirementConstraintMembership(org.omg.sysml.model.sysml.RequirementConstraintMembership object) { + return createRequirementConstraintMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseRequirementDefinition(org.omg.sysml.model.sysml.RequirementDefinition object) { + return createRequirementDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseRequirementUsage(org.omg.sysml.model.sysml.RequirementUsage object) { + return createRequirementUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseRequirementVerificationMembership(org.omg.sysml.model.sysml.RequirementVerificationMembership object) { + return createRequirementVerificationMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseResultExpressionMembership(org.omg.sysml.model.sysml.ResultExpressionMembership object) { + return createResultExpressionMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseReturnParameterMembership(org.omg.sysml.model.sysml.ReturnParameterMembership object) { + return createReturnParameterMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSatisfyRequirementUsage(org.omg.sysml.model.sysml.SatisfyRequirementUsage object) { + return createSatisfyRequirementUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSelectExpression(org.omg.sysml.model.sysml.SelectExpression object) { + return createSelectExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSendActionUsage(org.omg.sysml.model.sysml.SendActionUsage object) { + return createSendActionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSpecialization(org.omg.sysml.model.sysml.Specialization object) { + return createSpecializationAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseStakeholderMembership(org.omg.sysml.model.sysml.StakeholderMembership object) { + return createStakeholderMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseStateDefinition(org.omg.sysml.model.sysml.StateDefinition object) { + return createStateDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseStateSubactionMembership(org.omg.sysml.model.sysml.StateSubactionMembership object) { + return createStateSubactionMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseStateUsage(org.omg.sysml.model.sysml.StateUsage object) { + return createStateUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseStep(org.omg.sysml.model.sysml.Step object) { + return createStepAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseStructure(org.omg.sysml.model.sysml.Structure object) { + return createStructureAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSubclassification(org.omg.sysml.model.sysml.Subclassification object) { + return createSubclassificationAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSubjectMembership(org.omg.sysml.model.sysml.SubjectMembership object) { + return createSubjectMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSubsetting(org.omg.sysml.model.sysml.Subsetting object) { + return createSubsettingAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSuccession(org.omg.sysml.model.sysml.Succession object) { + return createSuccessionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSuccessionAsUsage(org.omg.sysml.model.sysml.SuccessionAsUsage object) { + return createSuccessionAsUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSuccessionFlow(org.omg.sysml.model.sysml.SuccessionFlow object) { + return createSuccessionFlowAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseSuccessionFlowUsage(org.omg.sysml.model.sysml.SuccessionFlowUsage object) { + return createSuccessionFlowUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseTerminateActionUsage(org.omg.sysml.model.sysml.TerminateActionUsage object) { + return createTerminateActionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseTextualRepresentation(org.omg.sysml.model.sysml.TextualRepresentation object) { + return createTextualRepresentationAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseTransitionFeatureMembership(org.omg.sysml.model.sysml.TransitionFeatureMembership object) { + return createTransitionFeatureMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseTransitionUsage(org.omg.sysml.model.sysml.TransitionUsage object) { + return createTransitionUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseTriggerInvocationExpression(org.omg.sysml.model.sysml.TriggerInvocationExpression object) { + return createTriggerInvocationExpressionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseType(org.omg.sysml.model.sysml.Type object) { + return createTypeAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseTypeFeaturing(org.omg.sysml.model.sysml.TypeFeaturing object) { + return createTypeFeaturingAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseUnioning(org.omg.sysml.model.sysml.Unioning object) { + return createUnioningAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseUsage(org.omg.sysml.model.sysml.Usage object) { + return createUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseUseCaseDefinition(org.omg.sysml.model.sysml.UseCaseDefinition object) { + return createUseCaseDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseUseCaseUsage(org.omg.sysml.model.sysml.UseCaseUsage object) { + return createUseCaseUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseVariantMembership(org.omg.sysml.model.sysml.VariantMembership object) { + return createVariantMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseVerificationCaseDefinition(org.omg.sysml.model.sysml.VerificationCaseDefinition object) { + return createVerificationCaseDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseVerificationCaseUsage(org.omg.sysml.model.sysml.VerificationCaseUsage object) { + return createVerificationCaseUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseViewDefinition(org.omg.sysml.model.sysml.ViewDefinition object) { + return createViewDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseViewRenderingMembership(org.omg.sysml.model.sysml.ViewRenderingMembership object) { + return createViewRenderingMembershipAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseViewUsage(org.omg.sysml.model.sysml.ViewUsage object) { + return createViewUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseViewpointDefinition(org.omg.sysml.model.sysml.ViewpointDefinition object) { + return createViewpointDefinitionAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseViewpointUsage(org.omg.sysml.model.sysml.ViewpointUsage object) { + return createViewpointUsageAdapter(); + } + @Override + public org.eclipse.emf.common.notify.Adapter caseWhileLoopActionUsage(org.omg.sysml.model.sysml.WhileLoopActionUsage object) { + return createWhileLoopActionUsageAdapter(); + } + @Override + public Adapter defaultCase(EObject object) { + return null; + } + }; + + @Override + public boolean isFactoryForType(Object object) { + if (object == SysMLPackage.eINSTANCE) { + return true; + } + if (object instanceof EObject eObject) { + return eObject.eClass().getEPackage() == SysMLPackage.eINSTANCE; + } + return false; + } + + @Override + public Adapter createAdapter(Notifier target) { + if (target instanceof EObject eObject) { + return modelSwitch.doSwitch(eObject); + } + return null; + } + + public org.eclipse.emf.common.notify.Adapter createAcceptActionUsageAdapter() { + return new AcceptActionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createActionDefinitionAdapter() { + return new ActionDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createActionUsageAdapter() { + return new ActionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createActorMembershipAdapter() { + return new ActorMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAllocationDefinitionAdapter() { + return new AllocationDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAllocationUsageAdapter() { + return new AllocationUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAnalysisCaseDefinitionAdapter() { + return new AnalysisCaseDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAnalysisCaseUsageAdapter() { + return new AnalysisCaseUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAnnotatingElementAdapter() { + return new AnnotatingElementAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAnnotationAdapter() { + return new AnnotationAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAssertConstraintUsageAdapter() { + return new AssertConstraintUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAssignmentActionUsageAdapter() { + return new AssignmentActionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAssociationAdapter() { + return new AssociationAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAssociationStructureAdapter() { + return new AssociationStructureAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAttributeDefinitionAdapter() { + return new AttributeDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createAttributeUsageAdapter() { + return new AttributeUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createBehaviorAdapter() { + return new BehaviorAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createBindingConnectorAdapter() { + return new BindingConnectorAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createBindingConnectorAsUsageAdapter() { + return new BindingConnectorAsUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createBooleanExpressionAdapter() { + return new BooleanExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createCalculationDefinitionAdapter() { + return new CalculationDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createCalculationUsageAdapter() { + return new CalculationUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createCaseDefinitionAdapter() { + return new CaseDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createCaseUsageAdapter() { + return new CaseUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createClassAdapter() { + return new ClassAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createClassifierAdapter() { + return new ClassifierAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createCollectExpressionAdapter() { + return new CollectExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createCommentAdapter() { + return new CommentAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConcernDefinitionAdapter() { + return new ConcernDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConcernUsageAdapter() { + return new ConcernUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConjugatedPortDefinitionAdapter() { + return new ConjugatedPortDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConjugatedPortTypingAdapter() { + return new ConjugatedPortTypingAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConjugationAdapter() { + return new ConjugationAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConnectionDefinitionAdapter() { + return new ConnectionDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConnectionUsageAdapter() { + return new ConnectionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConnectorAdapter() { + return new ConnectorAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConnectorAsUsageAdapter() { + return new ConnectorAsUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConstraintDefinitionAdapter() { + return new ConstraintDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConstraintUsageAdapter() { + return new ConstraintUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createConstructorExpressionAdapter() { + return new ConstructorExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createControlNodeAdapter() { + return new ControlNodeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createCrossSubsettingAdapter() { + return new CrossSubsettingAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createDataTypeAdapter() { + return new DataTypeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createDecisionNodeAdapter() { + return new DecisionNodeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createDefinitionAdapter() { + return new DefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createDependencyAdapter() { + return new DependencyAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createDifferencingAdapter() { + return new DifferencingAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createDisjoiningAdapter() { + return new DisjoiningAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createDocumentationAdapter() { + return new DocumentationAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createElementAdapter() { + return new ElementAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createElementFilterMembershipAdapter() { + return new ElementFilterMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createEndFeatureMembershipAdapter() { + return new EndFeatureMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createEnumerationDefinitionAdapter() { + return new EnumerationDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createEnumerationUsageAdapter() { + return new EnumerationUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createEventOccurrenceUsageAdapter() { + return new EventOccurrenceUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createExhibitStateUsageAdapter() { + return new ExhibitStateUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createExposeAdapter() { + return new ExposeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createExpressionAdapter() { + return new ExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFeatureAdapter() { + return new FeatureAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFeatureChainExpressionAdapter() { + return new FeatureChainExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFeatureChainingAdapter() { + return new FeatureChainingAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFeatureInvertingAdapter() { + return new FeatureInvertingAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFeatureMembershipAdapter() { + return new FeatureMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFeatureReferenceExpressionAdapter() { + return new FeatureReferenceExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFeatureTypingAdapter() { + return new FeatureTypingAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFeatureValueAdapter() { + return new FeatureValueAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFlowAdapter() { + return new FlowAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFlowDefinitionAdapter() { + return new FlowDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFlowEndAdapter() { + return new FlowEndAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFlowUsageAdapter() { + return new FlowUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createForLoopActionUsageAdapter() { + return new ForLoopActionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createForkNodeAdapter() { + return new ForkNodeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFramedConcernMembershipAdapter() { + return new FramedConcernMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createFunctionAdapter() { + return new FunctionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createIfActionUsageAdapter() { + return new IfActionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createImportAdapter() { + return new ImportAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createIncludeUseCaseUsageAdapter() { + return new IncludeUseCaseUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createIndexExpressionAdapter() { + return new IndexExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createInstantiationExpressionAdapter() { + return new InstantiationExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createInteractionAdapter() { + return new InteractionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createInterfaceDefinitionAdapter() { + return new InterfaceDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createInterfaceUsageAdapter() { + return new InterfaceUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createIntersectingAdapter() { + return new IntersectingAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createInvariantAdapter() { + return new InvariantAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createInvocationExpressionAdapter() { + return new InvocationExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createItemDefinitionAdapter() { + return new ItemDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createItemUsageAdapter() { + return new ItemUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createJoinNodeAdapter() { + return new JoinNodeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createLibraryPackageAdapter() { + return new LibraryPackageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createLiteralBooleanAdapter() { + return new LiteralBooleanAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createLiteralExpressionAdapter() { + return new LiteralExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createLiteralInfinityAdapter() { + return new LiteralInfinityAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createLiteralIntegerAdapter() { + return new LiteralIntegerAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createLiteralRationalAdapter() { + return new LiteralRationalAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createLiteralStringAdapter() { + return new LiteralStringAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createLoopActionUsageAdapter() { + return new LoopActionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMembershipAdapter() { + return new MembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMembershipExposeAdapter() { + return new MembershipExposeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMembershipImportAdapter() { + return new MembershipImportAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMergeNodeAdapter() { + return new MergeNodeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMetaclassAdapter() { + return new MetaclassAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMetadataAccessExpressionAdapter() { + return new MetadataAccessExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMetadataDefinitionAdapter() { + return new MetadataDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMetadataFeatureAdapter() { + return new MetadataFeatureAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMetadataUsageAdapter() { + return new MetadataUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMultiplicityAdapter() { + return new MultiplicityAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createMultiplicityRangeAdapter() { + return new MultiplicityRangeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createNamespaceAdapter() { + return new NamespaceAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createNamespaceExposeAdapter() { + return new NamespaceExposeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createNamespaceImportAdapter() { + return new NamespaceImportAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createNullExpressionAdapter() { + return new NullExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createObjectiveMembershipAdapter() { + return new ObjectiveMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createOccurrenceDefinitionAdapter() { + return new OccurrenceDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createOccurrenceUsageAdapter() { + return new OccurrenceUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createOperatorExpressionAdapter() { + return new OperatorExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createOwningMembershipAdapter() { + return new OwningMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createPackageAdapter() { + return new PackageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createParameterMembershipAdapter() { + return new ParameterMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createPartDefinitionAdapter() { + return new PartDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createPartUsageAdapter() { + return new PartUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createPayloadFeatureAdapter() { + return new PayloadFeatureAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createPerformActionUsageAdapter() { + return new PerformActionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createPortConjugationAdapter() { + return new PortConjugationAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createPortDefinitionAdapter() { + return new PortDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createPortUsageAdapter() { + return new PortUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createPredicateAdapter() { + return new PredicateAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createRedefinitionAdapter() { + return new RedefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createReferenceSubsettingAdapter() { + return new ReferenceSubsettingAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createReferenceUsageAdapter() { + return new ReferenceUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createRelationshipAdapter() { + return new RelationshipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createRenderingDefinitionAdapter() { + return new RenderingDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createRenderingUsageAdapter() { + return new RenderingUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createRequirementConstraintMembershipAdapter() { + return new RequirementConstraintMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createRequirementDefinitionAdapter() { + return new RequirementDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createRequirementUsageAdapter() { + return new RequirementUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createRequirementVerificationMembershipAdapter() { + return new RequirementVerificationMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createResultExpressionMembershipAdapter() { + return new ResultExpressionMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createReturnParameterMembershipAdapter() { + return new ReturnParameterMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSatisfyRequirementUsageAdapter() { + return new SatisfyRequirementUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSelectExpressionAdapter() { + return new SelectExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSendActionUsageAdapter() { + return new SendActionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSpecializationAdapter() { + return new SpecializationAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createStakeholderMembershipAdapter() { + return new StakeholderMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createStateDefinitionAdapter() { + return new StateDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createStateSubactionMembershipAdapter() { + return new StateSubactionMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createStateUsageAdapter() { + return new StateUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createStepAdapter() { + return new StepAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createStructureAdapter() { + return new StructureAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSubclassificationAdapter() { + return new SubclassificationAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSubjectMembershipAdapter() { + return new SubjectMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSubsettingAdapter() { + return new SubsettingAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSuccessionAdapter() { + return new SuccessionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSuccessionAsUsageAdapter() { + return new SuccessionAsUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSuccessionFlowAdapter() { + return new SuccessionFlowAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createSuccessionFlowUsageAdapter() { + return new SuccessionFlowUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createTerminateActionUsageAdapter() { + return new TerminateActionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createTextualRepresentationAdapter() { + return new TextualRepresentationAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createTransitionFeatureMembershipAdapter() { + return new TransitionFeatureMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createTransitionUsageAdapter() { + return new TransitionUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createTriggerInvocationExpressionAdapter() { + return new TriggerInvocationExpressionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createTypeAdapter() { + return new TypeAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createTypeFeaturingAdapter() { + return new TypeFeaturingAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createUnioningAdapter() { + return new UnioningAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createUsageAdapter() { + return new UsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createUseCaseDefinitionAdapter() { + return new UseCaseDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createUseCaseUsageAdapter() { + return new UseCaseUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createVariantMembershipAdapter() { + return new VariantMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createVerificationCaseDefinitionAdapter() { + return new VerificationCaseDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createVerificationCaseUsageAdapter() { + return new VerificationCaseUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createViewDefinitionAdapter() { + return new ViewDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createViewRenderingMembershipAdapter() { + return new ViewRenderingMembershipAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createViewUsageAdapter() { + return new ViewUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createViewpointDefinitionAdapter() { + return new ViewpointDefinitionAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createViewpointUsageAdapter() { + return new ViewpointUsageAdapter(); + } + + public org.eclipse.emf.common.notify.Adapter createWhileLoopActionUsageAdapter() { + return new WhileLoopActionUsageAdapter(); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TerminateActionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TerminateActionUsageAdapter.java new file mode 100644 index 000000000..f66b5fb69 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TerminateActionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.TerminateActionUsage; + +/** + * Generated adapter for {@link TerminateActionUsage}. + */ +public class TerminateActionUsageAdapter extends AbstractSysMLAdapter { + + public TerminateActionUsageAdapter() { + super(TerminateActionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TextualRepresentationAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TextualRepresentationAdapter.java new file mode 100644 index 000000000..a768675c1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TextualRepresentationAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.TextualRepresentation; + +/** + * Generated adapter for {@link TextualRepresentation}. + */ +public class TextualRepresentationAdapter extends AbstractSysMLAdapter { + + public TextualRepresentationAdapter() { + super(TextualRepresentation.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TransitionFeatureMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TransitionFeatureMembershipAdapter.java new file mode 100644 index 000000000..13683b4c8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TransitionFeatureMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.TransitionFeatureMembership; + +/** + * Generated adapter for {@link TransitionFeatureMembership}. + */ +public class TransitionFeatureMembershipAdapter extends AbstractSysMLAdapter { + + public TransitionFeatureMembershipAdapter() { + super(TransitionFeatureMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TransitionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TransitionUsageAdapter.java new file mode 100644 index 000000000..866a92677 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TransitionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * Generated adapter for {@link TransitionUsage}. + */ +public class TransitionUsageAdapter extends AbstractSysMLAdapter { + + public TransitionUsageAdapter() { + super(TransitionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TriggerInvocationExpressionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TriggerInvocationExpressionAdapter.java new file mode 100644 index 000000000..1becf3a5b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TriggerInvocationExpressionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.TriggerInvocationExpression; + +/** + * Generated adapter for {@link TriggerInvocationExpression}. + */ +public class TriggerInvocationExpressionAdapter extends AbstractSysMLAdapter { + + public TriggerInvocationExpressionAdapter() { + super(TriggerInvocationExpression.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TypeAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TypeAdapter.java new file mode 100644 index 000000000..3cce5fc97 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TypeAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Type; + +/** + * Generated adapter for {@link Type}. + */ +public class TypeAdapter extends AbstractSysMLAdapter { + + public TypeAdapter() { + super(Type.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TypeFeaturingAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TypeFeaturingAdapter.java new file mode 100644 index 000000000..366501d34 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/TypeFeaturingAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.TypeFeaturing; + +/** + * Generated adapter for {@link TypeFeaturing}. + */ +public class TypeFeaturingAdapter extends AbstractSysMLAdapter { + + public TypeFeaturingAdapter() { + super(TypeFeaturing.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UnioningAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UnioningAdapter.java new file mode 100644 index 000000000..70df1e750 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UnioningAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Unioning; + +/** + * Generated adapter for {@link Unioning}. + */ +public class UnioningAdapter extends AbstractSysMLAdapter { + + public UnioningAdapter() { + super(Unioning.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UsageAdapter.java new file mode 100644 index 000000000..cf668f151 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated adapter for {@link Usage}. + */ +public class UsageAdapter extends AbstractSysMLAdapter { + + public UsageAdapter() { + super(Usage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UseCaseDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UseCaseDefinitionAdapter.java new file mode 100644 index 000000000..4698ad680 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UseCaseDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.UseCaseDefinition; + +/** + * Generated adapter for {@link UseCaseDefinition}. + */ +public class UseCaseDefinitionAdapter extends AbstractSysMLAdapter { + + public UseCaseDefinitionAdapter() { + super(UseCaseDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UseCaseUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UseCaseUsageAdapter.java new file mode 100644 index 000000000..c566b8b6c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/UseCaseUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.UseCaseUsage; + +/** + * Generated adapter for {@link UseCaseUsage}. + */ +public class UseCaseUsageAdapter extends AbstractSysMLAdapter { + + public UseCaseUsageAdapter() { + super(UseCaseUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/VariantMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/VariantMembershipAdapter.java new file mode 100644 index 000000000..d2717e0c1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/VariantMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.VariantMembership; + +/** + * Generated adapter for {@link VariantMembership}. + */ +public class VariantMembershipAdapter extends AbstractSysMLAdapter { + + public VariantMembershipAdapter() { + super(VariantMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/VerificationCaseDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/VerificationCaseDefinitionAdapter.java new file mode 100644 index 000000000..a44fa2ebf --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/VerificationCaseDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.VerificationCaseDefinition; + +/** + * Generated adapter for {@link VerificationCaseDefinition}. + */ +public class VerificationCaseDefinitionAdapter extends AbstractSysMLAdapter { + + public VerificationCaseDefinitionAdapter() { + super(VerificationCaseDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/VerificationCaseUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/VerificationCaseUsageAdapter.java new file mode 100644 index 000000000..a409e2248 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/VerificationCaseUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.VerificationCaseUsage; + +/** + * Generated adapter for {@link VerificationCaseUsage}. + */ +public class VerificationCaseUsageAdapter extends AbstractSysMLAdapter { + + public VerificationCaseUsageAdapter() { + super(VerificationCaseUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewDefinitionAdapter.java new file mode 100644 index 000000000..1b5b82b27 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ViewDefinition; + +/** + * Generated adapter for {@link ViewDefinition}. + */ +public class ViewDefinitionAdapter extends AbstractSysMLAdapter { + + public ViewDefinitionAdapter() { + super(ViewDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewRenderingMembershipAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewRenderingMembershipAdapter.java new file mode 100644 index 000000000..b56d298b0 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewRenderingMembershipAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ViewRenderingMembership; + +/** + * Generated adapter for {@link ViewRenderingMembership}. + */ +public class ViewRenderingMembershipAdapter extends AbstractSysMLAdapter { + + public ViewRenderingMembershipAdapter() { + super(ViewRenderingMembership.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewUsageAdapter.java new file mode 100644 index 000000000..ab3fff338 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ViewUsage; + +/** + * Generated adapter for {@link ViewUsage}. + */ +public class ViewUsageAdapter extends AbstractSysMLAdapter { + + public ViewUsageAdapter() { + super(ViewUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewpointDefinitionAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewpointDefinitionAdapter.java new file mode 100644 index 000000000..871eab0cf --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewpointDefinitionAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ViewpointDefinition; + +/** + * Generated adapter for {@link ViewpointDefinition}. + */ +public class ViewpointDefinitionAdapter extends AbstractSysMLAdapter { + + public ViewpointDefinitionAdapter() { + super(ViewpointDefinition.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewpointUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewpointUsageAdapter.java new file mode 100644 index 000000000..a0bfb2490 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/ViewpointUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * Generated adapter for {@link ViewpointUsage}. + */ +public class ViewpointUsageAdapter extends AbstractSysMLAdapter { + + public ViewpointUsageAdapter() { + super(ViewpointUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/WhileLoopActionUsageAdapter.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/WhileLoopActionUsageAdapter.java new file mode 100644 index 000000000..67aaa3400 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/adapter/WhileLoopActionUsageAdapter.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.adapter; + +import org.omg.sysml.model.sysml.WhileLoopActionUsage; + +/** + * Generated adapter for {@link WhileLoopActionUsage}. + */ +public class WhileLoopActionUsageAdapter extends AbstractSysMLAdapter { + + public WhileLoopActionUsageAdapter() { + super(WhileLoopActionUsage.class); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/config/SysMLLogicConfiguration.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/config/SysMLLogicConfiguration.java new file mode 100644 index 000000000..ec90cb68c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/config/SysMLLogicConfiguration.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.config; + +import org.omg.sysml.logic.adapter.SysMLAdapters; +import org.omg.sysml.logic.adapter.SysMLLogicAdapterFactory; +import org.omg.sysml.logic.delegate.SysMLDelegateRegistrar; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class SysMLLogicConfiguration { + + @Bean + public SysMLDelegateRegistrar sysMLDelegateRegistrar() { + SysMLDelegateRegistrar registrar = new SysMLDelegateRegistrar(); + registrar.register(); + return registrar; + } + + @Bean + public SysMLLogicAdapterFactory sysMLLogicAdapterFactory() { + return new SysMLLogicAdapterFactory(); + } + + @Bean + public SysMLAdapters sysMLAdapters(SysMLLogicAdapterFactory adapterFactory) { + return new SysMLAdapters(adapterFactory); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/AbstractInvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/AbstractInvocationDelegate.java new file mode 100644 index 000000000..4db25323d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/AbstractInvocationDelegate.java @@ -0,0 +1,91 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.util.BasicInvocationDelegate; + +/** + * Base invocation delegate used by SysML operation delegates. + * + *

Concrete delegates extend this class and provide an identifier via + * {@link #delegateId()}. The default invocation behavior returns a type-compatible neutral value + * (or an empty list for multi-valued operations), allowing execution to remain stable when no + * operation-specific logic is implemented yet. + */ +public abstract class AbstractInvocationDelegate extends BasicInvocationDelegate { + + protected AbstractInvocationDelegate(EOperation operation) { + super(operation); + } + + protected abstract String delegateId(); + + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + if (eOperation.isMany()) { + return ECollections.emptyEList(); + } + Class instanceClass = eOperation.getEType() == null ? null : eOperation.getEType().getInstanceClass(); + if (instanceClass == Boolean.class || instanceClass == Boolean.TYPE) { + return Boolean.FALSE; + } + if (instanceClass == Integer.class || instanceClass == Integer.TYPE) { + return Integer.valueOf(0); + } + if (instanceClass == Long.class || instanceClass == Long.TYPE) { + return Long.valueOf(0L); + } + if (instanceClass == Double.class || instanceClass == Double.TYPE) { + return Double.valueOf(0d); + } + if (instanceClass == Float.class || instanceClass == Float.TYPE) { + return Float.valueOf(0f); + } + return null; + } + + /** + * Fallback invocation delegate used when a generated delegate class cannot be resolved. + * + *

It preserves deterministic behavior by delegating to the base neutral-value + * implementation while exposing the expected delegate identifier. + */ + public static final class FallbackInvocationDelegate extends AbstractInvocationDelegate { + + private final String id; + + public FallbackInvocationDelegate(EOperation operation, String id) { + super(operation); + this.id = id; + } + + @Override + protected String delegateId() { + return id; + } + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/AbstractSettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/AbstractSettingDelegate.java new file mode 100644 index 000000000..5852dbe28 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/AbstractSettingDelegate.java @@ -0,0 +1,95 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.util.BasicSettingDelegate; + +/** + * Base setting delegate used by SysML derived-feature delegates. + * + *

Concrete delegates extend this class and provide an identifier via + * {@link #delegateId()}. The default feature access behavior returns a type-compatible neutral + * value (or an empty list for multi-valued features). Delegates may override + * {@link #get(InternalEObject, boolean, boolean)} with OCL-based or subsets-annotation-based + * feature-specific logic. + */ +public abstract class AbstractSettingDelegate extends BasicSettingDelegate.Stateless { + + protected AbstractSettingDelegate(EStructuralFeature feature) { + super(feature); + } + + protected abstract String delegateId(); + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + if (eStructuralFeature.isMany()) { + return ECollections.emptyEList(); + } + + Class instanceClass = eStructuralFeature.getEType().getInstanceClass(); + if (instanceClass == Boolean.class || instanceClass == Boolean.TYPE) { + return Boolean.FALSE; + } + if (instanceClass == Integer.class || instanceClass == Integer.TYPE) { + return Integer.valueOf(0); + } + if (instanceClass == Long.class || instanceClass == Long.TYPE) { + return Long.valueOf(0L); + } + if (instanceClass == Double.class || instanceClass == Double.TYPE) { + return Double.valueOf(0d); + } + if (instanceClass == Float.class || instanceClass == Float.TYPE) { + return Float.valueOf(0f); + } + return null; + } + + @Override + protected boolean isSet(InternalEObject owner) { + return false; + } + + /** + * Fallback setting delegate used when a generated delegate class cannot be resolved. + * + *

It preserves deterministic behavior by delegating to the base neutral-value + * implementation while exposing the expected delegate identifier. + */ + public static final class FallbackSettingDelegate extends AbstractSettingDelegate { + + private final String id; + + public FallbackSettingDelegate(EStructuralFeature feature, String id) { + super(feature); + this.id = id; + } + + @Override + protected String delegateId() { + return id; + } + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/DefaultSysMLInvocationDelegateFactory.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/DefaultSysMLInvocationDelegateFactory.java new file mode 100644 index 000000000..04edbb9c6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/DefaultSysMLInvocationDelegateFactory.java @@ -0,0 +1,107 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +import java.lang.reflect.Constructor; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import org.eclipse.emf.ecore.EOperation; + +/** + * Factory that provides invocation delegates for SysML EMF operations. + * + *

It maps each {@link EOperation} to a generated delegate class name, loads the constructor + * reflectively, and instantiates the delegate on demand. + * + *

If a generated delegate class is missing or cannot be instantiated, a fallback delegate is + * returned to keep invocation behavior defined. + */ +public class DefaultSysMLInvocationDelegateFactory implements EOperation.Internal.InvocationDelegate.Factory { + + private static final String GENERATED_PACKAGE = "org.omg.sysml.logic.delegate.invocation"; + + private final Map> constructors = new ConcurrentHashMap<>(); + + @Override + public EOperation.Internal.InvocationDelegate createInvocationDelegate(EOperation eOperation) { + String className = GENERATED_PACKAGE + "." + delegateSimpleName(eOperation); + Constructor constructor = constructors.computeIfAbsent(eOperation, op -> loadConstructor(className)); + if (constructor == null) { + return new AbstractInvocationDelegate.FallbackInvocationDelegate(eOperation, className); + } + try { + return (EOperation.Internal.InvocationDelegate) constructor.newInstance(eOperation); + } catch (ReflectiveOperationException e) { + return new AbstractInvocationDelegate.FallbackInvocationDelegate(eOperation, className); + } + } + + /** + * Loads the generated delegate constructor for the given fully qualified class name. + * + *

Returns {@code null} when the class does not exist. + */ + private static Constructor loadConstructor(String className) { + try { + return Class.forName(className).getConstructor(EOperation.class); + } catch (ClassNotFoundException e) { + return null; + } catch (ReflectiveOperationException e) { + throw new IllegalStateException("Failed to initialize invocation delegate " + className, e); + } + } + + /** + * Computes the generated invocation delegate simple class name for an operation. + */ + private static String delegateSimpleName(EOperation operation) { + return sanitize(operation.getEContainingClass().getName()) + "_" + + operationToken(operation) + "_InvocationDelegate"; + } + + /** + * Builds the stable operation token used in generated invocation delegate class names. + */ + private static String operationToken(EOperation operation) { + return sanitize(operation.getName()); + } + + /** + * Converts an arbitrary token to a valid Java identifier fragment. + */ + private static String sanitize(String value) { + StringBuilder builder = new StringBuilder(value.length() + 4); + for (int i = 0; i < value.length(); i++) { + char ch = value.charAt(i); + if (Character.isLetterOrDigit(ch)) { + builder.append(ch); + } else { + builder.append('_'); + } + } + + if (builder.length() == 0 || !Character.isJavaIdentifierStart(builder.charAt(0))) { + builder.insert(0, '_'); + } + return builder.toString(); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/DefaultSysMLSettingDelegateFactory.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/DefaultSysMLSettingDelegateFactory.java new file mode 100644 index 000000000..869ec4b24 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/DefaultSysMLSettingDelegateFactory.java @@ -0,0 +1,100 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +import java.lang.reflect.Constructor; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import org.eclipse.emf.ecore.EStructuralFeature; + +/** + * Factory that provides setting delegates for SysML EMF derived features. + * + *

It maps each {@link EStructuralFeature} to a generated delegate class name, loads the + * constructor reflectively, and instantiates the delegate on demand. + * + *

If a generated delegate class is missing or cannot be instantiated, a fallback delegate is + * returned to keep derived feature access behavior defined. + */ +public class DefaultSysMLSettingDelegateFactory implements EStructuralFeature.Internal.SettingDelegate.Factory { + + private static final String GENERATED_PACKAGE = "org.omg.sysml.logic.delegate.setting"; + + private final Map> constructors = new ConcurrentHashMap<>(); + + @Override + public EStructuralFeature.Internal.SettingDelegate createSettingDelegate(EStructuralFeature eStructuralFeature) { + String className = GENERATED_PACKAGE + "." + delegateSimpleName(eStructuralFeature); + Constructor constructor = constructors.computeIfAbsent(eStructuralFeature, feature -> loadConstructor(className)); + if (constructor == null) { + return new AbstractSettingDelegate.FallbackSettingDelegate(eStructuralFeature, className); + } + try { + return (EStructuralFeature.Internal.SettingDelegate) constructor.newInstance(eStructuralFeature); + } catch (ReflectiveOperationException e) { + return new AbstractSettingDelegate.FallbackSettingDelegate(eStructuralFeature, className); + } + } + + /** + * Loads the generated delegate constructor for the given fully qualified class name. + * + *

Returns {@code null} when the class does not exist. + */ + private static Constructor loadConstructor(String className) { + try { + return Class.forName(className).getConstructor(EStructuralFeature.class); + } catch (ClassNotFoundException e) { + return null; + } catch (ReflectiveOperationException e) { + throw new IllegalStateException("Failed to initialize setting delegate " + className, e); + } + } + + /** + * Computes the generated setting delegate simple class name for a feature. + */ + private static String delegateSimpleName(EStructuralFeature feature) { + return sanitize(feature.getEContainingClass().getName()) + "_" + + sanitize(feature.getName()) + "_SettingDelegate"; + } + + /** + * Converts an arbitrary token to a valid Java identifier fragment. + */ + private static String sanitize(String value) { + StringBuilder builder = new StringBuilder(value.length() + 4); + for (int i = 0; i < value.length(); i++) { + char ch = value.charAt(i); + if (Character.isLetterOrDigit(ch)) { + builder.append(ch); + } else { + builder.append('_'); + } + } + + if (builder.length() == 0 || !Character.isJavaIdentifierStart(builder.charAt(0))) { + builder.insert(0, '_'); + } + return builder.toString(); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/SysMLDelegateConstants.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/SysMLDelegateConstants.java new file mode 100644 index 000000000..f90a6da92 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/SysMLDelegateConstants.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +/** + * Shared constants for SysML delegate registration and lookup. + * + *

These values are used to bind EMF setting and invocation delegate factories to the SysML + * delegate URI declared in the metamodel. + */ +public final class SysMLDelegateConstants { + + public static final String SYSML_DELEGATE_URI = "http://www.omg.org/spec/SysML"; + + private SysMLDelegateConstants() { + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/SysMLDelegateRegistrar.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/SysMLDelegateRegistrar.java new file mode 100644 index 000000000..7563dc948 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/SysMLDelegateRegistrar.java @@ -0,0 +1,55 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate; + +import java.util.concurrent.atomic.AtomicBoolean; + +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EStructuralFeature; + +/** + * Registers SysML EMF delegate factories for derived features and operations. + * + *

This registrar binds {@link DefaultSysMLSettingDelegateFactory} and + * {@link DefaultSysMLInvocationDelegateFactory} to the SysML delegate URI in EMF global + * registries. + * + *

Registration is idempotent and guarded to run once per JVM. + */ +public class SysMLDelegateRegistrar { + + private static final AtomicBoolean REGISTERED = new AtomicBoolean(false); + + public void register() { + registerDelegates(); + } + + public static void registerDelegates() { + if (REGISTERED.compareAndSet(false, true)) { + EStructuralFeature.Internal.SettingDelegate.Factory.Registry.INSTANCE.put( + SysMLDelegateConstants.SYSML_DELEGATE_URI, + new DefaultSysMLSettingDelegateFactory()); + EOperation.Internal.InvocationDelegate.Factory.Registry.INSTANCE.put( + SysMLDelegateConstants.SYSML_DELEGATE_URI, + new DefaultSysMLInvocationDelegateFactory()); + } + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/AcceptActionUsage_isTriggerAction_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/AcceptActionUsage_isTriggerAction_InvocationDelegate.java new file mode 100644 index 000000000..bea0cc1a9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/AcceptActionUsage_isTriggerAction_InvocationDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * Generated invocation delegate for {@code AcceptActionUsage::isTriggerAction}. + */ +public class AcceptActionUsage_isTriggerAction_InvocationDelegate extends AbstractInvocationDelegate { + + public AcceptActionUsage_isTriggerAction_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "AcceptActionUsage::isTriggerAction"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * owningType <> null and + * owningType.oclIsKindOf(TransitionUsage) and + * owningType.oclAsType(TransitionUsage).triggerAction->includes(self) + */ + var result = false; + if (target instanceof AcceptActionUsage self + && self.getOwningType() instanceof TransitionUsage transitionUsage) { + result = transitionUsage.getTriggerAction().contains(self); + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_argument_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_argument_InvocationDelegate.java new file mode 100644 index 000000000..5c5788de9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_argument_InvocationDelegate.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.Membership; + +/** + * Generated invocation delegate for {@code ActionUsage::argument}. + */ +public class ActionUsage_argument_InvocationDelegate extends AbstractInvocationDelegate { + + public ActionUsage_argument_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ActionUsage::argument"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 argumentBody + * if inputParameter(i) = null then null + * else + * let featureValue : Sequence(FeatureValue) = inputParameter(i). + * ownedMembership->select(oclIsKindOf(FeatureValue)) in + * if featureValue->isEmpty() then null + * else featureValue->at(1).value + * endif + * endif + */ + Expression result = null; + if (target instanceof ActionUsage self) { + var i = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Integer index + ? index.intValue() + : 0; + if (i > 0) { + var inputParameter = self.inputParameter(i); + if (inputParameter != null) { + for (Membership membership : inputParameter.getOwnedMembership()) { + if (membership instanceof FeatureValue featureValue) { + var value = featureValue.getValue(); + if (value != null) { + result = value; + break; + } + } + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_inputParameter_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_inputParameter_InvocationDelegate.java new file mode 100644 index 000000000..9a7b9d274 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_inputParameter_InvocationDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated invocation delegate for {@code ActionUsage::inputParameter}. + */ +public class ActionUsage_inputParameter_InvocationDelegate extends AbstractInvocationDelegate { + + public ActionUsage_inputParameter_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ActionUsage::inputParameter"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if inputParameters()->size() < i then null + * else inputParameters()->at(i) + * endif + */ + Feature result = null; + if (target instanceof ActionUsage self) { + var i = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Integer index + ? index.intValue() + : 0; + if (i > 0) { + var ownedInputs = self.inputParameters(); + if (ownedInputs.size() >= i) { + result = ownedInputs.get(i - 1); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_inputParameters_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_inputParameters_InvocationDelegate.java new file mode 100644 index 000000000..e15fb8ddd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_inputParameters_InvocationDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated invocation delegate for {@code ActionUsage::inputParameters}. + */ +public class ActionUsage_inputParameters_InvocationDelegate extends AbstractInvocationDelegate { + + public ActionUsage_inputParameters_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ActionUsage::inputParameters"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 inputParametersBody + * input->select(f | f.owner = self) + */ + var result = ECollections.emptyEList(); + if (target instanceof ActionUsage self) { + var ownedInputs = new BasicEList(); + for (Feature input : self.getInput()) { + if (input != null && input.getOwner() == self) { + ownedInputs.add(input); + } + } + result = ownedInputs; + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_isSubactionUsage_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_isSubactionUsage_InvocationDelegate.java new file mode 100644 index 000000000..e1f16a2a7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ActionUsage_isSubactionUsage_InvocationDelegate.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.ActionDefinition; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.StateSubactionKind; +import org.omg.sysml.model.sysml.StateSubactionMembership; + +/** + * Generated invocation delegate for {@code ActionUsage::isSubactionUsage}. + */ +public class ActionUsage_isSubactionUsage_InvocationDelegate extends AbstractInvocationDelegate { + + public ActionUsage_isSubactionUsage_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ActionUsage::isSubactionUsage"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(ActionDefinition) or + * owningType.oclIsKindOf(ActionUsage)) and + * (owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies + * owningFeatureMembership.oclAsType(StateSubactionMembership).kind = + * StateSubactionKind::do) + */ + var result = false; + if (target instanceof ActionUsage self && self.isIsComposite()) { + var owningType = self.getOwningType(); + if (owningType instanceof ActionDefinition || owningType instanceof ActionUsage) { + var owningMembership = self.getOwningFeatureMembership(); + if (owningMembership instanceof StateSubactionMembership stateSubactionMembership) { + result = stateSubactionMembership.getKind() == StateSubactionKind.DO; + } else { + result = true; + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/CalculationUsage_modelLevelEvaluable_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/CalculationUsage_modelLevelEvaluable_InvocationDelegate.java new file mode 100644 index 000000000..c748fdffd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/CalculationUsage_modelLevelEvaluable_InvocationDelegate.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; + +/** + * Generated invocation delegate for {@code CalculationUsage::modelLevelEvaluable}. + */ +public class CalculationUsage_modelLevelEvaluable_InvocationDelegate extends AbstractInvocationDelegate { + + public CalculationUsage_modelLevelEvaluable_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "CalculationUsage::modelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * false + */ + return Boolean.FALSE; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConjugatedPortDefinition_effectiveName_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConjugatedPortDefinition_effectiveName_InvocationDelegate.java new file mode 100644 index 000000000..55197c483 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConjugatedPortDefinition_effectiveName_InvocationDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; + +/** + * Generated invocation delegate for {@code ConjugatedPortDefinition::effectiveName}. + */ +public class ConjugatedPortDefinition_effectiveName_InvocationDelegate extends AbstractInvocationDelegate { + + public ConjugatedPortDefinition_effectiveName_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ConjugatedPortDefinition::effectiveName"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let originalName : String = originalPortDefinition.name in + * if originalName = null then null + * else '~' + originalName + * endif + */ + String result = null; + if (target instanceof ConjugatedPortDefinition self) { + var originalPortDefinition = self.getOriginalPortDefinition(); + if (originalPortDefinition != null) { + var originalName = originalPortDefinition.getName(); + if (originalName != null) { + result = "~" + originalName; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConstraintUsage_modelLevelEvaluable_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConstraintUsage_modelLevelEvaluable_InvocationDelegate.java new file mode 100644 index 000000000..a990a8c12 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConstraintUsage_modelLevelEvaluable_InvocationDelegate.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; + +/** + * Generated invocation delegate for {@code ConstraintUsage::modelLevelEvaluable}. + */ +public class ConstraintUsage_modelLevelEvaluable_InvocationDelegate extends AbstractInvocationDelegate { + + public ConstraintUsage_modelLevelEvaluable_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ConstraintUsage::modelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * false + */ + return Boolean.FALSE; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConstraintUsage_namingFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConstraintUsage_namingFeature_InvocationDelegate.java new file mode 100644 index 000000000..8fbac4396 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConstraintUsage_namingFeature_InvocationDelegate.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; + +/** + * Generated invocation delegate for {@code ConstraintUsage::namingFeature}. + */ +public class ConstraintUsage_namingFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public ConstraintUsage_namingFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ConstraintUsage::namingFeature"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if owningFeatureMembership <> null and + * owningFeatureMembership.oclIsKindOf(RequirementConstraintMembership) and + * ownedReferenceSubsetting <> null then + * ownedReferenceSubsetting.referencedFeature.featureTarget + * else + * self.oclAsType(OccurrenceUsage).namingFeature() + * endif + */ + Feature result = null; + if (target instanceof ConstraintUsage self) { + var owningFeatureMembership = self.getOwningFeatureMembership(); + var ownedReferenceSubsetting = self.getOwnedReferenceSubsetting(); + if (owningFeatureMembership instanceof RequirementConstraintMembership && ownedReferenceSubsetting != null) { + var referencedFeature = ownedReferenceSubsetting.getReferencedFeature(); + if (referencedFeature != null) { + result = referencedFeature.getFeatureTarget(); + } + } else { + result = (Feature) super.dynamicInvoke(target, arguments); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConstructorExpression_modelLevelEvaluable_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConstructorExpression_modelLevelEvaluable_InvocationDelegate.java new file mode 100644 index 000000000..2440a5e15 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ConstructorExpression_modelLevelEvaluable_InvocationDelegate.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConstructorExpression; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated invocation delegate for {@code ConstructorExpression::modelLevelEvaluable}. + */ +public class ConstructorExpression_modelLevelEvaluable_InvocationDelegate extends AbstractInvocationDelegate { + + public ConstructorExpression_modelLevelEvaluable_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ConstructorExpression::modelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * argument->forAll(modelLevelEvaluable(visited)) + */ + var result = false; + var visited = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList visitedArg) { + for (Object element : visitedArg) { + if (element instanceof Feature feature) { + visited.add(feature); + } + } + } + if (target instanceof ConstructorExpression self) { + result = true; + for (Expression argument : self.getArgument()) { + if (argument == null || !argument.modelLevelEvaluable(visited)) { + result = false; + break; + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ControlNode_multiplicityHasBounds_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ControlNode_multiplicityHasBounds_InvocationDelegate.java new file mode 100644 index 000000000..74467bdfb --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ControlNode_multiplicityHasBounds_InvocationDelegate.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.MultiplicityRange; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code ControlNode::multiplicityHasBounds}. + */ +public class ControlNode_multiplicityHasBounds_InvocationDelegate extends AbstractInvocationDelegate { + + public ControlNode_multiplicityHasBounds_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ControlNode::multiplicityHasBounds"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * mult <> null and + * if mult.oclIsKindOf(MultiplicityRange) then + * mult.oclAsType(MultiplicityRange).hasBounds(lower, upper) + * else + * mult.allSuperTypes()->exists( + * oclisKindOf(MultiplicityRange) and + * oclAsType(MultiplicityRange).hasBounds(lower, upper) + * endif + */ + var result = false; + var mult = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Multiplicity multiplicity + ? multiplicity + : null; + var lower = arguments != null && arguments.size() > 1 && arguments.get(1) instanceof Integer l + ? l.intValue() + : 0; + var upper = arguments != null && arguments.size() > 2 && arguments.get(2) instanceof Integer u + ? u.intValue() + : 0; + if (mult instanceof MultiplicityRange multiplicityRange) { + result = multiplicityRange.hasBounds(lower, upper); + } else if (mult != null) { + for (Type superType : mult.allSupertypes()) { + if (superType instanceof MultiplicityRange multiplicityRange + && multiplicityRange.hasBounds(lower, upper)) { + result = true; + break; + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_effectiveName_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_effectiveName_InvocationDelegate.java new file mode 100644 index 000000000..c56587031 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_effectiveName_InvocationDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated invocation delegate for {@code Element::effectiveName}. + */ +public class Element_effectiveName_InvocationDelegate extends AbstractInvocationDelegate { + + public Element_effectiveName_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Element::effectiveName"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * declaredName + */ + String result = null; + if (target instanceof Element self) { + result = self.getDeclaredName(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_effectiveShortName_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_effectiveShortName_InvocationDelegate.java new file mode 100644 index 000000000..cd7f805b8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_effectiveShortName_InvocationDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated invocation delegate for {@code Element::effectiveShortName}. + */ +public class Element_effectiveShortName_InvocationDelegate extends AbstractInvocationDelegate { + + public Element_effectiveShortName_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Element::effectiveShortName"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * declaredShortName + */ + String result = null; + if (target instanceof Element self) { + result = self.getDeclaredShortName(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_escapedName_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_escapedName_InvocationDelegate.java new file mode 100644 index 000000000..2c24a110b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_escapedName_InvocationDelegate.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated invocation delegate for {@code Element::escapedName}. + */ +public class Element_escapedName_InvocationDelegate extends AbstractInvocationDelegate { + + public Element_escapedName_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Element::escapedName"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let name : String = + * if self.name = null then self.shortName + * else self.name in + * if name = null then null + * else if name.matches('[A-Za-z_][A-Za-z0-9_]*') then name + * else '\'' + name.escapeSpecialCharacters() + '\'' + * endif endif + */ + String result = null; + if (target instanceof Element self) { + var candidate = self.getName(); + if (candidate == null) { + candidate = self.getShortName(); + } + if (candidate != null) { + if (candidate.matches("[A-Za-z_][A-Za-z0-9_]*")) { + result = candidate; + } else { + result = "'" + candidate.replace("\\", "\\\\").replace("'", "\\'") + "'"; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_libraryNamespace_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_libraryNamespace_InvocationDelegate.java new file mode 100644 index 000000000..6c4e7ca08 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_libraryNamespace_InvocationDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated invocation delegate for {@code Element::libraryNamespace}. + */ +public class Element_libraryNamespace_InvocationDelegate extends AbstractInvocationDelegate { + + public Element_libraryNamespace_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Element::libraryNamespace"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if owningRelationship <> null then owningRelationship.libraryNamespace() + * else null endif + */ + Namespace result = null; + if (target instanceof Element self) { + var owningRelationship = self.getOwningRelationship(); + if (owningRelationship != null) { + result = owningRelationship.libraryNamespace(); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_path_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_path_InvocationDelegate.java new file mode 100644 index 000000000..09cd0f152 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Element_path_InvocationDelegate.java @@ -0,0 +1,77 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated invocation delegate for {@code Element::path}. + */ +public class Element_path_InvocationDelegate extends AbstractInvocationDelegate { + + public Element_path_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Element::path"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if qualifiedName <> null then qualifiedName + * else if owningRelationship <> null then + * owningRelationship.path() + '/' + + * owningRelationship.ownedRelatedElement->indexOf(self).toString() + * -- A position index shall be converted to a decimal string representation + * -- consisting of only decimal digits, with no sign, leading zeros or leading + * -- or trailing whitespace. + * else '' + * endif endif + */ + var result = ""; + if (target instanceof Element self) { + var qualifiedName = self.getQualifiedName(); + if (qualifiedName != null) { + result = qualifiedName; + } else { + var owningRelationship = self.getOwningRelationship(); + if (owningRelationship != null) { + var index = owningRelationship.getOwnedRelatedElement().indexOf(self); + var oneBasedIndex = index >= 0 ? index + 1 : 0; + result = owningRelationship.path() + "/" + oneBasedIndex; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Expression_checkCondition_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Expression_checkCondition_InvocationDelegate.java new file mode 100644 index 000000000..d02951def --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Expression_checkCondition_InvocationDelegate.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.LiteralBoolean; + +/** + * Generated invocation delegate for {@code Expression::checkCondition}. + */ +public class Expression_checkCondition_InvocationDelegate extends AbstractInvocationDelegate { + + public Expression_checkCondition_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Expression::checkCondition"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let results: Sequence(Element) = evaluate(target) in + * result->size() = 1 and + * results->first().oclIsKindOf(LiteralBoolean) and + * results->first().oclAsType(LiteralBoolean).value + */ + var result = false; + if (target instanceof Expression self) { + var evaluationTarget = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Element element + ? element + : null; + var evaluated = self.evaluate(evaluationTarget); + if (self.getResult() != null && evaluated != null && !evaluated.isEmpty() + && evaluated.getFirst() instanceof LiteralBoolean literalBoolean) { + result = literalBoolean.isValue(); + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Expression_evaluate_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Expression_evaluate_InvocationDelegate.java new file mode 100644 index 000000000..dabaf2145 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Expression_evaluate_InvocationDelegate.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.ECollections; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.ResultExpressionMembership; + +/** + * Generated invocation delegate for {@code Expression::evaluate}. + */ +public class Expression_evaluate_InvocationDelegate extends AbstractInvocationDelegate { + + public Expression_evaluate_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Expression::evaluate"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 evaluatePre + * isModelLevelEvaluable + */ + var result = ECollections.emptyEList(); + if (target instanceof Expression self && self.isIsModelLevelEvaluable()) { + var evaluationTarget = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Element element + ? element + : null; + for (FeatureMembership featureMembership : self.getOwnedFeatureMembership()) { + if (featureMembership instanceof ResultExpressionMembership resultExpressionMembership) { + var ownedResultExpression = resultExpressionMembership.getOwnedResultExpression(); + if (ownedResultExpression != null && ownedResultExpression != self) { + result = ownedResultExpression.evaluate(evaluationTarget); + } + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Expression_modelLevelEvaluable_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Expression_modelLevelEvaluable_InvocationDelegate.java new file mode 100644 index 000000000..83ef1336f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Expression_modelLevelEvaluable_InvocationDelegate.java @@ -0,0 +1,112 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.ResultExpressionMembership; +import org.omg.sysml.model.sysml.Specialization; + +/** + * Generated invocation delegate for {@code Expression::modelLevelEvaluable}. + */ +public class Expression_modelLevelEvaluable_InvocationDelegate extends AbstractInvocationDelegate { + + public Expression_modelLevelEvaluable_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Expression::modelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * ownedSpecialization->forAll(isImplied) and + * ownedFeature->forAll(f | + * (directionOf(f) = FeatureDirectionKind::_'in' or f = result) and + * f.ownedFeature->isEmpty() and f.valuation = null or + * f.owningFeatureMembership.oclIsKindOf(ResultExpressionMembership) and + * f.oclAsType(Expression).modelLevelEvaluable(visited) + */ + var result = false; + if (target instanceof Expression self) { + var visited = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList visitedArg) { + for (Object element : visitedArg) { + if (element instanceof Feature feature) { + visited.add(feature); + } + } + } + result = true; + for (Specialization specialization : self.getOwnedSpecialization()) { + if (!specialization.isIsImplied()) { + result = false; + break; + } + } + if (result) { + for (Feature feature : self.getOwnedFeature()) { + var hasValuation = false; + for (Membership membership : feature.getOwnedMembership()) { + if (membership instanceof FeatureValue) { + hasValuation = true; + break; + } + } + var conditionA = (feature.getDirection() == FeatureDirectionKind.IN || feature == self.getResult()) + && feature.getOwnedFeature().isEmpty() + && !hasValuation; + var conditionB = false; + if (feature.getOwningFeatureMembership() instanceof ResultExpressionMembership + && feature instanceof Expression nestedExpression + && !visited.contains(feature)) { + var nextVisited = new BasicEList(); + nextVisited.addAll(visited); + nextVisited.add(feature); + conditionB = nestedExpression.modelLevelEvaluable(nextVisited); + } + if (!(conditionA || conditionB)) { + result = false; + break; + } + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/FeatureChainExpression_sourceTargetFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/FeatureChainExpression_sourceTargetFeature_InvocationDelegate.java new file mode 100644 index 000000000..d0eb258ab --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/FeatureChainExpression_sourceTargetFeature_InvocationDelegate.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChainExpression; +import org.omg.sysml.model.sysml.FeatureDirectionKind; + +/** + * Generated invocation delegate for {@code FeatureChainExpression::sourceTargetFeature}. + */ +public class FeatureChainExpression_sourceTargetFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public FeatureChainExpression_sourceTargetFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "FeatureChainExpression::sourceTargetFeature"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let inputParameters : Feature = ownedFeatures-> + * select(direction = _'in') in + * if inputParameters->isEmpty() or + * inputParameters->first().ownedFeature->isEmpty() + * then null + * else inputParameters->first().ownedFeature->first() + * endif + */ + Feature result = null; + if (target instanceof FeatureChainExpression self) { + for (Feature inputParameter : self.getOwnedFeature()) { + if (inputParameter.getDirection() == FeatureDirectionKind.IN) { + if (!inputParameter.getOwnedFeature().isEmpty()) { + result = inputParameter.getOwnedFeature().getFirst(); + } + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/FeatureReferenceExpression_evaluate_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/FeatureReferenceExpression_evaluate_InvocationDelegate.java new file mode 100644 index 000000000..c6efb1cf1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/FeatureReferenceExpression_evaluate_InvocationDelegate.java @@ -0,0 +1,118 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureReferenceExpression; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Redefinition; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code FeatureReferenceExpression::evaluate}. + */ +public class FeatureReferenceExpression_evaluate_InvocationDelegate extends AbstractInvocationDelegate { + + public FeatureReferenceExpression_evaluate_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "FeatureReferenceExpression::evaluate"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if not target.oclIsKindOf(Type) then Sequence{} + * else + * let feature: Sequence(Feature) = + * target.oclAsType(Type).feature->select(f | + * f.ownedRedefinition.redefinedFeature-> + * includes(referent)) in + * if feature->notEmpty() then + * feature.valuation.value.evaluate(target) + * else if referent.featuringType->isEmpty() + * then referent + * else Sequence{} + * endif endif + * endif + */ + var result = ECollections.emptyEList(); + var evaluationTarget = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Element element + ? element + : null; + if (target instanceof FeatureReferenceExpression self && evaluationTarget instanceof Type evaluationType) { + var referent = self.getReferent(); + if (referent != null) { + Feature matchedFeature = null; + for (Feature candidate : evaluationType.getFeature()) { + for (Redefinition redefinition : candidate.getOwnedRedefinition()) { + if (redefinition.getRedefinedFeature() == referent) { + matchedFeature = candidate; + break; + } + } + if (matchedFeature != null) { + break; + } + } + if (matchedFeature != null) { + var evaluatedFromValue = false; + for (Membership membership : matchedFeature.getOwnedMembership()) { + if (membership instanceof FeatureValue featureValue) { + var value = featureValue.getValue(); + if (value != null) { + result = value.evaluate(evaluationTarget); + evaluatedFromValue = true; + } + break; + } + } + if (!evaluatedFromValue) { + var singleton = new BasicEList(); + singleton.add(matchedFeature); + result = singleton; + } + } else if (referent.getFeaturingType().isEmpty()) { + var singleton = new BasicEList(); + singleton.add(referent); + result = singleton; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/FeatureReferenceExpression_modelLevelEvaluable_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/FeatureReferenceExpression_modelLevelEvaluable_InvocationDelegate.java new file mode 100644 index 000000000..95bbe5605 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/FeatureReferenceExpression_modelLevelEvaluable_InvocationDelegate.java @@ -0,0 +1,118 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureReferenceExpression; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.model.sysml.MetadataFeature; + +/** + * Generated invocation delegate for {@code FeatureReferenceExpression::modelLevelEvaluable}. + */ +public class FeatureReferenceExpression_modelLevelEvaluable_InvocationDelegate extends AbstractInvocationDelegate { + + public FeatureReferenceExpression_modelLevelEvaluable_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "FeatureReferenceExpression::modelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * referent.conformsTo('Anything::self') or + * visited->excludes(referent) and + * (referent.oclIsKindOf(Expression) and + * referent.oclAsType(Expression).modelLevelEvaluable(visited->including(referent)) or + * referent.owningType <> null and + * (referent.owningType.isOclKindOf(MetaClass) or + * referent.owningType.isOclKindOf(MetadataFeature)) or + * referent.featuringType->isEmpty() and + * (referent.valuation = null or + * referent.valuation.modelLevelEvaluable(visited->including(referent)))) + */ + var result = false; + if (target instanceof FeatureReferenceExpression self) { + var visited = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList visitedArg) { + for (Object element : visitedArg) { + if (element instanceof Feature feature) { + visited.add(feature); + } + } + } + var referent = self.getReferent(); + if (referent != null) { + var anythingSelfMembership = self.resolveGlobal("Anything::self"); + var isAnythingSelf = anythingSelfMembership != null && anythingSelfMembership.getMemberElement() == referent; + if (isAnythingSelf) { + result = true; + } else if (!visited.contains(referent)) { + if (referent instanceof Expression expression) { + var nextVisited = new BasicEList(); + nextVisited.addAll(visited); + nextVisited.add(referent); + result = expression.modelLevelEvaluable(nextVisited); + } + if (!result) { + var owningType = referent.getOwningType(); + result = owningType instanceof Metaclass || owningType instanceof MetadataFeature; + } + if (!result && referent.getFeaturingType().isEmpty()) { + Expression valuation = null; + for (Membership membership : referent.getOwnedMembership()) { + if (membership instanceof FeatureValue featureValue) { + valuation = featureValue.getValue(); + break; + } + } + if (valuation == null) { + result = true; + } else { + var nextVisited = new BasicEList(); + nextVisited.addAll(visited); + nextVisited.add(referent); + result = valuation.modelLevelEvaluable(nextVisited); + } + } + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_allRedefinedFeatures_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_allRedefinedFeatures_InvocationDelegate.java new file mode 100644 index 000000000..c60412fdd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_allRedefinedFeatures_InvocationDelegate.java @@ -0,0 +1,83 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.ArrayDeque; +import java.util.LinkedHashSet; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Redefinition; + +/** + * Generated invocation delegate for {@code Feature::allRedefinedFeatures}. + */ +public class Feature_allRedefinedFeatures_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_allRedefinedFeatures_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::allRedefinedFeatures"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * ownedRedefinition.redefinedFeature-> + * closure(ownedRedefinition.redefinedFeature)-> + * asOrderedSet()->prepend(self) + */ + var result = new BasicEList(); + if (target instanceof Feature self) { + var allRedefinedFeatures = new LinkedHashSet(); + var toVisit = new ArrayDeque(); + allRedefinedFeatures.add(self); + for (Redefinition redefinition : self.getOwnedRedefinition()) { + if (redefinition.getRedefinedFeature() != null) { + toVisit.addLast(redefinition.getRedefinedFeature()); + } + } + while (!toVisit.isEmpty()) { + var feature = toVisit.removeFirst(); + if (allRedefinedFeatures.add(feature)) { + for (Redefinition redefinition : feature.getOwnedRedefinition()) { + if (redefinition.getRedefinedFeature() != null) { + toVisit.addLast(redefinition.getRedefinedFeature()); + } + } + } + } + result.addAll(allRedefinedFeatures); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_asCartesianProduct_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_asCartesianProduct_InvocationDelegate.java new file mode 100644 index 000000000..4e353de95 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_asCartesianProduct_InvocationDelegate.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Feature::asCartesianProduct}. + */ +public class Feature_asCartesianProduct_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_asCartesianProduct_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::asCartesianProduct"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * featuringType->select(t | t.owner <> self)-> + * union(featuringType->select(t | t.owner = self)-> + * selectByKind(Feature).asCartesianProduct())-> + * union(type) + */ + var result = new BasicEList(); + if (target instanceof Feature self) { + for (Type featuringType : self.getFeaturingType()) { + if (featuringType != null && featuringType.getOwner() != self && !result.contains(featuringType)) { + result.add(featuringType); + } + } + for (Type featuringType : self.getFeaturingType()) { + if (featuringType != null && featuringType.getOwner() == self && featuringType instanceof Feature feature) { + for (Type type : feature.asCartesianProduct()) { + if (type != null && !result.contains(type)) { + result.add(type); + } + } + } + } + for (Type type : self.getType()) { + if (type != null && !result.contains(type)) { + result.add(type); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_canAccess_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_canAccess_InvocationDelegate.java new file mode 100644 index 000000000..8df15e3bf --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_canAccess_InvocationDelegate.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.ArrayDeque; +import java.util.LinkedHashSet; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Feature::canAccess}. + */ +public class Feature_canAccess_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_canAccess_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::canAccess"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let anythingType: Element = + * subsettingFeature.resolveGlobal('Base::Anything').memberElement in + * let allFeaturingTypes : Sequence(Type) = + * featuringTypes->closure(t | + * if not t.oclIsKindOf(Feature) then Sequence{} + * else + * let featuringTypes : OrderedSet(Type) = t.oclAsType(Feature).featuringType in + * if featuringTypes->isEmpty() then Sequence{anythingType} + * else featuringTypes + * endif + * endif) in + * allFeaturingTypes->exists(t | feature.isFeaturedWithin(t)) + */ + var result = false; + if (target instanceof Feature self) { + var feature = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Feature argFeature + ? argFeature + : null; + if (feature != null) { + Type anythingType = null; + var anythingMembership = self.resolveGlobal("Base::Anything"); + if (anythingMembership != null) { + var memberElement = anythingMembership.getMemberElement(); + if (memberElement instanceof Type type) { + anythingType = type; + } + } + var allFeaturingTypes = new LinkedHashSet(); + var toVisit = new ArrayDeque(); + for (Type type : self.getFeaturingType()) { + if (type != null && allFeaturingTypes.add(type)) { + toVisit.addLast(type); + } + } + while (!toVisit.isEmpty()) { + var type = toVisit.removeFirst(); + if (type instanceof Feature featuringFeature) { + var featuringTypes = featuringFeature.getFeaturingType(); + if (featuringTypes.isEmpty()) { + if (anythingType != null && allFeaturingTypes.add(anythingType)) { + toVisit.addLast(anythingType); + } + } else { + for (Type featuringType : featuringTypes) { + if (featuringType != null && allFeaturingTypes.add(featuringType)) { + toVisit.addLast(featuringType); + } + } + } + } + } + for (Type type : allFeaturingTypes) { + if (feature.isFeaturedWithin(type)) { + result = true; + break; + } + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_directionFor_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_directionFor_InvocationDelegate.java new file mode 100644 index 000000000..a5fcae59f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_directionFor_InvocationDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Feature::directionFor}. + */ +public class Feature_directionFor_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_directionFor_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::directionFor"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 directionForBody + * type.directionOf(self) + */ + FeatureDirectionKind result = null; + if (target instanceof Feature self) { + var type = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Type argType + ? argType + : null; + if (type != null) { + result = type.directionOf(self); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_effectiveName_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_effectiveName_InvocationDelegate.java new file mode 100644 index 000000000..c5cb95595 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_effectiveName_InvocationDelegate.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated invocation delegate for {@code Feature::effectiveName}. + */ +public class Feature_effectiveName_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_effectiveName_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::effectiveName"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if declaredShortName <> null or declaredName <> null then + * declaredName + * else + * let namingFeature : Feature = namingFeature() in + * if namingFeature = null then + * null + * else + * namingFeature.effectiveName() + * endif + * endif + */ + String result = null; + if (target instanceof Feature self) { + if (self.getDeclaredShortName() != null || self.getDeclaredName() != null) { + result = self.getDeclaredName(); + } else { + var namingFeature = self.namingFeature(); + if (namingFeature != null) { + result = namingFeature.effectiveName(); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_effectiveShortName_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_effectiveShortName_InvocationDelegate.java new file mode 100644 index 000000000..74cff96cc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_effectiveShortName_InvocationDelegate.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated invocation delegate for {@code Feature::effectiveShortName}. + */ +public class Feature_effectiveShortName_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_effectiveShortName_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::effectiveShortName"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if declaredShortName <> null or declaredName <> null then + * declaredShortName + * else + * let namingFeature : Feature = namingFeature() in + * if namingFeature = null then + * null + * else + * namingFeature.effectiveShortName() + * endif + * endif + */ + String result = null; + if (target instanceof Feature self) { + if (self.getDeclaredShortName() != null || self.getDeclaredName() != null) { + result = self.getDeclaredShortName(); + } else { + var namingFeature = self.namingFeature(); + if (namingFeature != null) { + result = namingFeature.effectiveShortName(); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isCartesianProduct_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isCartesianProduct_InvocationDelegate.java new file mode 100644 index 000000000..e1def93f6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isCartesianProduct_InvocationDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated invocation delegate for {@code Feature::isCartesianProduct}. + */ +public class Feature_isCartesianProduct_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_isCartesianProduct_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::isCartesianProduct"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * type->size() = 1 and + * featuringType.size() = 1 and + * (featuringType.first().owner = self implies + * featuringType.first().oclIsKindOf(Feature) and + * featuringType.first().oclAsType(Feature).isCartesianProduct()) + */ + var result = false; + if (target instanceof Feature self) { + result = self.getType().size() == 1 && self.getFeaturingType().size() == 1; + if (result) { + var featuringType = self.getFeaturingType().getFirst(); + if (featuringType != null && featuringType.getOwner() == self) { + result = featuringType instanceof Feature feature && feature.isCartesianProduct(); + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isCompatibleWith_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isCompatibleWith_InvocationDelegate.java new file mode 100644 index 000000000..1580148d0 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isCompatibleWith_InvocationDelegate.java @@ -0,0 +1,94 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Feature::isCompatibleWith}. + */ +public class Feature_isCompatibleWith_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_isCompatibleWith_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::isCompatibleWith"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * specializes(otherType) or + * supertype.oclIsKindOf(Feature) and + * ownedFeature->isEmpty() and + * otherType.ownedFeature->isEmpty() and + * ownedRedefinitions.allRedefinedFeatures()->exists(f | + * otherType.oclAsType(Feature).allRedefinedFeatures()->includes(f)) and + * canAccess(otherType.oclAsType(Feature)) + */ + var result = false; + if (target instanceof Feature self) { + var otherType = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Type argType + ? argType + : null; + if (otherType != null) { + result = self.specializes(otherType); + if (!result && otherType instanceof Feature otherFeature) { + var hasFeatureSupertype = false; + for (Type supertype : self.supertypes(false)) { + if (supertype instanceof Feature) { + hasFeatureSupertype = true; + break; + } + } + if (hasFeatureSupertype && self.getOwnedFeature().isEmpty() && otherFeature.getOwnedFeature().isEmpty()) { + var overlapsAllRedefinedFeatures = false; + var allRedefinedFeatures = self.allRedefinedFeatures(); + var otherAllRedefinedFeatures = otherFeature.allRedefinedFeatures(); + for (Feature feature : allRedefinedFeatures) { + if (otherAllRedefinedFeatures.contains(feature)) { + overlapsAllRedefinedFeatures = true; + break; + } + } + if (overlapsAllRedefinedFeatures) { + result = self.canAccess(otherFeature); + } + } + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isFeaturedWithin_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isFeaturedWithin_InvocationDelegate.java new file mode 100644 index 000000000..3a64a8b31 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isFeaturedWithin_InvocationDelegate.java @@ -0,0 +1,102 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Feature::isFeaturedWithin}. + */ +public class Feature_isFeaturedWithin_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_isFeaturedWithin_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::isFeaturedWithin"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 isFeaturedWithIn_Body + * if type = null then + * featuringType->forAll(f | f = resolveGlobal('Base::Anything').memberElement) + * else + * featuringType->forAll(f | type.isCompatibleWith(f)) or + * isVariable and type.specializes(owningType) or + * chainingFeature->notEmpty() and chainingFeature->first().isVariable and + * type.specializes(chainingFeature->first().owningType) + * endif + */ + var result = false; + if (target instanceof Feature self) { + var type = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Type argType + ? argType + : null; + if (type == null) { + var anythingMembership = self.resolveGlobal("Base::Anything"); + var anything = anythingMembership != null ? anythingMembership.getMemberElement() : null; + result = true; + for (Type featuringType : self.getFeaturingType()) { + if (featuringType != anything) { + result = false; + break; + } + } + } else { + var allFeaturingTypesCompatible = true; + for (Type featuringType : self.getFeaturingType()) { + if (!type.isCompatibleWith(featuringType)) { + allFeaturingTypesCompatible = false; + break; + } + } + var variableOwningTypeCompatible = self.isIsVariable() + && self.getOwningType() != null + && type.specializes(self.getOwningType()); + var firstChainingFeatureVariableOwningTypeCompatible = false; + if (!self.getChainingFeature().isEmpty()) { + var firstChainingFeature = self.getChainingFeature().getFirst(); + firstChainingFeatureVariableOwningTypeCompatible = firstChainingFeature != null + && firstChainingFeature.isIsVariable() + && firstChainingFeature.getOwningType() != null + && type.specializes(firstChainingFeature.getOwningType()); + } + result = allFeaturingTypesCompatible + || variableOwningTypeCompatible + || firstChainingFeatureVariableOwningTypeCompatible; + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isFeaturingType_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isFeaturingType_InvocationDelegate.java new file mode 100644 index 000000000..73cb37043 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isFeaturingType_InvocationDelegate.java @@ -0,0 +1,90 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Feature::isFeaturingType}. + */ +public class Feature_isFeaturingType_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_isFeaturingType_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::isFeaturingType"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * owningType <> null and + * if not isVariable then type = owningType + * else if owningType = resolveGlobal('Occurrences::Occurrence').memberElement then + * type = resolveGlobal('Occurrences::Occurrence::snapshots').memberElement + * else + * type.oclIsKindOf(Feature) and + * let feature : Feature = type.oclAsType(Feature) in + * feature.featuringType->includes(owningType) and + * feature.redefinesFromLibrary('Occurrences::Occurrence::snapshots') + * endif + */ + var result = false; + if (target instanceof Feature self) { + var type = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Type argType + ? argType + : null; + var owningType = self.getOwningType(); + if (type != null && owningType != null) { + if (!self.isIsVariable()) { + result = type == owningType; + } else { + var occurrenceMembership = self.resolveGlobal("Occurrences::Occurrence"); + var occurrenceType = occurrenceMembership != null && occurrenceMembership.getMemberElement() instanceof Type resolvedType + ? resolvedType + : null; + if (owningType == occurrenceType) { + var snapshotsMembership = self.resolveGlobal("Occurrences::Occurrence::snapshots"); + var snapshotsType = snapshotsMembership != null ? snapshotsMembership.getMemberElement() : null; + result = type == snapshotsType; + } else if (type instanceof Feature feature) { + result = feature.getFeaturingType().contains(owningType) + && feature.redefinesFromLibrary("Occurrences::Occurrence::snapshots"); + } + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isOwnedCrossFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isOwnedCrossFeature_InvocationDelegate.java new file mode 100644 index 000000000..89b38cb1d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_isOwnedCrossFeature_InvocationDelegate.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated invocation delegate for {@code Feature::isOwnedCrossFeature}. + */ +public class Feature_isOwnedCrossFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_isOwnedCrossFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::isOwnedCrossFeature"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * owningNamespace <> null and + * owningNamespace.oclIsKindOf(Feature) and + * owningNamespace.oclAsType(Feature).ownedCrossFeature() = self + */ + var result = false; + if (target instanceof Feature self && self.getOwningNamespace() instanceof Feature owningFeature) { + result = owningFeature.ownedCrossFeature() == self; + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_namingFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_namingFeature_InvocationDelegate.java new file mode 100644 index 000000000..c5307155e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_namingFeature_InvocationDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated invocation delegate for {@code Feature::namingFeature}. + */ +public class Feature_namingFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_namingFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::namingFeature"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if ownedRedefinition->isEmpty() then + * null + * else + * ownedRedefinition->at(1).redefinedFeature + * endif + */ + Feature result = null; + if (target instanceof Feature self && !self.getOwnedRedefinition().isEmpty()) { + result = self.getOwnedRedefinition().getFirst().getRedefinedFeature(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_ownedCrossFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_ownedCrossFeature_InvocationDelegate.java new file mode 100644 index 000000000..6dc8a6edd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_ownedCrossFeature_InvocationDelegate.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.Multiplicity; + +/** + * Generated invocation delegate for {@code Feature::ownedCrossFeature}. + */ +public class Feature_ownedCrossFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_ownedCrossFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::ownedCrossFeature"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if not isEnd or owningType = null then null + * else + * let ownedMemberFeatures: Sequence(Feature) = + * ownedMember->selectByKind(Feature)-> + * reject(oclIsKindOf(Multiplicity) or + * oclIsKindOf(MetadataFeature) or + * oclIsKindOf(FeatureValue))-> + * reject(owningMembership.oclIsKindOf(FeatureMembership)) in + * if ownedMemberFeatures.isEmpty() then null + * else ownedMemberFeatures->first() + * endif + */ + Feature result = null; + if (target instanceof Feature self && self.isIsEnd() && self.getOwningType() != null) { + for (var member : self.getOwnedMember()) { + if (member instanceof Feature feature + && !(feature instanceof Multiplicity) + && !(feature instanceof MetadataFeature) + && !(feature instanceof FeatureValue) + && !(feature.getOwningMembership() instanceof FeatureMembership)) { + result = feature; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_redefinesFromLibrary_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_redefinesFromLibrary_InvocationDelegate.java new file mode 100644 index 000000000..7cc998e33 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_redefinesFromLibrary_InvocationDelegate.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated invocation delegate for {@code Feature::redefinesFromLibrary}. + */ +public class Feature_redefinesFromLibrary_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_redefinesFromLibrary_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::redefinesFromLibrary"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let mem: Membership = resolveGlobal(libraryFeatureName) in + * mem <> null and mem.memberElement.oclIsKindOf(Feature) and + * redefines(mem.memberElement.oclAsType(Feature)) + */ + var result = false; + if (target instanceof Feature self) { + var libraryFeatureName = arguments != null + && !arguments.isEmpty() + && arguments.getFirst() instanceof String name + ? name + : null; + if (libraryFeatureName != null) { + var membership = self.resolveGlobal(libraryFeatureName); + if (membership != null && membership.getMemberElement() instanceof Feature feature) { + result = self.redefines(feature); + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_redefines_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_redefines_InvocationDelegate.java new file mode 100644 index 000000000..9ff0a3438 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_redefines_InvocationDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Redefinition; + +/** + * Generated invocation delegate for {@code Feature::redefines}. + */ +public class Feature_redefines_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_redefines_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::redefines"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * ownedRedefinition.redefinedFeature->includes(redefinedFeature) + */ + var result = false; + if (target instanceof Feature self) { + var redefinedFeature = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Feature feature + ? feature + : null; + if (redefinedFeature != null) { + for (Redefinition redefinition : self.getOwnedRedefinition()) { + if (redefinition.getRedefinedFeature() == redefinedFeature) { + result = true; + break; + } + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_subsetsChain_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_subsetsChain_InvocationDelegate.java new file mode 100644 index 000000000..3491284bc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_subsetsChain_InvocationDelegate.java @@ -0,0 +1,104 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.ArrayDeque; +import java.util.LinkedHashSet; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Specialization; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Feature::subsetsChain}. + */ +public class Feature_subsetsChain_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_subsetsChain_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::subsetsChain"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * allSuperTypes()->selectAsKind(Feature)-> + * exists(f | let n: Integer = f.chainingFeature->size() in + * n >= 2 and + * f.chainingFeature->at(n-1) = first and + * f.chainingFeature->at(n) = second) + */ + var result = false; + if (target instanceof Feature self) { + var first = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Feature argFirst + ? argFirst + : null; + var second = arguments != null && arguments.size() > 1 && arguments.get(1) instanceof Feature argSecond + ? argSecond + : null; + if (first != null && second != null) { + var visited = new LinkedHashSet(); + var toVisit = new ArrayDeque(); + for (Specialization specialization : self.getOwnedSpecialization()) { + if (specialization.getGeneral() != null) { + toVisit.addLast(specialization.getGeneral()); + } + } + while (!toVisit.isEmpty()) { + var supertype = toVisit.removeFirst(); + if (visited.add(supertype)) { + if (supertype instanceof Type type) { + for (Specialization specialization : type.getOwnedSpecialization()) { + if (specialization.getGeneral() != null) { + toVisit.addLast(specialization.getGeneral()); + } + } + } + } + } + for (Type supertype : visited) { + if (supertype instanceof Feature feature) { + var size = feature.getChainingFeature().size(); + if (size >= 2 + && feature.getChainingFeature().get(size - 2) == first + && feature.getChainingFeature().get(size - 1) == second) { + result = true; + break; + } + } + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_supertypes_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_supertypes_InvocationDelegate.java new file mode 100644 index 000000000..969f1b6ca --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_supertypes_InvocationDelegate.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Specialization; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Feature::supertypes}. + */ +public class Feature_supertypes_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_supertypes_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::supertypes"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let supertypes : OrderedSet(Type) = + * self.oclAsType(Type).supertypes(excludeImplied) in + * if featureTarget = self then supertypes + * else supertypes->append(featureTarget) + * endif + */ + var result = new BasicEList(); + if (target instanceof Feature self) { + var excludeImplied = arguments != null + && !arguments.isEmpty() + && arguments.getFirst() instanceof Boolean value + && value.booleanValue(); + if (self.isIsConjugated()) { + var ownedConjugator = self.getOwnedConjugator(); + if (ownedConjugator != null && ownedConjugator.getOriginalType() != null) { + result.add(ownedConjugator.getOriginalType()); + } + } else { + for (Specialization specialization : self.getOwnedSpecialization()) { + if (!excludeImplied || !specialization.isIsImplied()) { + var general = specialization.getGeneral(); + if (general != null) { + result.add(general); + } + } + } + } + var featureTarget = self.getFeatureTarget(); + if (featureTarget != self && featureTarget != null) { + result.add(featureTarget); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_typingFeatures_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_typingFeatures_InvocationDelegate.java new file mode 100644 index 000000000..4844a14da --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Feature_typingFeatures_InvocationDelegate.java @@ -0,0 +1,90 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.CrossSubsetting; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Subsetting; + +/** + * Generated invocation delegate for {@code Feature::typingFeatures}. + */ +public class Feature_typingFeatures_InvocationDelegate extends AbstractInvocationDelegate { + + public Feature_typingFeatures_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Feature::typingFeatures"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if not isConjugated then + * let subsettedFeatures : OrderedSet(Feature) = + * subsetting->reject(s | s.oclIsKindOf(CrossSubsetting)).subsettedFeatures in + * if chainingFeature->isEmpty() or + * subsettedFeature->includes(chainingFeature->last()) + * then subsettedFeatures + * else subsettedFeatures->append(chainingFeature->last()) + * endif + * else if conjugator.originalType.oclIsKindOf(Feature) then + * OrderedSet{conjugator.originalType.oclAsType(Feature)} + * else OrderedSet{} + * endif endif + */ + var result = new BasicEList(); + if (target instanceof Feature self) { + if (!self.isIsConjugated()) { + for (Subsetting subsetting : self.getOwnedSubsetting()) { + if (!(subsetting instanceof CrossSubsetting) && subsetting.getSubsettedFeature() != null) { + result.add(subsetting.getSubsettedFeature()); + } + } + if (!self.getChainingFeature().isEmpty()) { + var lastChainingFeature = self.getChainingFeature().getLast(); + if (!result.contains(lastChainingFeature)) { + result.add(lastChainingFeature); + } + } + } else { + var ownedConjugator = self.getOwnedConjugator(); + if (ownedConjugator != null && ownedConjugator.getOriginalType() instanceof Feature feature) { + result.add(feature); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Import_importedMemberships_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Import_importedMemberships_InvocationDelegate.java new file mode 100644 index 000000000..4cc4c35b7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Import_importedMemberships_InvocationDelegate.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; + +/** + * Generated invocation delegate for {@code Import::importedMemberships}. + */ +public class Import_importedMemberships_InvocationDelegate extends AbstractInvocationDelegate { + + public Import_importedMemberships_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Import::importedMemberships"; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/InstantiationExpression_instantiatedType_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/InstantiationExpression_instantiatedType_InvocationDelegate.java new file mode 100644 index 000000000..38c394c2f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/InstantiationExpression_instantiatedType_InvocationDelegate.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.InstantiationExpression; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code InstantiationExpression::instantiatedType}. + */ +public class InstantiationExpression_instantiatedType_InvocationDelegate extends AbstractInvocationDelegate { + + public InstantiationExpression_instantiatedType_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "InstantiationExpression::instantiatedType"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let members : Sequence(Element) = ownedMembership-> + * reject(oclIsKindOf(FeatureMembership)).memberElement in + * if members->isEmpty() or not members->first().oclIsKindOf(Type) then null + * else typeMembers->first().oclAsType(Type) + * endif + */ + Type result = null; + if (target instanceof InstantiationExpression self) { + for (Membership membership : self.getOwnedMembership()) { + if (!(membership instanceof FeatureMembership) && membership.getMemberElement() instanceof Type type) { + result = type; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/InvocationExpression_evaluate_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/InvocationExpression_evaluate_InvocationDelegate.java new file mode 100644 index 000000000..202c2a716 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/InvocationExpression_evaluate_InvocationDelegate.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; + +/** + * Generated invocation delegate for {@code InvocationExpression::evaluate}. + */ +public class InvocationExpression_evaluate_InvocationDelegate extends AbstractInvocationDelegate { + + public InvocationExpression_evaluate_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "InvocationExpression::evaluate"; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/InvocationExpression_modelLevelEvaluable_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/InvocationExpression_modelLevelEvaluable_InvocationDelegate.java new file mode 100644 index 000000000..b2ca2995b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/InvocationExpression_modelLevelEvaluable_InvocationDelegate.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.InvocationExpression; + +/** + * Generated invocation delegate for {@code InvocationExpression::modelLevelEvaluable}. + */ +public class InvocationExpression_modelLevelEvaluable_InvocationDelegate extends AbstractInvocationDelegate { + + public InvocationExpression_modelLevelEvaluable_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "InvocationExpression::modelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * argument->forAll(modelLevelEvaluable(visited)) and + * function.isModelLevelEvaluable + */ + var result = false; + if (target instanceof InvocationExpression self) { + var visited = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList visitedArg) { + for (Object element : visitedArg) { + if (element instanceof Feature feature) { + visited.add(feature); + } + } + } + result = true; + for (Expression argument : self.getArgument()) { + if (argument == null || !argument.modelLevelEvaluable(visited)) { + result = false; + break; + } + } + if (result) { + var function = self.getFunction(); + result = function != null && function.isIsModelLevelEvaluable(); + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/LibraryPackage_libraryNamespace_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/LibraryPackage_libraryNamespace_InvocationDelegate.java new file mode 100644 index 000000000..ea91fcb85 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/LibraryPackage_libraryNamespace_InvocationDelegate.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.LibraryPackage; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated invocation delegate for {@code LibraryPackage::libraryNamespace}. + */ +public class LibraryPackage_libraryNamespace_InvocationDelegate extends AbstractInvocationDelegate { + + public LibraryPackage_libraryNamespace_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "LibraryPackage::libraryNamespace"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * self + */ + Namespace result = null; + if (target instanceof LibraryPackage self) { + result = self; + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/LiteralExpression_evaluate_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/LiteralExpression_evaluate_InvocationDelegate.java new file mode 100644 index 000000000..32af83cb1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/LiteralExpression_evaluate_InvocationDelegate.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.LiteralExpression; + +/** + * Generated invocation delegate for {@code LiteralExpression::evaluate}. + */ +public class LiteralExpression_evaluate_InvocationDelegate extends AbstractInvocationDelegate { + + public LiteralExpression_evaluate_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "LiteralExpression::evaluate"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * Sequence{self} + */ + var result = new BasicEList(); + if (target instanceof LiteralExpression self) { + result.add(self); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/LiteralExpression_modelLevelEvaluable_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/LiteralExpression_modelLevelEvaluable_InvocationDelegate.java new file mode 100644 index 000000000..3d0a7ec45 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/LiteralExpression_modelLevelEvaluable_InvocationDelegate.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; + +/** + * Generated invocation delegate for {@code LiteralExpression::modelLevelEvaluable}. + */ +public class LiteralExpression_modelLevelEvaluable_InvocationDelegate extends AbstractInvocationDelegate { + + public LiteralExpression_modelLevelEvaluable_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "LiteralExpression::modelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * true + */ + return Boolean.TRUE; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MembershipImport_importedMemberships_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MembershipImport_importedMemberships_InvocationDelegate.java new file mode 100644 index 000000000..23c83b988 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MembershipImport_importedMemberships_InvocationDelegate.java @@ -0,0 +1,86 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.MembershipImport; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated invocation delegate for {@code MembershipImport::importedMemberships}. + */ +public class MembershipImport_importedMemberships_InvocationDelegate extends AbstractInvocationDelegate { + + public MembershipImport_importedMemberships_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "MembershipImport::importedMemberships"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if not isRecursive or + * not importedElement.oclIsKindOf(Namespace) or + * excluded->includes(importedElement) + * then Sequence{importedMembership} + * else importedElement.oclAsType(Namespace). + * visibleMemberships(excluded, true, importAll)-> + * prepend(importedMembership) + * endif + */ + var result = new BasicEList(); + if (target instanceof MembershipImport self) { + var excluded = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList excludedArg) { + for (Object element : excludedArg) { + if (element instanceof Namespace namespace) { + excluded.add(namespace); + } + } + } + var importedMembership = self.getImportedMembership(); + var importedElement = self.getImportedElement(); + var canRecurse = self.isIsRecursive() && importedElement instanceof Namespace + && !excluded.contains(importedElement); + if (importedMembership != null) { + result.add(importedMembership); + } + if (canRecurse && importedElement instanceof Namespace importedNamespace) { + result.addAll(importedNamespace.visibleMemberships(excluded, true, self.isIsImportAll())); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Membership_isDistinguishableFrom_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Membership_isDistinguishableFrom_InvocationDelegate.java new file mode 100644 index 000000000..579087289 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Membership_isDistinguishableFrom_InvocationDelegate.java @@ -0,0 +1,91 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Membership; + +/** + * Generated invocation delegate for {@code Membership::isDistinguishableFrom}. + */ +public class Membership_isDistinguishableFrom_InvocationDelegate extends AbstractInvocationDelegate { + + public Membership_isDistinguishableFrom_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Membership::isDistinguishableFrom"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * not (memberElement.oclKindOf(other.memberElement.oclType()) or + * other.memberElement.oclKindOf(memberElement.oclType())) or + * (shortMemberName = null or + * (shortMemberName <> other.shortMemberName and + * shortMemberName <> other.memberName)) and + * (memberName = null or + * (memberName <> other.shortMemberName and + * memberName <> other.memberName))) + */ + var result = false; + if (target instanceof Membership self) { + var other = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Membership membership + ? membership + : null; + if (other != null) { + var selfElement = self.getMemberElement(); + var otherElement = other.getMemberElement(); + var kindCompatible = selfElement != null + && otherElement != null + && (otherElement.getClass().isInstance(selfElement) + || selfElement.getClass().isInstance(otherElement)); + if (!kindCompatible) { + result = true; + } else { + var shortMemberName = self.getMemberShortName(); + var otherShortMemberName = other.getMemberShortName(); + var otherMemberName = other.getMemberName(); + var shortNameDistinct = shortMemberName == null + || (!shortMemberName.equals(otherShortMemberName) + && !shortMemberName.equals(otherMemberName)); + var memberName = self.getMemberName(); + var memberNameDistinct = memberName == null + || (!memberName.equals(otherShortMemberName) + && !memberName.equals(otherMemberName)); + result = shortNameDistinct && memberNameDistinct; + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataAccessExpression_evaluate_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataAccessExpression_evaluate_InvocationDelegate.java new file mode 100644 index 000000000..5a9dec22b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataAccessExpression_evaluate_InvocationDelegate.java @@ -0,0 +1,77 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.MetadataAccessExpression; +import org.omg.sysml.model.sysml.MetadataFeature; + +/** + * Generated invocation delegate for {@code MetadataAccessExpression::evaluate}. + */ +public class MetadataAccessExpression_evaluate_InvocationDelegate extends AbstractInvocationDelegate { + + public MetadataAccessExpression_evaluate_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "MetadataAccessExpression::evaluate"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * referencedElement.ownedElement-> + * select(oclIsKindOf(MetadataFeature) + * and annotatedElement->includes(referencedElement))-> + * including(metaclassFeature()) + */ + var result = new BasicEList(); + if (target instanceof MetadataAccessExpression self) { + var referencedElement = self.getReferencedElement(); + if (referencedElement != null) { + for (Element element : referencedElement.getOwnedElement()) { + if (element instanceof MetadataFeature metadataFeature + && metadataFeature.getAnnotatedElement().contains(referencedElement)) { + result.add(metadataFeature); + } + } + var metaclassFeature = self.metaclassFeature(); + if (metaclassFeature != null) { + result.add(metaclassFeature); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataAccessExpression_metaclassFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataAccessExpression_metaclassFeature_InvocationDelegate.java new file mode 100644 index 000000000..95cb5530c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataAccessExpression_metaclassFeature_InvocationDelegate.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; + +/** + * Generated invocation delegate for {@code MetadataAccessExpression::metaclassFeature}. + */ +public class MetadataAccessExpression_metaclassFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public MetadataAccessExpression_metaclassFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "MetadataAccessExpression::metaclassFeature"; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataAccessExpression_modelLevelEvaluable_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataAccessExpression_modelLevelEvaluable_InvocationDelegate.java new file mode 100644 index 000000000..b76cc60ed --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataAccessExpression_modelLevelEvaluable_InvocationDelegate.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; + +/** + * Generated invocation delegate for {@code MetadataAccessExpression::modelLevelEvaluable}. + */ +public class MetadataAccessExpression_modelLevelEvaluable_InvocationDelegate extends AbstractInvocationDelegate { + + public MetadataAccessExpression_modelLevelEvaluable_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "MetadataAccessExpression::modelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * true + */ + return Boolean.TRUE; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_evaluateFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_evaluateFeature_InvocationDelegate.java new file mode 100644 index 000000000..63c494679 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_evaluateFeature_InvocationDelegate.java @@ -0,0 +1,138 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.ArrayDeque; +import java.util.LinkedHashSet; +import java.util.Set; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.MetadataFeature; + +/** + * Generated invocation delegate for {@code MetadataFeature::evaluateFeature}. + */ +public class MetadataFeature_evaluateFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public MetadataFeature_evaluateFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "MetadataFeature::evaluateFeature"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let selectedFeatures : Sequence(Feature) = feature-> + * select(closure(ownedRedefinition.redefinedFeature)-> + * includes(baseFeature)) in + * if selectedFeatures->isEmpty() then null + * else + * let selectedFeature : Feature = selectedFeatures->first() in + * let featureValues : FeatureValue = selectedFeature-> + * closure(ownedRedefinition.redefinedFeature).ownedMember-> + * selectAsKind(FeatureValue) in + * if featureValues->isEmpty() then null + * else featureValues->first().value.evaluate(self) + * endif + */ + EList result = null; + if (target instanceof MetadataFeature self) { + var baseFeature = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Feature value + ? value + : null; + if (baseFeature != null) { + Feature selectedFeature = null; + for (var feature : self.getFeature()) { + if (isInRedefinitionClosure(feature, baseFeature)) { + selectedFeature = feature; + break; + } + } + if (selectedFeature != null) { + FeatureValue firstFeatureValue = null; + for (var feature : collectRedefinitionClosure(selectedFeature)) { + for (var member : feature.getOwnedMember()) { + if (member instanceof FeatureValue featureValue) { + firstFeatureValue = featureValue; + break; + } + } + if (firstFeatureValue != null) { + break; + } + } + if (firstFeatureValue != null) { + Expression valueExpression = firstFeatureValue.getValue(); + if (valueExpression != null) { + result = valueExpression.evaluate(self); + } + } + } + } + } + return result; + } + + +private boolean isInRedefinitionClosure(Feature start, Feature searched) { + var found = false; + for (var feature : collectRedefinitionClosure(start)) { + if (feature == searched) { + found = true; + break; + } + } + return found; + } + + private Set collectRedefinitionClosure(Feature start) { + Set visited = new LinkedHashSet<>(); + var pending = new ArrayDeque(); + pending.add(start); + while (!pending.isEmpty()) { + var current = pending.removeFirst(); + if (visited.add(current)) { + for (var redefinition : current.getOwnedRedefinition()) { + var redefined = redefinition.getRedefinedFeature(); + if (redefined != null && !visited.contains(redefined)) { + pending.addLast(redefined); + } + } + } + } + return visited; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_isSemantic_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_isSemantic_InvocationDelegate.java new file mode 100644 index 000000000..a8234ce44 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_isSemantic_InvocationDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.MetadataFeature; + +/** + * Generated invocation delegate for {@code MetadataFeature::isSemantic}. + */ +public class MetadataFeature_isSemantic_InvocationDelegate extends AbstractInvocationDelegate { + + public MetadataFeature_isSemantic_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "MetadataFeature::isSemantic"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * specializesFromLibrary('Metaobjects::SemanticMetadata') + */ + var result = false; + if (target instanceof MetadataFeature self) { + result = self.specializesFromLibrary("Metaobjects::SemanticMetadata"); + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_isSyntactic_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_isSyntactic_InvocationDelegate.java new file mode 100644 index 000000000..dbb84a9f0 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_isSyntactic_InvocationDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.MetadataFeature; + +/** + * Generated invocation delegate for {@code MetadataFeature::isSyntactic}. + */ +public class MetadataFeature_isSyntactic_InvocationDelegate extends AbstractInvocationDelegate { + + public MetadataFeature_isSyntactic_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "MetadataFeature::isSyntactic"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * specializesFromLibrary('KerML::Element') + */ + var result = false; + if (target instanceof MetadataFeature self) { + result = self.specializesFromLibrary("KerML::Element"); + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_syntaxElement_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_syntaxElement_InvocationDelegate.java new file mode 100644 index 000000000..d6f91310a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MetadataFeature_syntaxElement_InvocationDelegate.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.MetadataFeature; + +/** + * Generated invocation delegate for {@code MetadataFeature::syntaxElement}. + */ +public class MetadataFeature_syntaxElement_InvocationDelegate extends AbstractInvocationDelegate { + + public MetadataFeature_syntaxElement_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "MetadataFeature::syntaxElement"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 syntaxElement_pre + * isSyntactic() + */ + Element result = null; + if (target instanceof MetadataFeature self && self.isSyntactic()) { + result = self; + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MultiplicityRange_hasBounds_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MultiplicityRange_hasBounds_InvocationDelegate.java new file mode 100644 index 000000000..a5eef5329 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MultiplicityRange_hasBounds_InvocationDelegate.java @@ -0,0 +1,78 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.MultiplicityRange; + +/** + * Generated invocation delegate for {@code MultiplicityRange::hasBounds}. + */ +public class MultiplicityRange_hasBounds_InvocationDelegate extends AbstractInvocationDelegate { + + private static final int NULL_UNLIMITED_NATURAL = Integer.MIN_VALUE; + + public MultiplicityRange_hasBounds_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "MultiplicityRange::hasBounds"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * valueOf(upperBound) = upper and + * let lowerValue: UnlimitedNatural = valueOf(lowerBound) in + * (lowerValue = lower or + * lowerValue = null and + * (lower = upper or + * lower = 0 and upper = *)) + */ + var result = false; + if (target instanceof MultiplicityRange self) { + var lower = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Integer value + ? value.intValue() + : 0; + var upper = arguments != null && arguments.size() > 1 && arguments.get(1) instanceof Integer value + ? value.intValue() + : 0; + var upperValue = self.valueOf(self.getUpperBound()); + if (upperValue == upper) { + var lowerValue = self.valueOf(self.getLowerBound()); + result = lowerValue == lower + || (lowerValue == NULL_UNLIMITED_NATURAL + && (lower == upper || (lower == 0 && upper == -1))); + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MultiplicityRange_valueOf_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MultiplicityRange_valueOf_InvocationDelegate.java new file mode 100644 index 000000000..d4b3f3ad5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/MultiplicityRange_valueOf_InvocationDelegate.java @@ -0,0 +1,94 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.LiteralInfinity; +import org.omg.sysml.model.sysml.LiteralInteger; +import org.omg.sysml.model.sysml.MultiplicityRange; + +/** + * Generated invocation delegate for {@code MultiplicityRange::valueOf}. + */ +public class MultiplicityRange_valueOf_InvocationDelegate extends AbstractInvocationDelegate { + + private static final int NULL_UNLIMITED_NATURAL = Integer.MIN_VALUE; + + public MultiplicityRange_valueOf_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "MultiplicityRange::valueOf"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if bound = null or not bound.isModelLevelEvaluable then + * null + * else + * let boundEval: Sequence(Element) = bound.evaluate(owningType) in + * if boundEval->size() <> 1 then null else + * let valueEval: Element = boundEval->at(1) in + * if valueEval.oclIsKindOf(LiteralInfinity) then * + * else if valueEval.oclIsKindOf(LiteralInteger) then + * let value : Integer = + * valueEval.oclAsKindOf(LiteralInteger).value in + * if value >= 0 then value else null endif + * else null + * endif endif + * endif + * endif + */ + var result = NULL_UNLIMITED_NATURAL; + if (target instanceof MultiplicityRange self) { + var bound = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Expression expression + ? expression + : null; + if (bound != null && bound.isIsModelLevelEvaluable()) { + var boundEval = bound.evaluate(self.getOwningType()); + if (boundEval.size() == 1) { + var valueEval = boundEval.getFirst(); + if (valueEval instanceof LiteralInfinity) { + result = -1; + } else if (valueEval instanceof LiteralInteger literalInteger) { + var value = literalInteger.getValue(); + if (value >= 0) { + result = value; + } + } + } + } + } + return Integer.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/NamespaceImport_importedMemberships_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/NamespaceImport_importedMemberships_InvocationDelegate.java new file mode 100644 index 000000000..fe7ad63cb --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/NamespaceImport_importedMemberships_InvocationDelegate.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.NamespaceImport; + +/** + * Generated invocation delegate for {@code NamespaceImport::importedMemberships}. + */ +public class NamespaceImport_importedMemberships_InvocationDelegate extends AbstractInvocationDelegate { + + public NamespaceImport_importedMemberships_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "NamespaceImport::importedMemberships"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if excluded->includes(importedNamespace) then Sequence{} + * else importedNamespace.visibleMemberships(excluded, isRecursive, isImportAll) + */ + var result = new BasicEList(); + if (target instanceof NamespaceImport self) { + var excluded = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList excludedArg) { + for (var element : excludedArg) { + if (element instanceof Namespace namespace) { + excluded.add(namespace); + } + } + } + var importedNamespace = self.getImportedNamespace(); + if (importedNamespace != null && !excluded.contains(importedNamespace)) { + result.addAll(importedNamespace.visibleMemberships(excluded, self.isIsRecursive(), self.isIsImportAll())); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_importedMemberships_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_importedMemberships_InvocationDelegate.java new file mode 100644 index 000000000..10aaea112 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_importedMemberships_InvocationDelegate.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.LinkedHashSet; +import java.util.Set; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated invocation delegate for {@code Namespace::importedMemberships}. + */ +public class Namespace_importedMemberships_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_importedMemberships_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::importedMemberships"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * ownedImport.importedMemberships(excluded->including(self)) + */ + var result = new BasicEList(); + if (target instanceof Namespace self) { + var excluded = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList excludedArg) { + for (var element : excludedArg) { + if (element instanceof Namespace namespace) { + excluded.add(namespace); + } + } + } + var excludedWithSelf = new BasicEList(); + excludedWithSelf.addAll(excluded); + if (!excludedWithSelf.contains(self)) { + excludedWithSelf.add(self); + } + Set memberships = new LinkedHashSet<>(); + for (var ownedImport : self.getOwnedImport()) { + memberships.addAll(ownedImport.importedMemberships(excludedWithSelf)); + } + result.addAll(memberships); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_membershipsOfVisibility_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_membershipsOfVisibility_InvocationDelegate.java new file mode 100644 index 000000000..27f20ec44 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_membershipsOfVisibility_InvocationDelegate.java @@ -0,0 +1,90 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.VisibilityKind; + +/** + * Generated invocation delegate for {@code Namespace::membershipsOfVisibility}. + */ +public class Namespace_membershipsOfVisibility_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_membershipsOfVisibility_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::membershipsOfVisibility"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * ownedMembership-> + * select(mem | visibility = null or mem.visibility = visibility)-> + * union(ownedImport-> + * select(imp | visibility = null or imp.visibility = visibility). + * importedMemberships(excluded->including(self))) + */ + var result = new BasicEList<>(); + if (target instanceof Namespace self) { + var visibility = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof VisibilityKind value + ? value + : null; + var excluded = new BasicEList(); + if (arguments != null && arguments.size() > 1 && arguments.get(1) instanceof EList excludedArg) { + for (var element : excludedArg) { + if (element instanceof Namespace namespace) { + excluded.add(namespace); + } + } + } + for (var membership : self.getOwnedMembership()) { + if (visibility == null || membership.getVisibility() == visibility) { + result.add(membership); + } + } + for (var imported : self.getOwnedImport()) { + if (visibility == null || imported.getVisibility() == visibility) { + var excludedWithSelf = new BasicEList(); + excludedWithSelf.addAll(excluded); + if (!excludedWithSelf.contains(self)) { + excludedWithSelf.add(self); + } + result.addAll(imported.importedMemberships(excludedWithSelf)); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_namesOf_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_namesOf_InvocationDelegate.java new file mode 100644 index 000000000..f8017161b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_namesOf_InvocationDelegate.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.LinkedHashSet; +import java.util.Set; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated invocation delegate for {@code Namespace::namesOf}. + */ +public class Namespace_namesOf_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_namesOf_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::namesOf"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let elementMemberships : Sequence(Membership) = + * memberships->select(memberElement = element) in + * memberships.memberShortName-> + * union(memberships.memberName)-> + * asSet() + */ + var result = new BasicEList(); + if (target instanceof Namespace self) { + var element = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Element value + ? value + : null; + if (element != null) { + Set names = new LinkedHashSet<>(); + for (var membership : self.getMembership()) { + if (membership != null && membership.getMemberElement() == element) { + var shortName = membership.getMemberShortName(); + if (shortName != null) { + names.add(shortName); + } + var name = membership.getMemberName(); + if (name != null) { + names.add(name); + } + } + } + result.addAll(names); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_qualificationOf_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_qualificationOf_InvocationDelegate.java new file mode 100644 index 000000000..e7f1a0103 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_qualificationOf_InvocationDelegate.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; + +/** + * Generated invocation delegate for {@code Namespace::qualificationOf}. + */ +public class Namespace_qualificationOf_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_qualificationOf_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::qualificationOf"; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolveGlobal_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolveGlobal_InvocationDelegate.java new file mode 100644 index 000000000..fd80bbef0 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolveGlobal_InvocationDelegate.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; + +/** + * Generated invocation delegate for {@code Namespace::resolveGlobal}. + */ +public class Namespace_resolveGlobal_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_resolveGlobal_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::resolveGlobal"; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolveLocal_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolveLocal_InvocationDelegate.java new file mode 100644 index 000000000..4f25745f3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolveLocal_InvocationDelegate.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated invocation delegate for {@code Namespace::resolveLocal}. + */ +public class Namespace_resolveLocal_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_resolveLocal_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::resolveLocal"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if owningNamespace = null then resolveGlobal(name) + * else + * let memberships : Membership = membership-> + * select(memberShortName = name or memberName = name) in + * if memberships->notEmpty() then memberships->first() + * else owningNamspace.resolveLocal(name) + * endif + * endif + */ + Membership result = null; + if (target instanceof Namespace self) { + var name = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof String value ? value : null; + if (name != null) { + if (self.getOwningNamespace() == null) { + result = self.resolveGlobal(name); + } else { + for (var membership : self.getMembership()) { + if (name.equals(membership.getMemberShortName()) || name.equals(membership.getMemberName())) { + result = membership; + break; + } + } + if (result == null) { + result = self.getOwningNamespace().resolveLocal(name); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolveVisible_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolveVisible_InvocationDelegate.java new file mode 100644 index 000000000..a3d94319c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolveVisible_InvocationDelegate.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated invocation delegate for {@code Namespace::resolveVisible}. + */ +public class Namespace_resolveVisible_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_resolveVisible_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::resolveVisible"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let memberships : Sequence(Membership) = + * visibleMemberships(Set{}, false, false)-> + * select(memberShortName = name or memberName = name) in + * if memberships->isEmpty() then null + * else memberships->first() + * endif + */ + Membership result = null; + if (target instanceof Namespace self) { + var name = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof String value ? value : null; + if (name != null) { + var memberships = self.visibleMemberships(new BasicEList(), false, false); + for (var membership : memberships) { + if (name.equals(membership.getMemberShortName()) || name.equals(membership.getMemberName())) { + result = membership; + break; + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolve_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolve_InvocationDelegate.java new file mode 100644 index 000000000..028178fde --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_resolve_InvocationDelegate.java @@ -0,0 +1,89 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated invocation delegate for {@code Namespace::resolve}. + */ +public class Namespace_resolve_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_resolve_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::resolve"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let qualification : String = qualificationOf(qualifiedName) in + * let name : String = unqualifiedNameOf(qualifiedName) in + * if qualification = null then resolveLocal(name) + * else if qualification = '$' then resolveGlobal(name) + * else + * let namespaceMembership : Membership = resolve(qualification) in + * if namespaceMembership = null or + * not namespaceMembership.memberElement.oclIsKindOf(Namespace) + * then null + * else + * namespaceMembership.memberElement.oclAsType(Namespace). + * resolveVisible(name) + * endif + * endif endif + */ + Membership result = null; + if (target instanceof Namespace self) { + var qualifiedName = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof String value + ? value + : null; + if (qualifiedName != null) { + var qualification = self.qualificationOf(qualifiedName); + var name = self.unqualifiedNameOf(qualifiedName); + if (qualification == null) { + result = self.resolveLocal(name); + } else if ("$".equals(qualification)) { + result = self.resolveGlobal(name); + } else { + var namespaceMembership = self.resolve(qualification); + if (namespaceMembership != null && namespaceMembership.getMemberElement() instanceof Namespace namespace) { + result = namespace.resolveVisible(name); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_unqualifiedNameOf_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_unqualifiedNameOf_InvocationDelegate.java new file mode 100644 index 000000000..3e6c3f9cf --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_unqualifiedNameOf_InvocationDelegate.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; + +/** + * Generated invocation delegate for {@code Namespace::unqualifiedNameOf}. + */ +public class Namespace_unqualifiedNameOf_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_unqualifiedNameOf_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::unqualifiedNameOf"; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_visibilityOf_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_visibilityOf_InvocationDelegate.java new file mode 100644 index 000000000..9ff1e72dc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_visibilityOf_InvocationDelegate.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.VisibilityKind; + +/** + * Generated invocation delegate for {@code Namespace::visibilityOf}. + */ +public class Namespace_visibilityOf_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_visibilityOf_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::visibilityOf"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if importedMembership->includes(mem) then + * ownedImport-> + * select(importedMemberships(Set{})->includes(mem)). + * first().visibility + * else if memberships->includes(mem) then + * mem.visibility + * else + * VisibilityKind::private + * endif + */ + var result = VisibilityKind.PRIVATE; + if (target instanceof Namespace self) { + var membership = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Membership value + ? value + : null; + if (membership != null) { + if (self.getImportedMembership().contains(membership)) { + var excluded = new BasicEList(); + for (var ownedImport : self.getOwnedImport()) { + if (ownedImport.importedMemberships(excluded).contains(membership)) { + result = ownedImport.getVisibility(); + break; + } + } + } else if (self.getMembership().contains(membership)) { + result = membership.getVisibility(); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_visibleMemberships_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_visibleMemberships_InvocationDelegate.java new file mode 100644 index 000000000..fe336266e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Namespace_visibleMemberships_InvocationDelegate.java @@ -0,0 +1,104 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.LinkedHashSet; +import java.util.Set; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.VisibilityKind; + +/** + * Generated invocation delegate for {@code Namespace::visibleMemberships}. + */ +public class Namespace_visibleMemberships_InvocationDelegate extends AbstractInvocationDelegate { + + public Namespace_visibleMemberships_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Namespace::visibleMemberships"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let visibleMemberships : OrderedSet(Membership) = + * if includeAll then membershipsOfVisibility(null, excluded) + * else membershipsOfVisibility(VisibilityKind::public, excluded) + * endif in + * if not isRecursive then visibleMemberships + * else visibleMemberships->union(ownedMember-> + * selectAsKind(Namespace). + * select(includeAll or owningMembership.visibility = VisibilityKind::public)-> + * visibleMemberships(excluded->including(self), true, includeAll)) + * endif + */ + var result = new BasicEList(); + if (target instanceof Namespace self) { + var excluded = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList excludedArg) { + for (var element : excludedArg) { + if (element instanceof Namespace namespace) { + excluded.add(namespace); + } + } + } + var isRecursive = arguments != null && arguments.size() > 1 && arguments.get(1) instanceof Boolean value + ? value.booleanValue() + : false; + var includeAll = arguments != null && arguments.size() > 2 && arguments.get(2) instanceof Boolean value + ? value.booleanValue() + : false; + var visibility = includeAll ? null : VisibilityKind.PUBLIC; + Set visible = new LinkedHashSet<>(self.membershipsOfVisibility(visibility, excluded)); + if (isRecursive) { + for (var member : self.getOwnedMember()) { + if (member instanceof Namespace namespace) { + var owningMembership = namespace.getOwningMembership(); + if (includeAll || (owningMembership != null && owningMembership.getVisibility() == VisibilityKind.PUBLIC)) { + var nextExcluded = new BasicEList(); + nextExcluded.addAll(excluded); + if (!nextExcluded.contains(self)) { + nextExcluded.add(self); + } + visible.addAll(namespace.visibleMemberships(nextExcluded, true, includeAll)); + } + } + } + } + result.addAll(visible); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/NullExpression_evaluate_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/NullExpression_evaluate_InvocationDelegate.java new file mode 100644 index 000000000..d9b6b4ddf --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/NullExpression_evaluate_InvocationDelegate.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.NullExpression; + +/** + * Generated invocation delegate for {@code NullExpression::evaluate}. + */ +public class NullExpression_evaluate_InvocationDelegate extends AbstractInvocationDelegate { + + public NullExpression_evaluate_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "NullExpression::evaluate"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * Sequence{} + */ + var result = new BasicEList(); + if (target instanceof NullExpression) { + // keep empty + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/NullExpression_modelLevelEvaluable_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/NullExpression_modelLevelEvaluable_InvocationDelegate.java new file mode 100644 index 000000000..289105d88 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/NullExpression_modelLevelEvaluable_InvocationDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.NullExpression; + +/** + * Generated invocation delegate for {@code NullExpression::modelLevelEvaluable}. + */ +public class NullExpression_modelLevelEvaluable_InvocationDelegate extends AbstractInvocationDelegate { + + public NullExpression_modelLevelEvaluable_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "NullExpression::modelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * true + */ + var result = false; + if (target instanceof NullExpression) { + result = true; + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/OperatorExpression_instantiatedType_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/OperatorExpression_instantiatedType_InvocationDelegate.java new file mode 100644 index 000000000..d0909db37 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/OperatorExpression_instantiatedType_InvocationDelegate.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.OperatorExpression; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code OperatorExpression::instantiatedType}. + */ +public class OperatorExpression_instantiatedType_InvocationDelegate extends AbstractInvocationDelegate { + + public OperatorExpression_instantiatedType_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "OperatorExpression::instantiatedType"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let libFunctions : Sequence(Element) = + * Sequence{'BaseFunctions', 'DataFunctions', 'ControlFunctions'}-> + * collect(ns | resolveGlobal(ns + "::'" + operator + "'"). + * memberElement) in + * if libFunctions->isEmpty() then null + * else libFunctions->first().oclAsType(Type) + * endif + */ + Type result = null; + if (target instanceof OperatorExpression self) { + var operator = self.getOperator(); + if (operator != null) { + String[] namespaces = {"BaseFunctions", "DataFunctions", "ControlFunctions"}; + for (var namespace : namespaces) { + var membership = self.resolveGlobal(namespace + "::'" + operator + "'"); + if (membership != null && membership.getMemberElement() instanceof Type type) { + result = type; + break; + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/OwningMembership_path_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/OwningMembership_path_InvocationDelegate.java new file mode 100644 index 000000000..f4e1d151d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/OwningMembership_path_InvocationDelegate.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.OwningMembership; +import org.omg.sysml.model.sysml.Relationship; + +/** + * Generated invocation delegate for {@code OwningMembership::path}. + */ +public class OwningMembership_path_InvocationDelegate extends AbstractInvocationDelegate { + + public OwningMembership_path_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "OwningMembership::path"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if ownedElement.qualifiedName <> null then + * ownedElement.qualifiedName + '/owningMembership' + * else self.oclAsType(Relationship).path() + * endif + */ + String result = null; + if (target instanceof OwningMembership self) { + var ownedElement = self.getOwnedMemberElement(); + var qualifiedName = ownedElement == null ? null : ownedElement.getQualifiedName(); + if (qualifiedName != null) { + result = qualifiedName + "/owningMembership"; + } else { + var relationship = (Relationship) self; + var owningRelationship = relationship.getOwningRelationship(); + var owningRelatedElement = relationship.getOwningRelatedElement(); + if (owningRelationship == null && owningRelatedElement != null) { + var index = owningRelatedElement.getOwnedRelationship().indexOf(relationship) + 1; + result = owningRelatedElement.path() + "/" + Integer.toString(index); + } else { + var relationshipQualifiedName = relationship.getQualifiedName(); + if (relationshipQualifiedName != null) { + result = relationshipQualifiedName; + } else if (owningRelationship != null) { + var index = owningRelationship.getOwnedRelatedElement().indexOf(relationship) + 1; + result = owningRelationship.path() + "/" + Integer.toString(index); + } else { + result = ""; + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Package_importedMemberships_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Package_importedMemberships_InvocationDelegate.java new file mode 100644 index 000000000..2b87556c9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Package_importedMemberships_InvocationDelegate.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.Package; + +/** + * Generated invocation delegate for {@code Package::importedMemberships}. + */ +public class Package_importedMemberships_InvocationDelegate extends AbstractInvocationDelegate { + + public Package_importedMemberships_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Package::importedMemberships"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * self.oclAsType(Namespace).importedMemberships(excluded)-> + * select(m | self.includeAsMember(m.memberElement)) + */ + var result = new BasicEList(); + if (target instanceof Package self) { + var excluded = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList excludedArg) { + for (var element : excludedArg) { + if (element instanceof Namespace namespace) { + excluded.add(namespace); + } + } + } + var excludedWithSelf = new BasicEList(); + excludedWithSelf.addAll(excluded); + if (!excludedWithSelf.contains(self)) { + excludedWithSelf.add(self); + } + for (var imported : self.getOwnedImport()) { + for (var membership : imported.importedMemberships(excludedWithSelf)) { + if (self.includeAsMember(membership.getMemberElement())) { + result.add(membership); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Package_includeAsMember_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Package_includeAsMember_InvocationDelegate.java new file mode 100644 index 000000000..aad4abf79 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Package_includeAsMember_InvocationDelegate.java @@ -0,0 +1,92 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.Package; + +/** + * Generated invocation delegate for {@code Package::includeAsMember}. + */ +public class Package_includeAsMember_InvocationDelegate extends AbstractInvocationDelegate { + + public Package_includeAsMember_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Package::includeAsMember"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let metadataFeatures: Sequence(AnnotatingElement) = + * element.ownedAnnotation.annotatingElement-> + * selectByKind(MetadataFeature) in + * self.filterCondition->forAll(cond | + * metadataFeatures->exists(elem | + * cond.checkCondition(elem))) + */ + var result = false; + if (target instanceof Package self) { + var element = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Element value + ? value + : null; + if (element != null) { + var metadataFeatures = new BasicEList(); + for (var annotation : element.getOwnedAnnotation()) { + var annotatingElement = annotation.getAnnotatingElement(); + if (annotatingElement instanceof MetadataFeature) { + metadataFeatures.add(annotatingElement); + } + } + result = true; + for (var condition : self.getFilterCondition()) { + var exists = false; + for (var metadataFeature : metadataFeatures) { + if (condition.checkCondition(metadataFeature)) { + exists = true; + break; + } + } + if (!exists) { + result = false; + break; + } + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ParameterMembership_parameterDirection_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ParameterMembership_parameterDirection_InvocationDelegate.java new file mode 100644 index 000000000..aa5507ce2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ParameterMembership_parameterDirection_InvocationDelegate.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.ParameterMembership; + +/** + * Generated invocation delegate for {@code ParameterMembership::parameterDirection}. + */ +public class ParameterMembership_parameterDirection_InvocationDelegate extends AbstractInvocationDelegate { + + public ParameterMembership_parameterDirection_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ParameterMembership::parameterDirection"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * FeatureDirectionKind::_'in' + */ + FeatureDirectionKind result = null; + if (target instanceof ParameterMembership) { + result = FeatureDirectionKind.IN; + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/PerformActionUsage_namingFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/PerformActionUsage_namingFeature_InvocationDelegate.java new file mode 100644 index 000000000..6b56e980d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/PerformActionUsage_namingFeature_InvocationDelegate.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.PerformActionUsage; +import org.omg.sysml.model.sysml.VariantMembership; + +/** + * Generated invocation delegate for {@code PerformActionUsage::namingFeature}. + */ +public class PerformActionUsage_namingFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public PerformActionUsage_namingFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "PerformActionUsage::namingFeature"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if performedAction <> self then performedAction + * else self.oclAsType(Usage).namingFeature() + * endif + */ + Feature result = null; + if (target instanceof PerformActionUsage self) { + if (self.getPerformedAction() != self) { + result = self.getPerformedAction(); + } else { + if (!(self.getOwningMembership() instanceof VariantMembership)) { + if (!self.getOwnedRedefinition().isEmpty()) { + result = self.getOwnedRedefinition().getFirst().getRedefinedFeature(); + } + } else { + var referenceSubsetting = self.getOwnedReferenceSubsetting(); + if (referenceSubsetting != null) { + result = referenceSubsetting.getReferencedFeature(); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ReferenceUsage_namingFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ReferenceUsage_namingFeature_InvocationDelegate.java new file mode 100644 index 000000000..137773250 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ReferenceUsage_namingFeature_InvocationDelegate.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.TransitionUsage; +import org.omg.sysml.model.sysml.VariantMembership; + +/** + * Generated invocation delegate for {@code ReferenceUsage::namingFeature}. + */ +public class ReferenceUsage_namingFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public ReferenceUsage_namingFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ReferenceUsage::namingFeature"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if owningType <> null and owningType.oclIsKindOf(TransitionUsage) and + * owningType.oclAsType(TransitionUsage).inputParameter(2) = self then + * owningType.oclAsType(TransitionUsage).triggerPayloadParameter() + * else self.oclAsType(Usage).namingFeature() + * endif + */ + Feature result = null; + if (target instanceof ReferenceUsage self) { + var owningType = self.getOwningType(); + if (owningType instanceof TransitionUsage transitionUsage && transitionUsage.inputParameter(2) == self) { + result = transitionUsage.triggerPayloadParameter(); + } else { + if (!(self.getOwningMembership() instanceof VariantMembership)) { + if (!self.getOwnedRedefinition().isEmpty()) { + result = self.getOwnedRedefinition().getFirst().getRedefinedFeature(); + } + } else { + var referenceSubsetting = self.getOwnedReferenceSubsetting(); + if (referenceSubsetting != null) { + result = referenceSubsetting.getReferencedFeature(); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Relationship_libraryNamespace_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Relationship_libraryNamespace_InvocationDelegate.java new file mode 100644 index 000000000..be4506c5c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Relationship_libraryNamespace_InvocationDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.Relationship; + +/** + * Generated invocation delegate for {@code Relationship::libraryNamespace}. + */ +public class Relationship_libraryNamespace_InvocationDelegate extends AbstractInvocationDelegate { + + public Relationship_libraryNamespace_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Relationship::libraryNamespace"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if owningRelatedElement <> null then owningRelatedElement.libraryNamespace() + * else if owningRelationship <> null then owningRelationship.libraryNamespace() + * else null endif endif + */ + Namespace result = null; + if (target instanceof Relationship self) { + var owningRelatedElement = self.getOwningRelatedElement(); + if (owningRelatedElement != null) { + result = owningRelatedElement.libraryNamespace(); + } else { + var owningRelationship = self.getOwningRelationship(); + if (owningRelationship != null) { + result = owningRelationship.libraryNamespace(); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Relationship_path_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Relationship_path_InvocationDelegate.java new file mode 100644 index 000000000..1b61b6561 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Relationship_path_InvocationDelegate.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Relationship; + +/** + * Generated invocation delegate for {@code Relationship::path}. + */ +public class Relationship_path_InvocationDelegate extends AbstractInvocationDelegate { + + public Relationship_path_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Relationship::path"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if owningRelationship = null and owningRelatedElement <> null then + * owningRelatedElement.path() + '/' + + * owningRelatedElement.ownedRelationship->indexOf(self).toString() + * -- A position index shall be converted to a decimal string representation + * -- consisting of only decimal digits, with no sign, leading zeros or leading + * -- or trailing whitespace. + * else self.oclAsType(Element).path() + * endif + */ + String result = null; + if (target instanceof Relationship self) { + var owningRelationship = self.getOwningRelationship(); + var owningRelatedElement = self.getOwningRelatedElement(); + if (owningRelationship == null && owningRelatedElement != null) { + var index = owningRelatedElement.getOwnedRelationship().indexOf(self) + 1; + result = owningRelatedElement.path() + "/" + Integer.toString(index); + } else { + var qualifiedName = self.getQualifiedName(); + if (qualifiedName != null) { + result = qualifiedName; + } else if (owningRelationship != null) { + var index = owningRelationship.getOwnedRelatedElement().indexOf(self) + 1; + result = owningRelationship.path() + "/" + Integer.toString(index); + } else { + result = ""; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ReturnParameterMembership_parameterDirection_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ReturnParameterMembership_parameterDirection_InvocationDelegate.java new file mode 100644 index 000000000..9b869ca88 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ReturnParameterMembership_parameterDirection_InvocationDelegate.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.ReturnParameterMembership; + +/** + * Generated invocation delegate for {@code ReturnParameterMembership::parameterDirection}. + */ +public class ReturnParameterMembership_parameterDirection_InvocationDelegate extends AbstractInvocationDelegate { + + public ReturnParameterMembership_parameterDirection_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ReturnParameterMembership::parameterDirection"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * FeatureDirectionKind::out + */ + FeatureDirectionKind result = null; + if (target instanceof ReturnParameterMembership) { + result = FeatureDirectionKind.OUT; + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/StateUsage_isSubstateUsage_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/StateUsage_isSubstateUsage_InvocationDelegate.java new file mode 100644 index 000000000..b950e5bd5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/StateUsage_isSubstateUsage_InvocationDelegate.java @@ -0,0 +1,79 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.StateDefinition; +import org.omg.sysml.model.sysml.StateSubactionMembership; +import org.omg.sysml.model.sysml.StateUsage; + +/** + * Generated invocation delegate for {@code StateUsage::isSubstateUsage}. + */ +public class StateUsage_isSubstateUsage_InvocationDelegate extends AbstractInvocationDelegate { + + public StateUsage_isSubstateUsage_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "StateUsage::isSubstateUsage"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(StateDefinition) and + * owningType.oclAsType(StateDefinition).isParallel = isParallel or + * owningType.oclIsKindOf(StateUsage) and + * owningType.oclAsType(StateUsage).isParallel = isParallel) and + * not owningFeatureMembership.oclIsKindOf(StateSubactionMembership) + */ + var result = false; + if (target instanceof StateUsage self) { + var isParallel = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Boolean value + ? value.booleanValue() + : false; + var owningType = self.getOwningType(); + var matchingOwningType = false; + if (owningType instanceof StateDefinition stateDefinition) { + matchingOwningType = stateDefinition.isIsParallel() == isParallel; + } else if (owningType instanceof StateUsage stateUsage) { + matchingOwningType = stateUsage.isIsParallel() == isParallel; + } + result = self.isIsComposite() + && owningType != null + && matchingOwningType + && !(self.getOwningFeatureMembership() instanceof StateSubactionMembership); + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/TransitionUsage_sourceFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/TransitionUsage_sourceFeature_InvocationDelegate.java new file mode 100644 index 000000000..440099632 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/TransitionUsage_sourceFeature_InvocationDelegate.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * Generated invocation delegate for {@code TransitionUsage::sourceFeature}. + */ +public class TransitionUsage_sourceFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public TransitionUsage_sourceFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "TransitionUsage::sourceFeature"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let features : Sequence(Feature) = ownedMembership-> + * reject(oclIsKindOf(FeatureMembership)).memberElement-> + * selectByKind(Feature)-> + * select(featureTarget.oclIsKindOf(ActionUsage)) in + * if features->isEmpty() then null + * else features->first() + * endif + */ + Feature result = null; + if (target instanceof TransitionUsage self) { + for (var membership : self.getOwnedMembership()) { + if (!(membership instanceof FeatureMembership) && membership.getMemberElement() instanceof Feature feature) { + if (feature.getFeatureTarget() instanceof ActionUsage) { + result = feature; + break; + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/TransitionUsage_triggerPayloadParameter_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/TransitionUsage_triggerPayloadParameter_InvocationDelegate.java new file mode 100644 index 000000000..b21230d91 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/TransitionUsage_triggerPayloadParameter_InvocationDelegate.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * Generated invocation delegate for {@code TransitionUsage::triggerPayloadParameter}. + */ +public class TransitionUsage_triggerPayloadParameter_InvocationDelegate extends AbstractInvocationDelegate { + + public TransitionUsage_triggerPayloadParameter_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "TransitionUsage::triggerPayloadParameter"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if triggerAction->isEmpty() then null + * else triggerAction->first().payloadParameter + * endif + */ + ReferenceUsage result = null; + if (target instanceof TransitionUsage self) { + var triggerAction = self.getTriggerAction(); + if (!triggerAction.isEmpty()) { + result = triggerAction.getFirst().getPayloadParameter(); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/TriggerInvocationExpression_instantiatedType_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/TriggerInvocationExpression_instantiatedType_InvocationDelegate.java new file mode 100644 index 000000000..98b6fb405 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/TriggerInvocationExpression_instantiatedType_InvocationDelegate.java @@ -0,0 +1,78 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.TriggerInvocationExpression; +import org.omg.sysml.model.sysml.TriggerKind; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code TriggerInvocationExpression::instantiatedType}. + */ +public class TriggerInvocationExpression_instantiatedType_InvocationDelegate extends AbstractInvocationDelegate { + + public TriggerInvocationExpression_instantiatedType_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "TriggerInvocationExpression::instantiatedType"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * resolveGlobal( + * if kind = TriggerKind::when then + * 'Triggers::TriggerWhen' + * else if kind = TriggerKind::at then + * 'Triggers::TriggerAt' + * else + * 'Triggers::TriggerAfter' + * endif endif + * ).memberElement.oclAsType(Type) + */ + Type result = null; + if (target instanceof TriggerInvocationExpression self) { + var qualifiedName = "Triggers::TriggerAfter"; + if (self.getKind() == TriggerKind.WHEN) { + qualifiedName = "Triggers::TriggerWhen"; + } else if (self.getKind() == TriggerKind.AT) { + qualifiedName = "Triggers::TriggerAt"; + } + var membership = self.resolveGlobal(qualifiedName); + if (membership != null && membership.getMemberElement() instanceof Type type) { + result = type; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_allRedefinedFeaturesOf_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_allRedefinedFeaturesOf_InvocationDelegate.java new file mode 100644 index 000000000..9e0fcc4f4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_allRedefinedFeaturesOf_InvocationDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::allRedefinedFeaturesOf}. + */ +public class Type_allRedefinedFeaturesOf_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_allRedefinedFeaturesOf_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::allRedefinedFeaturesOf"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if not membership.memberElement.oclIsType(Feature) then Set{} + * else membership.memberElement.oclAsType(Feature).allRedefinedFeatures() + * endif + */ + var result = new BasicEList(); + if (target instanceof Type) { + var membership = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Membership value + ? value + : null; + if (membership != null && membership.getMemberElement() instanceof Feature feature) { + result.addAll(feature.allRedefinedFeatures()); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_allSupertypes_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_allSupertypes_InvocationDelegate.java new file mode 100644 index 000000000..8bc84cfbb --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_allSupertypes_InvocationDelegate.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.ArrayDeque; +import java.util.LinkedHashSet; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::allSupertypes}. + */ +public class Type_allSupertypes_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_allSupertypes_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::allSupertypes"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * OrderedSet{self}->closure(supertypes(false)) + */ + var result = new BasicEList(); + if (target instanceof Type self) { + var collected = new LinkedHashSet(); + var pending = new ArrayDeque(); + collected.add(self); + pending.add(self); + while (!pending.isEmpty()) { + var current = pending.removeFirst(); + for (var supertype : current.supertypes(false)) { + if (supertype != null && collected.add(supertype)) { + pending.addLast(supertype); + } + } + } + result.addAll(collected); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_directionOfExcluding_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_directionOfExcluding_InvocationDelegate.java new file mode 100644 index 000000000..e775a41aa --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_directionOfExcluding_InvocationDelegate.java @@ -0,0 +1,117 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::directionOfExcluding}. + */ +public class Type_directionOfExcluding_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_directionOfExcluding_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::directionOfExcluding"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let excludedSelf : Set(Type) = excluded->including(self) in + * if feature.owningType = self then feature.direction + * else + * let directions : Sequence(FeatureDirectionKind) = + * supertypes(false)->excluding(excludedSelf). + * directionOfExcluding(feature, excludedSelf)-> + * select(d | d <> null) in + * if directions->isEmpty() then null + * else + * let direction : FeatureDirectionKind = directions->first() in + * if not isConjugated then direction + * else if direction = FeatureDirectionKind::_'in' then FeatureDirectionKind::out + * else if direction = FeatureDirectionKind::out then FeatureDirectionKind::_'in' + * else direction + * endif endif endif endif + * endif + */ + FeatureDirectionKind result = null; + if (target instanceof Type self) { + var feature = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Feature value + ? value + : null; + var excludedSelf = new BasicEList(); + if (arguments != null && arguments.size() > 1 && arguments.get(1) instanceof EList excludedArg) { + for (var element : excludedArg) { + if (element instanceof Type type && !excludedSelf.contains(type)) { + excludedSelf.add(type); + } + } + } + if (!excludedSelf.contains(self)) { + excludedSelf.add(self); + } + if (feature != null) { + if (feature.getOwningType() == self) { + result = feature.getDirection(); + } else { + var directions = new BasicEList(); + for (var supertype : self.supertypes(false)) { + if (!excludedSelf.contains(supertype)) { + var direction = supertype.directionOfExcluding(feature, excludedSelf); + if (direction != null) { + directions.add(direction); + } + } + } + if (!directions.isEmpty()) { + var direction = directions.getFirst(); + if (!self.isIsConjugated()) { + result = direction; + } else if (direction == FeatureDirectionKind.IN) { + result = FeatureDirectionKind.OUT; + } else if (direction == FeatureDirectionKind.OUT) { + result = FeatureDirectionKind.IN; + } else { + result = direction; + } + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_directionOf_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_directionOf_InvocationDelegate.java new file mode 100644 index 000000000..07ff71586 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_directionOf_InvocationDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::directionOf}. + */ +public class Type_directionOf_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_directionOf_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::directionOf"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * directionOfExcluding(f, Set{}) + */ + FeatureDirectionKind result = null; + if (target instanceof Type self) { + var feature = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Feature value + ? value + : null; + if (feature != null) { + result = self.directionOfExcluding(feature, new BasicEList()); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_inheritableMemberships_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_inheritableMemberships_InvocationDelegate.java new file mode 100644 index 000000000..3c48d50fc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_inheritableMemberships_InvocationDelegate.java @@ -0,0 +1,94 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.LinkedHashSet; +import java.util.Set; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::inheritableMemberships}. + */ +public class Type_inheritableMemberships_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_inheritableMemberships_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::inheritableMemberships"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let excludingSelf : Set(Type) = excludedType->including(self) in + * supertypes(excludeImplied)->reject(t | excludingSelf->includes(t)). + * nonPrivateMemberships(excludedNamespaces, excludingSelf, excludeImplied) + */ + var result = new BasicEList(); + if (target instanceof Type self) { + var excludedNamespaces = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList namespaceArg) { + for (var element : namespaceArg) { + if (element instanceof Namespace namespace) { + excludedNamespaces.add(namespace); + } + } + } + var excludingSelf = new BasicEList(); + if (arguments != null && arguments.size() > 1 && arguments.get(1) instanceof EList typeArg) { + for (var element : typeArg) { + if (element instanceof Type type && !excludingSelf.contains(type)) { + excludingSelf.add(type); + } + } + } + if (!excludingSelf.contains(self)) { + excludingSelf.add(self); + } + var excludeImplied = arguments != null && arguments.size() > 2 && arguments.get(2) instanceof Boolean value + ? value.booleanValue() + : false; + Set inheritable = new LinkedHashSet<>(); + for (var supertype : self.supertypes(excludeImplied)) { + if (!excludingSelf.contains(supertype)) { + inheritable.addAll(supertype.nonPrivateMemberships(excludedNamespaces, excludingSelf, excludeImplied)); + } + } + result.addAll(inheritable); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_inheritedMemberships_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_inheritedMemberships_InvocationDelegate.java new file mode 100644 index 000000000..0e801f11c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_inheritedMemberships_InvocationDelegate.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::inheritedMemberships}. + */ +public class Type_inheritedMemberships_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_inheritedMemberships_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::inheritedMemberships"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * removeRedefinedFeatures( + * inheritableMemberships(excludedNamespaces, excludedTypes, excludeImplied)) + */ + var result = new BasicEList<>(); + if (target instanceof Type self) { + var excludedNamespaces = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList namespaceArg) { + for (var element : namespaceArg) { + if (element instanceof Namespace namespace) { + excludedNamespaces.add(namespace); + } + } + } + var excludedTypes = new BasicEList(); + if (arguments != null && arguments.size() > 1 && arguments.get(1) instanceof EList typeArg) { + for (var element : typeArg) { + if (element instanceof Type type) { + excludedTypes.add(type); + } + } + } + var excludeImplied = arguments != null && arguments.size() > 2 && arguments.get(2) instanceof Boolean value + ? value.booleanValue() + : false; + result.addAll(self.removeRedefinedFeatures( + self.inheritableMemberships(excludedNamespaces, excludedTypes, excludeImplied))); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_isCompatibleWith_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_isCompatibleWith_InvocationDelegate.java new file mode 100644 index 000000000..7d4e25d36 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_isCompatibleWith_InvocationDelegate.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::isCompatibleWith}. + */ +public class Type_isCompatibleWith_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_isCompatibleWith_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::isCompatibleWith"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * specializes(otherType) + */ + var result = false; + if (target instanceof Type self) { + var otherType = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Type value ? value : null; + result = otherType != null && self.specializes(otherType); + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_multiplicities_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_multiplicities_InvocationDelegate.java new file mode 100644 index 000000000..65b2ec090 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_multiplicities_InvocationDelegate.java @@ -0,0 +1,94 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.ArrayDeque; +import java.util.LinkedHashSet; +import java.util.Set; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::multiplicities}. + */ +public class Type_multiplicities_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_multiplicities_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::multiplicities"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if multiplicity <> null then OrderedSet{multiplicity} + * else + * ownedSpecialization.general->closure(t | + * if t.multiplicity <> null then OrderedSet{} + * else ownedSpecialization.general + * )->select(multiplicity <> null).multiplicity->asOrderedSet() + * endif + */ + var result = new BasicEList(); + if (target instanceof Type self) { + var ownMultiplicity = self.getMultiplicity(); + if (ownMultiplicity != null) { + result.add(ownMultiplicity); + } else { + var pending = new ArrayDeque(); + Set visited = new LinkedHashSet<>(); + pending.add(self); + visited.add(self); + while (!pending.isEmpty()) { + var current = pending.removeFirst(); + for (var specialization : current.getOwnedSpecialization()) { + var general = specialization.getGeneral(); + if (general != null && visited.add(general)) { + var generalMultiplicity = general.getMultiplicity(); + if (generalMultiplicity != null) { + if (!result.contains(generalMultiplicity)) { + result.add(generalMultiplicity); + } + } else { + pending.addLast(general); + } + } + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_nonPrivateMemberships_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_nonPrivateMemberships_InvocationDelegate.java new file mode 100644 index 000000000..5bbea22f8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_nonPrivateMemberships_InvocationDelegate.java @@ -0,0 +1,96 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.LinkedHashSet; +import java.util.Set; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.VisibilityKind; + +/** + * Generated invocation delegate for {@code Type::nonPrivateMemberships}. + */ +public class Type_nonPrivateMemberships_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_nonPrivateMemberships_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::nonPrivateMemberships"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let publicMemberships : OrderedSet(Membership) = + * membershipsOfVisibility(VisibilityKind::public, excludedNamespaces) in + * let protectedMemberships : OrderedSet(Membership) = + * membershipsOfVisibility(VisibilityKind::protected, excludedNamespaces) in + * let inheritedMemberships : OrderedSet(Membership) = + * inheritedMemberships(excludedNamespaces, excludedTypes, excludeImplied) in + * publicMemberships-> + * union(protectedMemberships)-> + * union(inheritedMemberships) + */ + var result = new BasicEList(); + if (target instanceof Type self) { + var excludedNamespaces = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList namespaceArg) { + for (var element : namespaceArg) { + if (element instanceof Namespace namespace) { + excludedNamespaces.add(namespace); + } + } + } + var excludedTypes = new BasicEList(); + if (arguments != null && arguments.size() > 1 && arguments.get(1) instanceof EList typeArg) { + for (var element : typeArg) { + if (element instanceof Type type) { + excludedTypes.add(type); + } + } + } + var excludeImplied = arguments != null && arguments.size() > 2 && arguments.get(2) instanceof Boolean value + ? value.booleanValue() + : false; + Set memberships = new LinkedHashSet<>(); + memberships.addAll(self.membershipsOfVisibility(VisibilityKind.PUBLIC, excludedNamespaces)); + memberships.addAll(self.membershipsOfVisibility(VisibilityKind.PROTECTED, excludedNamespaces)); + memberships.addAll(self.inheritedMemberships(excludedNamespaces, excludedTypes, excludeImplied)); + result.addAll(memberships); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_removeRedefinedFeatures_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_removeRedefinedFeatures_InvocationDelegate.java new file mode 100644 index 000000000..06aee046d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_removeRedefinedFeatures_InvocationDelegate.java @@ -0,0 +1,115 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.LinkedHashSet; +import java.util.Set; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::removeRedefinedFeatures}. + */ +public class Type_removeRedefinedFeatures_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_removeRedefinedFeatures_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::removeRedefinedFeatures"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let reducedMemberships : Sequence(Membership) = + * memberships->reject(mem1 | + * memberships->excluding(mem1)-> + * exists(mem2 | allRedefinedFeaturesOf(mem2)-> + * includes(mem1.memberElement))) in + * let redefinedFeatures : Set(Feature) = + * ownedFeature.redefinition.redefinedFeature->asSet() in + * reducedMemberships->reject(mem | allRedefinedFeaturesOf(mem)-> + * exists(feature | redefinedFeatures->includes(feature))) + */ + var result = new BasicEList(); + if (target instanceof Type self) { + var memberships = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList membershipArg) { + for (var element : membershipArg) { + if (element instanceof Membership membership) { + memberships.add(membership); + } + } + } + var reducedMemberships = new BasicEList(); + for (var mem1 : memberships) { + var keep = true; + for (var mem2 : memberships) { + if (mem1 != mem2 && self.allRedefinedFeaturesOf(mem2).contains(mem1.getMemberElement())) { + keep = false; + break; + } + } + if (keep) { + reducedMemberships.add(mem1); + } + } + + Set redefinedFeatures = new LinkedHashSet<>(); + for (var ownedFeature : self.getOwnedFeature()) { + for (var redefinition : ownedFeature.getOwnedRedefinition()) { + var redefined = redefinition.getRedefinedFeature(); + if (redefined != null) { + redefinedFeatures.add(redefined); + } + } + } + + for (var membership : reducedMemberships) { + var reject = false; + for (var feature : self.allRedefinedFeaturesOf(membership)) { + if (redefinedFeatures.contains(feature)) { + reject = true; + break; + } + } + if (!reject) { + result.add(membership); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_specializesFromLibrary_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_specializesFromLibrary_InvocationDelegate.java new file mode 100644 index 000000000..4c090fee4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_specializesFromLibrary_InvocationDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::specializesFromLibrary}. + */ +public class Type_specializesFromLibrary_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_specializesFromLibrary_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::specializesFromLibrary"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let mem : Membership = resolveGlobal(libraryTypeName) in + * mem <> null and mem.memberElement.oclIsKindOf(Type) and + * specializes(mem.memberElement.oclAsType(Type)) + */ + var result = false; + if (target instanceof Type self) { + var libraryTypeName = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof String value + ? value + : null; + if (libraryTypeName != null) { + var membership = self.resolveGlobal(libraryTypeName); + if (membership != null && membership.getMemberElement() instanceof Type libraryType) { + result = self.specializes(libraryType); + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_specializes_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_specializes_InvocationDelegate.java new file mode 100644 index 000000000..b13dba159 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_specializes_InvocationDelegate.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::specializes}. + */ +public class Type_specializes_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_specializes_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::specializes"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if isConjugated then + * ownedConjugator.originalType.specializes(supertype) + * else + * allSupertypes()->includes(supertype) + * endif + */ + var result = false; + if (target instanceof Type self) { + var supertype = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Type value ? value : null; + if (supertype != null) { + if (self.isIsConjugated()) { + var conjugator = self.getOwnedConjugator(); + var originalType = conjugator == null ? null : conjugator.getOriginalType(); + result = originalType != null && originalType.specializes(supertype); + } else { + result = self.allSupertypes().contains(supertype); + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_supertypes_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_supertypes_InvocationDelegate.java new file mode 100644 index 000000000..65fa26d48 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_supertypes_InvocationDelegate.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated invocation delegate for {@code Type::supertypes}. + */ +public class Type_supertypes_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_supertypes_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::supertypes"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if isConjugated then Sequence{conjugator.originalType} + * else if not excludeImplied then ownedSpecialization.general + * else ownedSpecialization->reject(isImplied).general + * endif + * endif + */ + var result = new BasicEList(); + if (target instanceof Type self) { + var excludeImplied = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Boolean value + ? value.booleanValue() + : false; + if (self.isIsConjugated()) { + var conjugator = self.getOwnedConjugator(); + var originalType = conjugator == null ? null : conjugator.getOriginalType(); + if (originalType != null) { + result.add(originalType); + } + } else { + for (var specialization : self.getOwnedSpecialization()) { + if (!excludeImplied || !specialization.isIsImplied()) { + var general = specialization.getGeneral(); + if (general != null) { + result.add(general); + } + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_visibleMemberships_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_visibleMemberships_InvocationDelegate.java new file mode 100644 index 000000000..622a599f9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Type_visibleMemberships_InvocationDelegate.java @@ -0,0 +1,116 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import java.util.LinkedHashSet; +import java.util.Set; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.VisibilityKind; + +/** + * Generated invocation delegate for {@code Type::visibleMemberships}. + */ +public class Type_visibleMemberships_InvocationDelegate extends AbstractInvocationDelegate { + + public Type_visibleMemberships_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Type::visibleMemberships"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let visibleMemberships : OrderedSet(Membership) = + * self.oclAsType(Namespace). + * visibleMemberships(excluded, isRecursive, includeAll) in + * let visibleInheritedMemberships : OrderedSet(Membership) = + * inheritedMemberships(excluded->including(self), Set{}, isRecursive)-> + * select(includeAll or visibility = VisibilityKind::public) in + * visibleMemberships->union(visibleInheritedMemberships) + */ + var result = new BasicEList(); + if (target instanceof Type self) { + var excluded = new BasicEList(); + if (arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof EList excludedArg) { + for (var element : excludedArg) { + if (element instanceof Namespace namespace) { + excluded.add(namespace); + } + } + } + var isRecursive = arguments != null && arguments.size() > 1 && arguments.get(1) instanceof Boolean value + ? value.booleanValue() + : false; + var includeAll = arguments != null && arguments.size() > 2 && arguments.get(2) instanceof Boolean value + ? value.booleanValue() + : false; + + Set memberships = new LinkedHashSet<>(); + var visibility = includeAll ? null : VisibilityKind.PUBLIC; + memberships.addAll(self.membershipsOfVisibility(visibility, excluded)); + + if (isRecursive) { + for (var member : self.getOwnedMember()) { + if (member instanceof Namespace namespace) { + var owningMembership = namespace.getOwningMembership(); + if (includeAll || (owningMembership != null && owningMembership.getVisibility() == VisibilityKind.PUBLIC)) { + var nextExcluded = new BasicEList(); + nextExcluded.addAll(excluded); + if (!nextExcluded.contains(self)) { + nextExcluded.add(self); + } + memberships.addAll(namespace.visibleMemberships(nextExcluded, true, includeAll)); + } + } + } + } + + var excludedWithSelf = new BasicEList(); + excludedWithSelf.addAll(excluded); + if (!excludedWithSelf.contains(self)) { + excludedWithSelf.add(self); + } + for (var inherited : self.inheritedMemberships(excludedWithSelf, new BasicEList(), isRecursive)) { + if (includeAll || inherited.getVisibility() == VisibilityKind.PUBLIC) { + memberships.add(inherited); + } + } + result.addAll(memberships); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Usage_namingFeature_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Usage_namingFeature_InvocationDelegate.java new file mode 100644 index 000000000..a77ca43a8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Usage_namingFeature_InvocationDelegate.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.VariantMembership; + +/** + * Generated invocation delegate for {@code Usage::namingFeature}. + */ +public class Usage_namingFeature_InvocationDelegate extends AbstractInvocationDelegate { + + public Usage_namingFeature_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Usage::namingFeature"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if not owningMembership.oclIsKindOf(VariantMembership) then + * self.oclAsType(Feature).namingFeature() + * else if ownedReferenceSubsetting = null then null + * else ownedReferenceSubsetting.referencedFeature + * endif endif + */ + Feature result = null; + if (target instanceof Usage self) { + if (!(self.getOwningMembership() instanceof VariantMembership)) { + if (!((Feature) self).getOwnedRedefinition().isEmpty()) { + result = ((Feature) self).getOwnedRedefinition().getFirst().getRedefinedFeature(); + } + } else { + var referenceSubsetting = self.getOwnedReferenceSubsetting(); + if (referenceSubsetting != null) { + result = referenceSubsetting.getReferencedFeature(); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Usage_referencedFeatureTarget_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Usage_referencedFeatureTarget_InvocationDelegate.java new file mode 100644 index 000000000..81ee66c68 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/Usage_referencedFeatureTarget_InvocationDelegate.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated invocation delegate for {@code Usage::referencedFeatureTarget}. + */ +public class Usage_referencedFeatureTarget_InvocationDelegate extends AbstractInvocationDelegate { + + public Usage_referencedFeatureTarget_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "Usage::referencedFeatureTarget"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * if ownedReferenceSubsetting = null then null + * else ownedReferenceSubsetting.referencedFeature.featureTarget + * endif + */ + Feature result = null; + if (target instanceof Usage self) { + var referenceSubsetting = self.getOwnedReferenceSubsetting(); + if (referenceSubsetting != null && referenceSubsetting.getReferencedFeature() != null) { + result = referenceSubsetting.getReferencedFeature().getFeatureTarget(); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ViewUsage_includeAsExposed_InvocationDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ViewUsage_includeAsExposed_InvocationDelegate.java new file mode 100644 index 000000000..d72f389ee --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/invocation/ViewUsage_includeAsExposed_InvocationDelegate.java @@ -0,0 +1,99 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.invocation; + +import org.eclipse.emf.ecore.EOperation; +import java.lang.reflect.InvocationTargetException; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractInvocationDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.ElementFilterMembership; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.ViewUsage; + +/** + * Generated invocation delegate for {@code ViewUsage::includeAsExposed}. + */ +public class ViewUsage_includeAsExposed_InvocationDelegate extends AbstractInvocationDelegate { + + public ViewUsage_includeAsExposed_InvocationDelegate(EOperation operation) { + super(operation); + } + + @Override + protected String delegateId() { + return "ViewUsage::includeAsExposed"; + } + + /** + * @generated NOT + */ + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + /* + * OCL2.0 unnamed1 + * let metadataFeatures: Sequence(AnnotatingElement) = + * element.ownedAnnotation.annotatingElement-> + * select(oclIsKindOf(MetadataFeature)) in + * self.membership->selectByKind(ElementFilterMembership). + * condition->forAll(cond | + * metadataFeatures->exists(elem | + * cond.checkCondition(elem))) + */ + var result = false; + if (target instanceof ViewUsage self) { + var element = arguments != null && !arguments.isEmpty() && arguments.getFirst() instanceof Element value + ? value + : null; + if (element != null) { + var metadataFeatures = new BasicEList(); + for (var annotation : element.getOwnedAnnotation()) { + var annotatingElement = annotation.getAnnotatingElement(); + if (annotatingElement instanceof MetadataFeature) { + metadataFeatures.add(annotatingElement); + } + } + result = true; + for (var membership : self.getMembership()) { + if (membership instanceof ElementFilterMembership filterMembership) { + var condition = filterMembership.getCondition(); + var exists = false; + if (condition != null) { + for (var metadataFeature : metadataFeatures) { + if (condition.checkCondition(metadataFeature)) { + exists = true; + break; + } + } + } + if (!exists) { + result = false; + break; + } + } + } + } + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AcceptActionUsage_payloadArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AcceptActionUsage_payloadArgument_SettingDelegate.java new file mode 100644 index 000000000..3812e52be --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AcceptActionUsage_payloadArgument_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.AcceptActionUsage; + +/** + * Generated setting delegate for {@code AcceptActionUsage.payloadArgument}. + */ +public class AcceptActionUsage_payloadArgument_SettingDelegate extends AbstractSettingDelegate { + + public AcceptActionUsage_payloadArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AcceptActionUsage.payloadArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAcceptActionUsagePayloadArgument + * payloadArgument = argument(1) + */ + Object result = null; + if (owner instanceof AcceptActionUsage self) { + result = self.argument(1); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AcceptActionUsage_payloadParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AcceptActionUsage_payloadParameter_SettingDelegate.java new file mode 100644 index 000000000..da207761e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AcceptActionUsage_payloadParameter_SettingDelegate.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.ReferenceUsage; + +/** + * Generated setting delegate for {@code AcceptActionUsage.payloadParameter}. + */ +public class AcceptActionUsage_payloadParameter_SettingDelegate extends AbstractSettingDelegate { + + public AcceptActionUsage_payloadParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AcceptActionUsage.payloadParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAcceptActionUsagePayloadParameter + * payloadParameter = + * if parameter->isEmpty() then null + * else parameter->first() endif + */ + Object result = null; + if (owner instanceof AcceptActionUsage self && !self.getParameter().isEmpty() + && self.getParameter().getFirst() instanceof ReferenceUsage referenceUsage) { + result = referenceUsage; + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AcceptActionUsage_receiverArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AcceptActionUsage_receiverArgument_SettingDelegate.java new file mode 100644 index 000000000..f702d61e6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AcceptActionUsage_receiverArgument_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.AcceptActionUsage; + +/** + * Generated setting delegate for {@code AcceptActionUsage.receiverArgument}. + */ +public class AcceptActionUsage_receiverArgument_SettingDelegate extends AbstractSettingDelegate { + + public AcceptActionUsage_receiverArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AcceptActionUsage.receiverArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAcceptActionUsageReceiverArgument + * receiverArgument = argument(2) + */ + Object result = null; + if (owner instanceof AcceptActionUsage self) { + result = self.argument(2); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ActionDefinition_action_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ActionDefinition_action_SettingDelegate.java new file mode 100644 index 000000000..0a5efe318 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ActionDefinition_action_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ActionDefinition; +import org.omg.sysml.model.sysml.ActionUsage; + +/** + * Generated setting delegate for {@code ActionDefinition.action}. + */ +public class ActionDefinition_action_SettingDelegate extends AbstractSettingDelegate { + + public ActionDefinition_action_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ActionDefinition.action"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveActionDefinitionAction + * action = usage->selectByKind(ActionUsage) + */ + var result = new BasicEList(); + if (owner instanceof ActionDefinition self) { + for (var usage : self.getUsage()) { + if (usage instanceof ActionUsage actionUsage) { + result.add(actionUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ActionUsage_actionDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ActionUsage_actionDefinition_SettingDelegate.java new file mode 100644 index 000000000..fe591e715 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ActionUsage_actionDefinition_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ActionUsage.actionDefinition}. + */ +public class ActionUsage_actionDefinition_SettingDelegate extends AbstractSettingDelegate { + + public ActionUsage_actionDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ActionUsage.actionDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for ActionUsage.actionDefinition + * inferred source Feature.type + * The Behaviors that are the types of this ActionUsage . Nominally, these would be ActionDefinitions , but other kinds of Kernel Behaviors are also allowed, to permit use of Behaviors from the Kernel Model Libraries. + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Behavior) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Behavior) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ActorMembership_ownedActorParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ActorMembership_ownedActorParameter_SettingDelegate.java new file mode 100644 index 000000000..9c5252ae3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ActorMembership_ownedActorParameter_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ActorMembership.ownedActorParameter}. + */ +public class ActorMembership_ownedActorParameter_SettingDelegate extends AbstractSettingDelegate { + + public ActorMembership_ownedActorParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ActorMembership.ownedActorParameter"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for ActorMembership.ownedActorParameter + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof PartUsage) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof PartUsage) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof PartUsage) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AllocationDefinition_allocation_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AllocationDefinition_allocation_SettingDelegate.java new file mode 100644 index 000000000..a56d6a162 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AllocationDefinition_allocation_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AllocationDefinition; +import org.omg.sysml.model.sysml.AllocationUsage; + +/** + * Generated setting delegate for {@code AllocationDefinition.allocation}. + */ +public class AllocationDefinition_allocation_SettingDelegate extends AbstractSettingDelegate { + + public AllocationDefinition_allocation_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AllocationDefinition.allocation"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAllocationDefinitionAllocation + * allocation = usage->selectAsKind(AllocationUsage) + */ + var result = new BasicEList(); + if (owner instanceof AllocationDefinition self) { + for (var usage : self.getUsage()) { + if (usage instanceof AllocationUsage allocationUsage) { + result.add(allocationUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AllocationUsage_allocationDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AllocationUsage_allocationDefinition_SettingDelegate.java new file mode 100644 index 000000000..af8287bda --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AllocationUsage_allocationDefinition_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AllocationDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code AllocationUsage.allocationDefinition}. + */ +public class AllocationUsage_allocationDefinition_SettingDelegate extends AbstractSettingDelegate { + + public AllocationUsage_allocationDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AllocationUsage.allocationDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for AllocationUsage.allocationDefinition + * inferred source Feature.type + * The AllocationDefinitions that are the types of this AllocationUsage . + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof AllocationDefinition) { + values.add(candidate); + } + } + } else if (sourceValue instanceof AllocationDefinition) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnalysisCaseDefinition_resultExpression_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnalysisCaseDefinition_resultExpression_SettingDelegate.java new file mode 100644 index 000000000..cd9562cc8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnalysisCaseDefinition_resultExpression_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.AnalysisCaseDefinition; +import org.omg.sysml.model.sysml.ResultExpressionMembership; + +/** + * Generated setting delegate for {@code AnalysisCaseDefinition.resultExpression}. + */ +public class AnalysisCaseDefinition_resultExpression_SettingDelegate extends AbstractSettingDelegate { + + public AnalysisCaseDefinition_resultExpression_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AnalysisCaseDefinition.resultExpression"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAnalysisCaseDefinitionResultExpression + * resultExpression = + * let results : OrderedSet(ResultExpressionMembership) = + * featureMembersip-> + * selectByKind(ResultExpressionMembership) in + * if results->isEmpty() then null + * else results->first().ownedResultExpression + * endif + */ + Object result = null; + if (owner instanceof AnalysisCaseDefinition self) { + for (var featureMembership : self.getFeatureMembership()) { + if (featureMembership instanceof ResultExpressionMembership resultExpressionMembership) { + result = resultExpressionMembership.getOwnedResultExpression(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnalysisCaseUsage_analysisCaseDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnalysisCaseUsage_analysisCaseDefinition_SettingDelegate.java new file mode 100644 index 000000000..93dac1c04 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnalysisCaseUsage_analysisCaseDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.AnalysisCaseDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code AnalysisCaseUsage.analysisCaseDefinition}. + */ +public class AnalysisCaseUsage_analysisCaseDefinition_SettingDelegate extends AbstractSettingDelegate { + + public AnalysisCaseUsage_analysisCaseDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AnalysisCaseUsage.analysisCaseDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for AnalysisCaseUsage.analysisCaseDefinition + * inferred source Usage.definition + * The AnalysisCaseDefinition that is the definition of this AnalysisCaseUsage . + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getUsage_Definition(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof AnalysisCaseDefinition) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof AnalysisCaseDefinition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnalysisCaseUsage_resultExpression_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnalysisCaseUsage_resultExpression_SettingDelegate.java new file mode 100644 index 000000000..5b3da67fc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnalysisCaseUsage_resultExpression_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.AnalysisCaseUsage; +import org.omg.sysml.model.sysml.ResultExpressionMembership; + +/** + * Generated setting delegate for {@code AnalysisCaseUsage.resultExpression}. + */ +public class AnalysisCaseUsage_resultExpression_SettingDelegate extends AbstractSettingDelegate { + + public AnalysisCaseUsage_resultExpression_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AnalysisCaseUsage.resultExpression"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAnalysisCaseUsageResultExpression + * resultExpression = + * let results : OrderedSet(ResultExpressionMembership) = + * featureMembersip-> + * selectByKind(ResultExpressionMembership) in + * if results->isEmpty() then null + * else results->first().ownedResultExpression + * endif + */ + Object result = null; + if (owner instanceof AnalysisCaseUsage self) { + for (var featureMembership : self.getFeatureMembership()) { + if (featureMembership instanceof ResultExpressionMembership resultExpressionMembership) { + result = resultExpressionMembership.getOwnedResultExpression(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_annotatedElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_annotatedElement_SettingDelegate.java new file mode 100644 index 000000000..e6dd1985e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_annotatedElement_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated setting delegate for {@code AnnotatingElement.annotatedElement}. + */ +public class AnnotatingElement_annotatedElement_SettingDelegate extends AbstractSettingDelegate { + + public AnnotatingElement_annotatedElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AnnotatingElement.annotatedElement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAnnotatingElementAnnotatedElement + * annotatedElement = + * if annotation->notEmpty() then annotation.annotatedElement + * else Sequence{owningNamespace} endif + */ + var result = new BasicEList(); + if (owner instanceof AnnotatingElement self) { + var annotation = self.getAnnotation(); + if (!annotation.isEmpty()) { + for (var item : annotation) { + if (item.getAnnotatedElement() != null) { + result.add(item.getAnnotatedElement()); + } + } + } else if (self.getOwningNamespace() != null) { + result.add(self.getOwningNamespace()); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_annotation_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_annotation_SettingDelegate.java new file mode 100644 index 000000000..100a7b6d4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_annotation_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; + +/** + * Generated setting delegate for {@code AnnotatingElement.annotation}. + */ +public class AnnotatingElement_annotation_SettingDelegate extends AbstractSettingDelegate { + + public AnnotatingElement_annotation_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AnnotatingElement.annotation"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAnnotatingElementAnnotation + * annotation = + * if owningAnnotatingRelationship = null then ownedAnnotatingRelationship + * else owningAnnotatingRelationship->prepend(owningAnnotatingRelationship) + * endif + */ + var result = new BasicEList(); + if (owner instanceof AnnotatingElement self) { + var owningAnnotatingRelationship = self.getOwningAnnotatingRelationship(); + if (owningAnnotatingRelationship == null) { + result.addAll(self.getOwnedAnnotatingRelationship()); + } else { + result.add(owningAnnotatingRelationship); + result.addAll(self.getOwnedAnnotatingRelationship()); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_ownedAnnotatingRelationship_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_ownedAnnotatingRelationship_SettingDelegate.java new file mode 100644 index 000000000..4cc82cf61 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_ownedAnnotatingRelationship_SettingDelegate.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; + +/** + * Generated setting delegate for {@code AnnotatingElement.ownedAnnotatingRelationship}. + */ +public class AnnotatingElement_ownedAnnotatingRelationship_SettingDelegate extends AbstractSettingDelegate { + + public AnnotatingElement_ownedAnnotatingRelationship_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AnnotatingElement.ownedAnnotatingRelationship"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAnnotatingElementOwnedAnnotatingRelationship + * ownedAnnotatingRelationship = ownedRelationship-> + * selectByKind(Annotation)-> + * select(a | a.annotatedElement <> self) + */ + var result = new BasicEList(); + if (owner instanceof AnnotatingElement self) { + for (var relationship : self.getOwnedRelationship()) { + if (relationship instanceof Annotation annotation && annotation.getAnnotatedElement() != self) { + result.add(annotation); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_owningAnnotatingRelationship_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_owningAnnotatingRelationship_SettingDelegate.java new file mode 100644 index 000000000..862b7c1a9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AnnotatingElement_owningAnnotatingRelationship_SettingDelegate.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code AnnotatingElement.owningAnnotatingRelationship}. + */ +public class AnnotatingElement_owningAnnotatingRelationship_SettingDelegate extends AbstractSettingDelegate { + + public AnnotatingElement_owningAnnotatingRelationship_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AnnotatingElement.owningAnnotatingRelationship"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for AnnotatingElement.owningAnnotatingRelationship + * subsets Element.owningRelationship + * subsets AnnotatingElement.annotation (ignored: derived source, cardinality mismatch) + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getElement_OwningRelationship(), resolve); + if (candidate instanceof Annotation) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_annotatingElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_annotatingElement_SettingDelegate.java new file mode 100644 index 000000000..716d8850e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_annotatingElement_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Annotation; + +/** + * Generated setting delegate for {@code Annotation.annotatingElement}. + */ +public class Annotation_annotatingElement_SettingDelegate extends AbstractSettingDelegate { + + public Annotation_annotatingElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Annotation.annotatingElement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAnnotationAnnotatingElement + * annotatingElement = + * if ownedAnnotatingElement <> null then ownedAnnotatingElement + * else owningAnnotatingElement + * endif + */ + Object result = null; + if (owner instanceof Annotation self) { + result = self.getOwnedAnnotatingElement() != null + ? self.getOwnedAnnotatingElement() + : self.getOwningAnnotatingElement(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_ownedAnnotatingElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_ownedAnnotatingElement_SettingDelegate.java new file mode 100644 index 000000000..eb609fd8f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_ownedAnnotatingElement_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; + +/** + * Generated setting delegate for {@code Annotation.ownedAnnotatingElement}. + */ +public class Annotation_ownedAnnotatingElement_SettingDelegate extends AbstractSettingDelegate { + + public Annotation_ownedAnnotatingElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Annotation.ownedAnnotatingElement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAnnotationOwnedAnnotatingElement + * ownedAnnotatingElement = + * let ownedAnnotatingElements : Sequence(AnnotatingElement) = + * ownedRelatedElement->selectByKind(AnnotatingElement) in + * if ownedAnnotatingElements->isEmpty() then null + * else ownedAnnotatingElements->first() + * endif + */ + Object result = null; + if (owner instanceof Annotation self) { + for (var ownedRelatedElement : self.getOwnedRelatedElement()) { + if (ownedRelatedElement instanceof AnnotatingElement annotatingElement) { + result = annotatingElement; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_owningAnnotatedElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_owningAnnotatedElement_SettingDelegate.java new file mode 100644 index 000000000..8bb71f188 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_owningAnnotatedElement_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Annotation.owningAnnotatedElement}. + */ +public class Annotation_owningAnnotatedElement_SettingDelegate extends AbstractSettingDelegate { + + public Annotation_owningAnnotatedElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Annotation.owningAnnotatedElement"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Annotation.owningAnnotatedElement + * subsets Annotation.annotatedElement + * subsets Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getAnnotation_AnnotatedElement(), resolve); + if (candidate0 instanceof Element) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate1 instanceof Element) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_owningAnnotatingElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_owningAnnotatingElement_SettingDelegate.java new file mode 100644 index 000000000..1cf156103 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Annotation_owningAnnotatingElement_SettingDelegate.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Annotation.owningAnnotatingElement}. + */ +public class Annotation_owningAnnotatingElement_SettingDelegate extends AbstractSettingDelegate { + + public Annotation_owningAnnotatingElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Annotation.owningAnnotatingElement"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Annotation.owningAnnotatingElement + * subsets Relationship.owningRelatedElement + * subsets Annotation.annotatingElement (ignored: derived source) + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate instanceof AnnotatingElement) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssertConstraintUsage_assertedConstraint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssertConstraintUsage_assertedConstraint_SettingDelegate.java new file mode 100644 index 000000000..ce644da0c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssertConstraintUsage_assertedConstraint_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.AssertConstraintUsage; +import org.omg.sysml.model.sysml.ConstraintUsage; + +/** + * Generated setting delegate for {@code AssertConstraintUsage.assertedConstraint}. + */ +public class AssertConstraintUsage_assertedConstraint_SettingDelegate extends AbstractSettingDelegate { + + public AssertConstraintUsage_assertedConstraint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AssertConstraintUsage.assertedConstraint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAssertConstraintUsageAssertedConstraint + * assertedConstraint = + * if referencedFeatureTarget() = null then self + * else if referencedFeatureTarget().oclIsKindOf(ConstraintUsage) then + * referencedFeatureTarget().oclAsType(ConstraintUsage) + * else null + * endif endif + */ + Object result = null; + if (owner instanceof AssertConstraintUsage self) { + var referencedFeatureTarget = self.referencedFeatureTarget(); + if (referencedFeatureTarget == null) { + result = self; + } else if (referencedFeatureTarget instanceof ConstraintUsage constraintUsage) { + result = constraintUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssignmentActionUsage_referent_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssignmentActionUsage_referent_SettingDelegate.java new file mode 100644 index 000000000..3c1e43643 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssignmentActionUsage_referent_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.AssignmentActionUsage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureMembership; + +/** + * Generated setting delegate for {@code AssignmentActionUsage.referent}. + */ +public class AssignmentActionUsage_referent_SettingDelegate extends AbstractSettingDelegate { + + public AssignmentActionUsage_referent_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AssignmentActionUsage.referent"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAssignmentActionUsageReferent + * referent = + * let unownedFeatures : Sequence(Feature) = ownedMembership-> + * reject(oclIsKindOf(FeatureMembership)).memberElement-> + * selectByKind(Feature) in + * if unownedFeatures->isEmpty() then null + * else unownedFeatures->first().oclAsType(Feature) + * endif + */ + Feature result = null; + if (owner instanceof AssignmentActionUsage self) { + for (var membership : self.getOwnedMembership()) { + if (!(membership instanceof FeatureMembership) && membership.getMemberElement() instanceof Feature feature) { + result = feature; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssignmentActionUsage_targetArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssignmentActionUsage_targetArgument_SettingDelegate.java new file mode 100644 index 000000000..af409747d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssignmentActionUsage_targetArgument_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.AssignmentActionUsage; + +/** + * Generated setting delegate for {@code AssignmentActionUsage.targetArgument}. + */ +public class AssignmentActionUsage_targetArgument_SettingDelegate extends AbstractSettingDelegate { + + public AssignmentActionUsage_targetArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AssignmentActionUsage.targetArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAssignmentUsageTargetArgument + * targetArgument = argument(1) + */ + Object result = null; + if (owner instanceof AssignmentActionUsage self) { + result = self.argument(1); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssignmentActionUsage_valueExpression_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssignmentActionUsage_valueExpression_SettingDelegate.java new file mode 100644 index 000000000..b6658aaf6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AssignmentActionUsage_valueExpression_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.AssignmentActionUsage; + +/** + * Generated setting delegate for {@code AssignmentActionUsage.valueExpression}. + */ +public class AssignmentActionUsage_valueExpression_SettingDelegate extends AbstractSettingDelegate { + + public AssignmentActionUsage_valueExpression_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AssignmentActionUsage.valueExpression"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAssignmentActionUsageValueExpression + * valueExpression = argument(2) + */ + Object result = null; + if (owner instanceof AssignmentActionUsage self) { + result = self.argument(2); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_associationEnd_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_associationEnd_SettingDelegate.java new file mode 100644 index 000000000..42bee859a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_associationEnd_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Association.associationEnd}. + */ +public class Association_associationEnd_SettingDelegate extends AbstractSettingDelegate { + + public Association_associationEnd_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Association.associationEnd"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for Association.associationEnd + * inferred source Type.feature + * The features of the Association that identify the things that can be related by it. A concrete Association must have at least two associationEnds . When it has exactly two, the Association is called a binary Association . + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getType_Feature(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Feature) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Feature) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_relatedType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_relatedType_SettingDelegate.java new file mode 100644 index 000000000..b9f373d48 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_relatedType_SettingDelegate.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Association.relatedType}. + */ +public class Association_relatedType_SettingDelegate extends AbstractSettingDelegate { + + public Association_relatedType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Association.relatedType"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAssociationRelatedType + * relatedType = associationEnd.type + */ + var result = new BasicEList(); + if (owner instanceof Association self) { + for (var associationEnd : self.getAssociationEnd()) { + result.addAll(associationEnd.getType()); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_sourceType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_sourceType_SettingDelegate.java new file mode 100644 index 000000000..e5592d3f3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_sourceType_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Association; + +/** + * Generated setting delegate for {@code Association.sourceType}. + */ +public class Association_sourceType_SettingDelegate extends AbstractSettingDelegate { + + public Association_sourceType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Association.sourceType"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAssociationSourceType + * sourceType = + * if relatedType->isEmpty() then null + * else relatedType->first() endif + */ + Object result = null; + if (owner instanceof Association self && !self.getRelatedType().isEmpty()) { + result = self.getRelatedType().getFirst(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_targetType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_targetType_SettingDelegate.java new file mode 100644 index 000000000..3afc30330 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Association_targetType_SettingDelegate.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Association.targetType}. + */ +public class Association_targetType_SettingDelegate extends AbstractSettingDelegate { + + public Association_targetType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Association.targetType"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveAssociationTargetType + * targetType = + * if relatedType->size() < 2 then OrderedSet{} + * else + * relatedType-> + * subSequence(2, relatedType->size())-> + * asOrderedSet() + * endif + */ + var result = new BasicEList(); + if (owner instanceof Association self) { + var relatedType = self.getRelatedType(); + for (var i = 1; i < relatedType.size(); i++) { + var type = relatedType.get(i); + if (!result.contains(type)) { + result.add(type); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AttributeUsage_attributeDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AttributeUsage_attributeDefinition_SettingDelegate.java new file mode 100644 index 000000000..c37d22238 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AttributeUsage_attributeDefinition_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.DataType; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code AttributeUsage.attributeDefinition}. + */ +public class AttributeUsage_attributeDefinition_SettingDelegate extends AbstractSettingDelegate { + + public AttributeUsage_attributeDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AttributeUsage.attributeDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for AttributeUsage.attributeDefinition + * inferred source Feature.type + * The DataTypes that are the types of this AttributeUsage . Nominally, these are AttributeDefinitions , but other kinds of kernel DataTypes are also allowed, to permit use of DataTypes from the Kernel Model Libraries. + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof DataType) { + values.add(candidate); + } + } + } else if (sourceValue instanceof DataType) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AttributeUsage_isReference_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AttributeUsage_isReference_SettingDelegate.java new file mode 100644 index 000000000..59c69859d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/AttributeUsage_isReference_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code AttributeUsage.isReference}. + */ +public class AttributeUsage_isReference_SettingDelegate extends AbstractSettingDelegate { + + public AttributeUsage_isReference_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "AttributeUsage.isReference"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageIsReference + * isReference = not isComposite + */ + Object result = null; + if (owner instanceof Usage self) { + result = !self.isIsComposite(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Behavior_parameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Behavior_parameter_SettingDelegate.java new file mode 100644 index 000000000..b4181f4ac --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Behavior_parameter_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Behavior.parameter}. + */ +public class Behavior_parameter_SettingDelegate extends AbstractSettingDelegate { + + public Behavior_parameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Behavior.parameter"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for Behavior.parameter + * redefines Namespace.member + */ + var values = new BasicEList(); + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getNamespace_Member(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Feature) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Feature) { + values.add(sourceValue); + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Behavior_step_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Behavior_step_SettingDelegate.java new file mode 100644 index 000000000..b2c28a7d5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Behavior_step_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.Step; + +/** + * Generated setting delegate for {@code Behavior.step}. + */ +public class Behavior_step_SettingDelegate extends AbstractSettingDelegate { + + public Behavior_step_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Behavior.step"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveBehaviorStep + * step = feature->selectByKind(Step) + */ + var result = new BasicEList(); + if (owner instanceof Behavior self) { + for (var feature : self.getFeature()) { + if (feature instanceof Step step) { + result.add(step); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/BooleanExpression_predicate_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/BooleanExpression_predicate_SettingDelegate.java new file mode 100644 index 000000000..200b04eee --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/BooleanExpression_predicate_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code BooleanExpression.predicate}. + */ +public class BooleanExpression_predicate_SettingDelegate extends AbstractSettingDelegate { + + public BooleanExpression_predicate_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "BooleanExpression.predicate"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for BooleanExpression.predicate + * inferred source Feature.type + * The Predicate that types the Expression. + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Predicate) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof Predicate) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CalculationDefinition_calculation_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CalculationDefinition_calculation_SettingDelegate.java new file mode 100644 index 000000000..5379b9485 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CalculationDefinition_calculation_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.CalculationDefinition; +import org.omg.sysml.model.sysml.CalculationUsage; + +/** + * Generated setting delegate for {@code CalculationDefinition.calculation}. + */ +public class CalculationDefinition_calculation_SettingDelegate extends AbstractSettingDelegate { + + public CalculationDefinition_calculation_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "CalculationDefinition.calculation"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveCalculationUsageCalculation + * calculation = action->selectByKind(CalculationUsage) + */ + var result = new BasicEList(); + if (owner instanceof CalculationDefinition self) { + for (var action : self.getAction()) { + if (action instanceof CalculationUsage calculationUsage) { + result.add(calculationUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CalculationUsage_calculationDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CalculationUsage_calculationDefinition_SettingDelegate.java new file mode 100644 index 000000000..6b51ffaf8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CalculationUsage_calculationDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code CalculationUsage.calculationDefinition}. + */ +public class CalculationUsage_calculationDefinition_SettingDelegate extends AbstractSettingDelegate { + + public CalculationUsage_calculationDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "CalculationUsage.calculationDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for CalculationUsage.calculationDefinition + * inferred source Feature.type + * The Function that is the type of this CalculationUsage . Nominally, this would be a CalculationDefinition , but a kernel Function is also allowed, to permit use of Functions from the Kernel Model Libraries. + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Function) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof Function) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseDefinition_actorParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseDefinition_actorParameter_SettingDelegate.java new file mode 100644 index 000000000..d1c2e6488 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseDefinition_actorParameter_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ActorMembership; +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.PartUsage; + +/** + * Generated setting delegate for {@code CaseDefinition.actorParameter}. + */ +public class CaseDefinition_actorParameter_SettingDelegate extends AbstractSettingDelegate { + + public CaseDefinition_actorParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "CaseDefinition.actorParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveCaseDefinitionActorParameter + * actorParameter = featureMembership-> + * selectByKind(ActorMembership). + * ownedActorParameter + */ + var result = new BasicEList(); + if (owner instanceof CaseDefinition self) { + for (var featureMembership : self.getOwnedFeatureMembership()) { + if (featureMembership instanceof ActorMembership actorMembership + && actorMembership.getOwnedActorParameter() != null) { + result.add(actorMembership.getOwnedActorParameter()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseDefinition_objectiveRequirement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseDefinition_objectiveRequirement_SettingDelegate.java new file mode 100644 index 000000000..f37470f42 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseDefinition_objectiveRequirement_SettingDelegate.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.ObjectiveMembership; + +/** + * Generated setting delegate for {@code CaseDefinition.objectiveRequirement}. + */ +public class CaseDefinition_objectiveRequirement_SettingDelegate extends AbstractSettingDelegate { + + public CaseDefinition_objectiveRequirement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "CaseDefinition.objectiveRequirement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveCaseDefinitionObjectiveRequirement + * objectiveRequirement = + * let objectives: OrderedSet(RequirementUsage) = + * featureMembership-> + * selectByKind(ObjectiveMembership). + * ownedRequirement in + * if objectives->isEmpty() then null + * else objectives->first().ownedObjectiveRequirement + * endif + */ + Object result = null; + if (owner instanceof CaseDefinition self) { + for (var featureMembership : self.getFeatureMembership()) { + if (featureMembership instanceof ObjectiveMembership objectiveMembership + && objectiveMembership.getOwnedObjectiveRequirement() != null) { + result = objectiveMembership.getOwnedObjectiveRequirement(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseDefinition_subjectParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseDefinition_subjectParameter_SettingDelegate.java new file mode 100644 index 000000000..a1e2bf7c4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseDefinition_subjectParameter_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.SubjectMembership; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code CaseDefinition.subjectParameter}. + */ +public class CaseDefinition_subjectParameter_SettingDelegate extends AbstractSettingDelegate { + + public CaseDefinition_subjectParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "CaseDefinition.subjectParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveCaseDefinitionSubjectParameter + * subjectParameter = + * let subjectMems : OrderedSet(SubjectMembership) = + * featureMembership->selectByKind(SubjectMembership) in + * if subjectMems->isEmpty() then null + * else subjectMems->first().ownedSubjectParameter + * endif + */ + Usage result = null; + if (owner instanceof CaseDefinition self) { + for (var membership : self.getOwnedFeatureMembership()) { + if (membership instanceof SubjectMembership subjectMembership) { + result = subjectMembership.getOwnedSubjectParameter(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_actorParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_actorParameter_SettingDelegate.java new file mode 100644 index 000000000..31304b801 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_actorParameter_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ActorMembership; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.PartUsage; + +/** + * Generated setting delegate for {@code CaseUsage.actorParameter}. + */ +public class CaseUsage_actorParameter_SettingDelegate extends AbstractSettingDelegate { + + public CaseUsage_actorParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "CaseUsage.actorParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveCaseUsageActorParameter + * actorParameter = featureMembership-> + * selectByKind(ActorMembership). + * ownedActorParameter + */ + var result = new BasicEList(); + if (owner instanceof CaseUsage self) { + for (var featureMembership : self.getFeatureMembership()) { + if (featureMembership instanceof ActorMembership actorMembership + && actorMembership.getOwnedActorParameter() != null) { + result.add(actorMembership.getOwnedActorParameter()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_caseDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_caseDefinition_SettingDelegate.java new file mode 100644 index 000000000..a32c9380e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_caseDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code CaseUsage.caseDefinition}. + */ +public class CaseUsage_caseDefinition_SettingDelegate extends AbstractSettingDelegate { + + public CaseUsage_caseDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "CaseUsage.caseDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for CaseUsage.caseDefinition + * inferred source Feature.type + * The CaseDefinition that is the type of this CaseUsage. + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof CaseDefinition) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof CaseDefinition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_objectiveRequirement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_objectiveRequirement_SettingDelegate.java new file mode 100644 index 000000000..b8481eaf7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_objectiveRequirement_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.ObjectiveMembership; + +/** + * Generated setting delegate for {@code CaseUsage.objectiveRequirement}. + */ +public class CaseUsage_objectiveRequirement_SettingDelegate extends AbstractSettingDelegate { + + public CaseUsage_objectiveRequirement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "CaseUsage.objectiveRequirement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveCaseUsageObjectiveRequirement + * objectiveRequirement = + * let objectives: OrderedSet(RequirementUsage) = + * featureMembership-> + * selectByKind(ObjectiveMembership). + * ownedRequirement in + * if objectives->isEmpty() then null + * else objectives->first().ownedObjectiveRequirement + * endif + */ + Object result = null; + if (owner instanceof CaseUsage self) { + for (var featureMembership : self.getFeatureMembership()) { + if (featureMembership instanceof ObjectiveMembership objectiveMembership) { + result = objectiveMembership.getOwnedObjectiveRequirement(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_subjectParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_subjectParameter_SettingDelegate.java new file mode 100644 index 000000000..a53fd27d1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CaseUsage_subjectParameter_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.SubjectMembership; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code CaseUsage.subjectParameter}. + */ +public class CaseUsage_subjectParameter_SettingDelegate extends AbstractSettingDelegate { + + public CaseUsage_subjectParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "CaseUsage.subjectParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveCaseUsageSubjectParameter + * subjectParameter = + * let subjects : OrderedSet(SubjectMembership) = + * featureMembership->selectByKind(SubjectMembership) in + * if subjects->isEmpty() then null + * else subjects->first().ownedSubjectParameter + * endif + */ + Usage result = null; + if (owner instanceof CaseUsage self) { + for (var featureMembership : self.getOwnedFeatureMembership()) { + if (featureMembership instanceof SubjectMembership subjectMembership) { + result = subjectMembership.getOwnedSubjectParameter(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Classifier_ownedSubclassification_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Classifier_ownedSubclassification_SettingDelegate.java new file mode 100644 index 000000000..87154ed0c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Classifier_ownedSubclassification_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.Subclassification; + +/** + * Generated setting delegate for {@code Classifier.ownedSubclassification}. + */ +public class Classifier_ownedSubclassification_SettingDelegate extends AbstractSettingDelegate { + + public Classifier_ownedSubclassification_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Classifier.ownedSubclassification"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveClassifierOwnedSubclassification + * ownedSubclassification = + * ownedSpecialization->selectByKind(Subclassification) + */ + var result = new BasicEList(); + if (owner instanceof Classifier self) { + for (var ownedSpecialization : self.getOwnedSpecialization()) { + if (ownedSpecialization instanceof Subclassification subclassification) { + result.add(subclassification); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConcernUsage_concernDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConcernUsage_concernDefinition_SettingDelegate.java new file mode 100644 index 000000000..66c231878 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConcernUsage_concernDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ConcernDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ConcernUsage.concernDefinition}. + */ +public class ConcernUsage_concernDefinition_SettingDelegate extends AbstractSettingDelegate { + + public ConcernUsage_concernDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ConcernUsage.concernDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for ConcernUsage.concernDefinition + * inferred source Feature.type + * The ConcernDefinition that is the single type of this ConcernUsage. + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof ConcernDefinition) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof ConcernDefinition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConjugatedPortDefinition_originalPortDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConjugatedPortDefinition_originalPortDefinition_SettingDelegate.java new file mode 100644 index 000000000..62d8de521 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConjugatedPortDefinition_originalPortDefinition_SettingDelegate.java @@ -0,0 +1,55 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; + +/** + * Generated setting delegate for {@code ConjugatedPortDefinition.originalPortDefinition}. + */ +public class ConjugatedPortDefinition_originalPortDefinition_SettingDelegate extends AbstractSettingDelegate { + + public ConjugatedPortDefinition_originalPortDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ConjugatedPortDefinition.originalPortDefinition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + if (owner instanceof ConjugatedPortDefinition self) { + var ownedPortConjugator = self.getOwnedPortConjugator(); + if (ownedPortConjugator != null) { + return ownedPortConjugator.getOriginalPortDefinition(); + } + } + return super.get(owner, resolve, coreType); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConjugatedPortDefinition_ownedPortConjugator_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConjugatedPortDefinition_ownedPortConjugator_SettingDelegate.java new file mode 100644 index 000000000..38bed000d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConjugatedPortDefinition_ownedPortConjugator_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.PortConjugation; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; + +/** + * Generated setting delegate for {@code ConjugatedPortDefinition.ownedPortConjugator}. + */ +public class ConjugatedPortDefinition_ownedPortConjugator_SettingDelegate extends AbstractSettingDelegate { + + public ConjugatedPortDefinition_ownedPortConjugator_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ConjugatedPortDefinition.ownedPortConjugator"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + if (owner instanceof ConjugatedPortDefinition self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof PortConjugation value) { + return value; + } + } + } + return null; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConjugatedPortTyping_portDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConjugatedPortTyping_portDefinition_SettingDelegate.java new file mode 100644 index 000000000..55e1bb75d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConjugatedPortTyping_portDefinition_SettingDelegate.java @@ -0,0 +1,58 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ConjugatedPortTyping; +import org.omg.sysml.model.sysml.PortDefinition; + +/** + * Generated setting delegate for {@code ConjugatedPortTyping.portDefinition}. + */ +public class ConjugatedPortTyping_portDefinition_SettingDelegate extends AbstractSettingDelegate { + + public ConjugatedPortTyping_portDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ConjugatedPortTyping.portDefinition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveConjugatedPortTypingPortDefinition + * portDefinition = conjugatedPortDefinition.originalPortDefinition + */ + PortDefinition result = null; + if (owner instanceof ConjugatedPortTyping self && self.getConjugatedPortDefinition() != null) { + result = self.getConjugatedPortDefinition().getOriginalPortDefinition(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Conjugation_owningType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Conjugation_owningType_SettingDelegate.java new file mode 100644 index 000000000..d69545624 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Conjugation_owningType_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Conjugation.owningType}. + */ +public class Conjugation_owningType_SettingDelegate extends AbstractSettingDelegate { + + public Conjugation_owningType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Conjugation.owningType"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Conjugation.owningType + * subsets Conjugation.conjugatedType + * subsets Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getConjugation_ConjugatedType(), resolve); + if (candidate0 instanceof Type) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate1 instanceof Type) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConnectionDefinition_connectionEnd_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConnectionDefinition_connectionEnd_SettingDelegate.java new file mode 100644 index 000000000..cf70facd1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConnectionDefinition_connectionEnd_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ConnectionDefinition.connectionEnd}. + */ +public class ConnectionDefinition_connectionEnd_SettingDelegate extends AbstractSettingDelegate { + + public ConnectionDefinition_connectionEnd_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ConnectionDefinition.connectionEnd"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for ConnectionDefinition.connectionEnd + * inferred source Definition.usage + * The Usages that define the things related by the ConnectionDefinition . + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getDefinition_Usage(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Usage) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Usage) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConnectionUsage_connectionDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConnectionUsage_connectionDefinition_SettingDelegate.java new file mode 100644 index 000000000..e32e24162 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConnectionUsage_connectionDefinition_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AssociationStructure; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ConnectionUsage.connectionDefinition}. + */ +public class ConnectionUsage_connectionDefinition_SettingDelegate extends AbstractSettingDelegate { + + public ConnectionUsage_connectionDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ConnectionUsage.connectionDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for ConnectionUsage.connectionDefinition + * subsets ItemUsage.itemDefinition + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getItemUsage_ItemDefinition(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof AssociationStructure) { + values.add(candidate); + } + } + } else if (sourceValue instanceof AssociationStructure) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_association_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_association_SettingDelegate.java new file mode 100644 index 000000000..a4c68e283 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_association_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Connector.association}. + */ +public class Connector_association_SettingDelegate extends AbstractSettingDelegate { + + public Connector_association_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Connector.association"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for Connector.association + * inferred source Feature.type + * The Associations that type the Connector . + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Association) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Association) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_connectorEnd_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_connectorEnd_SettingDelegate.java new file mode 100644 index 000000000..cf19cad0f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_connectorEnd_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Connector.connectorEnd}. + */ +public class Connector_connectorEnd_SettingDelegate extends AbstractSettingDelegate { + + public Connector_connectorEnd_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Connector.connectorEnd"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for Connector.connectorEnd + * inferred source Type.feature + * The endFeatures of a Connector , which redefine the endFeatures of the associations of the Connector . The connectorEnds determine via ReferenceSubsetting Relationships which Features are related by the Connector . + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getType_Feature(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Feature) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Feature) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_defaultFeaturingType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_defaultFeaturingType_SettingDelegate.java new file mode 100644 index 000000000..a43926ac2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_defaultFeaturingType_SettingDelegate.java @@ -0,0 +1,104 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Connector; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Connector.defaultFeaturingType}. + */ +public class Connector_defaultFeaturingType_SettingDelegate extends AbstractSettingDelegate { + + public Connector_defaultFeaturingType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Connector.defaultFeaturingType"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveConnectorDefaultFeaturingType + * let commonFeaturingTypes : OrderedSet(Type) = + * relatedFeature->closure(featuringType)->select(t | + * relatedFeature->forAll(f | f.isFeaturedWithin(t)) + * ) in + * let nearestCommonFeaturingTypes : OrderedSet(Type) = + * commonFeaturingTypes->reject(t1 | + * commonFeaturingTypes->exists(t2 | + * t2 <> t1 and t2->closure(featuringType)->contains(t1) + * )) in + * if nearestCommonFeaturingTypes->isEmpty() then null + * else nearestCommonFeaturingTypes->first() + * endif + */ + Type result = null; + if (owner instanceof Connector self && !self.getRelatedFeature().isEmpty()) { + var candidateTypes = new BasicEList(); + for (var candidate : self.getRelatedFeature().getFirst().getFeaturingType()) { + if (!candidateTypes.contains(candidate)) { + candidateTypes.add(candidate); + } + } + var commonFeaturingTypes = new BasicEList(); + for (var candidateType : candidateTypes) { + var isCommon = true; + for (var relatedFeature : self.getRelatedFeature()) { + if (!relatedFeature.isFeaturedWithin(candidateType)) { + isCommon = false; + break; + } + } + if (isCommon) { + commonFeaturingTypes.add(candidateType); + } + } + var nearestCommonFeaturingTypes = new BasicEList(); + for (var commonType : commonFeaturingTypes) { + var hasMoreSpecificCommonType = false; + for (var otherCommonType : commonFeaturingTypes) { + if (otherCommonType != commonType && otherCommonType.specializes(commonType)) { + hasMoreSpecificCommonType = true; + break; + } + } + if (!hasMoreSpecificCommonType) { + nearestCommonFeaturingTypes.add(commonType); + } + } + if (!nearestCommonFeaturingTypes.isEmpty()) { + result = nearestCommonFeaturingTypes.getFirst(); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_relatedFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_relatedFeature_SettingDelegate.java new file mode 100644 index 000000000..b36ada6f9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_relatedFeature_SettingDelegate.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Connector; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated setting delegate for {@code Connector.relatedFeature}. + */ +public class Connector_relatedFeature_SettingDelegate extends AbstractSettingDelegate { + + public Connector_relatedFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Connector.relatedFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveConnectorRelatedFeature + * relatedFeature = connectorEnd.ownedReferenceSubsetting-> + * select(s | s <> null).subsettedFeature + */ + var result = new BasicEList(); + if (owner instanceof Connector self) { + for (var connectorEnd : self.getConnectorEnd()) { + var ownedReferenceSubsetting = connectorEnd.getOwnedReferenceSubsetting(); + if (ownedReferenceSubsetting != null && ownedReferenceSubsetting.getSubsettedFeature() != null) { + result.add(ownedReferenceSubsetting.getSubsettedFeature()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_sourceFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_sourceFeature_SettingDelegate.java new file mode 100644 index 000000000..f213a626c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_sourceFeature_SettingDelegate.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Connector; + +/** + * Generated setting delegate for {@code Connector.sourceFeature}. + */ +public class Connector_sourceFeature_SettingDelegate extends AbstractSettingDelegate { + + public Connector_sourceFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Connector.sourceFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveConnectorSourceFeature + * sourceFeature = + * if relatedFeature->isEmpty() then null + * else relatedFeature->first() + * endif + */ + Object result = null; + if (owner instanceof Connector self && !self.getRelatedFeature().isEmpty()) { + result = self.getRelatedFeature().getFirst(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_targetFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_targetFeature_SettingDelegate.java new file mode 100644 index 000000000..36c7d8f4f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Connector_targetFeature_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Connector; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated setting delegate for {@code Connector.targetFeature}. + */ +public class Connector_targetFeature_SettingDelegate extends AbstractSettingDelegate { + + public Connector_targetFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Connector.targetFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveConnectorTargetFeature + * targetFeature = + * if relatedFeature->size() < 2 then OrderedSet{} + * else + * relatedFeature-> + * subSequence(2, relatedFeature->size())-> + * asOrderedSet() + * endif + */ + var result = new BasicEList(); + if (owner instanceof Connector self) { + var relatedFeatures = self.getRelatedFeature(); + if (relatedFeatures.size() >= 2) { + for (var i = 1; i < relatedFeatures.size(); i++) { + var relatedFeature = relatedFeatures.get(i); + if (!result.contains(relatedFeature)) { + result.add(relatedFeature); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConstraintUsage_constraintDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConstraintUsage_constraintDefinition_SettingDelegate.java new file mode 100644 index 000000000..f9200d636 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ConstraintUsage_constraintDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ConstraintUsage.constraintDefinition}. + */ +public class ConstraintUsage_constraintDefinition_SettingDelegate extends AbstractSettingDelegate { + + public ConstraintUsage_constraintDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ConstraintUsage.constraintDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for ConstraintUsage.constraintDefinition + * inferred source Feature.type + * The (single) Predicate that is the type of this ConstraintUsage . Nominally, this will be a ConstraintDefinition , but other kinds of Predicates are also allowed, to permit use of Predicates from the Kernel Model Libraries. + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Predicate) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof Predicate) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CrossSubsetting_crossingFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CrossSubsetting_crossingFeature_SettingDelegate.java new file mode 100644 index 000000000..1ae533c39 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/CrossSubsetting_crossingFeature_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code CrossSubsetting.crossingFeature}. + */ +public class CrossSubsetting_crossingFeature_SettingDelegate extends AbstractSettingDelegate { + + public CrossSubsetting_crossingFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "CrossSubsetting.crossingFeature"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for CrossSubsetting.crossingFeature + * redefines Relationship.owningRelatedElement + * redefines Specialization.specific + * redefines Subsetting.subsettingFeature + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate0 instanceof Feature) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getSpecialization_Specific(), resolve); + if (candidate1 instanceof Feature) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + var candidate2 = owner.eGet(SysMLPackage.eINSTANCE.getSubsetting_SubsettingFeature(), resolve); + if (candidate2 instanceof Feature) { + resolvedValue = candidate2; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_directedUsage_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_directedUsage_SettingDelegate.java new file mode 100644 index 000000000..8dbf000c5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_directedUsage_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Definition.directedUsage}. + */ +public class Definition_directedUsage_SettingDelegate extends AbstractSettingDelegate { + + public Definition_directedUsage_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.directedUsage"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionDirectedUsage + * directedUsage = directedFeature->selectByKind(Usage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var directedFeature : self.getDirectedFeature()) { + if (directedFeature instanceof Usage usage) { + result.add(usage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAction_SettingDelegate.java new file mode 100644 index 000000000..009c3243b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAction_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Definition; + +/** + * Generated setting delegate for {@code Definition.ownedAction}. + */ +public class Definition_ownedAction_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedAction + * ownedAction = ownedUsage->selectByKind(ActionUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof ActionUsage actionUsage) { + result.add(actionUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAllocation_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAllocation_SettingDelegate.java new file mode 100644 index 000000000..b83ad8d0a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAllocation_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AllocationUsage; +import org.omg.sysml.model.sysml.Definition; + +/** + * Generated setting delegate for {@code Definition.ownedAllocation}. + */ +public class Definition_ownedAllocation_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedAllocation_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedAllocation"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedAllocation + * ownedAllocation = ownedUsage->selectByKind(AllocationUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof AllocationUsage allocationUsage) { + result.add(allocationUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAnalysisCase_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAnalysisCase_SettingDelegate.java new file mode 100644 index 000000000..8f70b0761 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAnalysisCase_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AnalysisCaseUsage; +import org.omg.sysml.model.sysml.Definition; + +/** + * Generated setting delegate for {@code Definition.ownedAnalysisCase}. + */ +public class Definition_ownedAnalysisCase_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedAnalysisCase_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedAnalysisCase"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedAnalysisCase + * ownedAnalysisCase = ownedUsage->selectByKind(AnalysisCaseUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof AnalysisCaseUsage analysisCaseUsage) { + result.add(analysisCaseUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAttribute_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAttribute_SettingDelegate.java new file mode 100644 index 000000000..a10b8d806 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedAttribute_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AttributeUsage; +import org.omg.sysml.model.sysml.Definition; + +/** + * Generated setting delegate for {@code Definition.ownedAttribute}. + */ +public class Definition_ownedAttribute_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedAttribute_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedAttribute"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedAttribute + * ownedAttribute = ownedUsage->selectByKind(AttributeUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof AttributeUsage attributeUsage) { + result.add(attributeUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedCalculation_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedCalculation_SettingDelegate.java new file mode 100644 index 000000000..fec4e8080 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedCalculation_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.Definition; + +/** + * Generated setting delegate for {@code Definition.ownedCalculation}. + */ +public class Definition_ownedCalculation_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedCalculation_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedCalculation"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedCalculation + * ownedCalculation = ownedUsage->selectByKind(CalculationUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof CalculationUsage calculationUsage) { + result.add(calculationUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedCase_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedCase_SettingDelegate.java new file mode 100644 index 000000000..93f7a59c4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedCase_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.Definition; + +/** + * Generated setting delegate for {@code Definition.ownedCase}. + */ +public class Definition_ownedCase_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedCase_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedCase"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedCase + * ownedCase = ownedUsage->selectByKind(CaseUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof CaseUsage caseUsage) { + result.add(caseUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedConcern_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedConcern_SettingDelegate.java new file mode 100644 index 000000000..34c197f9d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedConcern_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.Definition; + +/** + * Generated setting delegate for {@code Definition.ownedConcern}. + */ +public class Definition_ownedConcern_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedConcern_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedConcern"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedConcern + * ownedConcern = ownedUsage->selectByKind(ConcernUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof ConcernUsage concernUsage) { + result.add(concernUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedConnection_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedConnection_SettingDelegate.java new file mode 100644 index 000000000..9ca64a32d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedConnection_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConnectorAsUsage; +import org.omg.sysml.model.sysml.Definition; + +/** + * Generated setting delegate for {@code Definition.ownedConnection}. + */ +public class Definition_ownedConnection_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedConnection_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedConnection"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedConnection + * ownedConnection = ownedUsage->selectByKind(ConnectorAsUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof ConnectorAsUsage connectorAsUsage) { + result.add(connectorAsUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedConstraint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedConstraint_SettingDelegate.java new file mode 100644 index 000000000..22f83a717 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedConstraint_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.Definition; + +/** + * Generated setting delegate for {@code Definition.ownedConstraint}. + */ +public class Definition_ownedConstraint_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedConstraint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedConstraint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedConstraint + * ownedConstraint = ownedUsage->selectByKind(ConstraintUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof ConstraintUsage constraintUsage) { + result.add(constraintUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedEnumeration_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedEnumeration_SettingDelegate.java new file mode 100644 index 000000000..1f3e2d676 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedEnumeration_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.EnumerationUsage; + +/** + * Generated setting delegate for {@code Definition.ownedEnumeration}. + */ +public class Definition_ownedEnumeration_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedEnumeration_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedEnumeration"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedEnumeration + * ownedEnumeration = ownedUsage->selectByKind(EnumerationUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof EnumerationUsage enumerationUsage) { + result.add(enumerationUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedFlow_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedFlow_SettingDelegate.java new file mode 100644 index 000000000..1eba503f3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedFlow_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.FlowUsage; + +/** + * Generated setting delegate for {@code Definition.ownedFlow}. + */ +public class Definition_ownedFlow_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedFlow_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedFlow"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedFlow + * ownedFlow = ownedUsage->selectByKind(FlowConnectionUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof FlowUsage flowUsage) { + result.add(flowUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedInterface_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedInterface_SettingDelegate.java new file mode 100644 index 000000000..ef03e32b9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedInterface_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.ReferenceUsage; + +/** + * Generated setting delegate for {@code Definition.ownedInterface}. + */ +public class Definition_ownedInterface_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedInterface_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedInterface"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedInterface + * ownedInterface = ownedUsage->selectByKind(ReferenceUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof ReferenceUsage referenceUsage) { + result.add(referenceUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedItem_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedItem_SettingDelegate.java new file mode 100644 index 000000000..9ea52b22d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedItem_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.ItemUsage; + +/** + * Generated setting delegate for {@code Definition.ownedItem}. + */ +public class Definition_ownedItem_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedItem_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedItem"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedItem + * ownedItem = ownedUsage->selectByKind(ItemUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof ItemUsage itemUsage) { + result.add(itemUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedMetadata_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedMetadata_SettingDelegate.java new file mode 100644 index 000000000..713d298af --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedMetadata_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.MetadataUsage; + +/** + * Generated setting delegate for {@code Definition.ownedMetadata}. + */ +public class Definition_ownedMetadata_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedMetadata_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedMetadata"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedMetadata + * ownedMetadata = ownedUsage->selectByKind(MetadataUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof MetadataUsage metadataUsage) { + result.add(metadataUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedOccurrence_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedOccurrence_SettingDelegate.java new file mode 100644 index 000000000..2773a921e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedOccurrence_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.OccurrenceUsage; + +/** + * Generated setting delegate for {@code Definition.ownedOccurrence}. + */ +public class Definition_ownedOccurrence_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedOccurrence_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedOccurrence"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedOccurrence + * ownedOccurrence = ownedUsage->selectByKind(OccurrenceUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof OccurrenceUsage occurrenceUsage) { + result.add(occurrenceUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedPart_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedPart_SettingDelegate.java new file mode 100644 index 000000000..7d5e8f691 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedPart_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.PartUsage; + +/** + * Generated setting delegate for {@code Definition.ownedPart}. + */ +public class Definition_ownedPart_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedPart_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedPart"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedPart + * ownedPart = ownedUsage->selectByKind(PartUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof PartUsage partUsage) { + result.add(partUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedPort_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedPort_SettingDelegate.java new file mode 100644 index 000000000..86947f2e7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedPort_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.PortUsage; + +/** + * Generated setting delegate for {@code Definition.ownedPort}. + */ +public class Definition_ownedPort_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedPort_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedPort"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedPort + * ownedPort = ownedUsage->selectByKind(PortUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof PortUsage portUsage) { + result.add(portUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedReference_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedReference_SettingDelegate.java new file mode 100644 index 000000000..ee6d82469 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedReference_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.ReferenceUsage; + +/** + * Generated setting delegate for {@code Definition.ownedReference}. + */ +public class Definition_ownedReference_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedReference_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedReference"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedReference + * ownedReference = ownedUsage->selectByKind(ReferenceUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof ReferenceUsage referenceUsage) { + result.add(referenceUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedRendering_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedRendering_SettingDelegate.java new file mode 100644 index 000000000..9badd924f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedRendering_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.RenderingUsage; + +/** + * Generated setting delegate for {@code Definition.ownedRendering}. + */ +public class Definition_ownedRendering_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedRendering_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedRendering"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedRendering + * ownedRendering = ownedUsage->selectByKind(RenderingUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof RenderingUsage renderingUsage) { + result.add(renderingUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedRequirement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedRequirement_SettingDelegate.java new file mode 100644 index 000000000..4b680c5cd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedRequirement_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.RequirementUsage; + +/** + * Generated setting delegate for {@code Definition.ownedRequirement}. + */ +public class Definition_ownedRequirement_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedRequirement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedRequirement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedRequirement + * ownedRequirement = ownedUsage->selectByKind(RequirementUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof RequirementUsage requirementUsage) { + result.add(requirementUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedState_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedState_SettingDelegate.java new file mode 100644 index 000000000..30b8895a8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedState_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.StateUsage; + +/** + * Generated setting delegate for {@code Definition.ownedState}. + */ +public class Definition_ownedState_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedState_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedState"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedState + * ownedState = ownedUsage->selectByKind(StateUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof StateUsage stateUsage) { + result.add(stateUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedTransition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedTransition_SettingDelegate.java new file mode 100644 index 000000000..92739219f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedTransition_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * Generated setting delegate for {@code Definition.ownedTransition}. + */ +public class Definition_ownedTransition_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedTransition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedTransition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedTransition + * ownedTransition = ownedUsage->selectByKind(TransitionUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof TransitionUsage transitionUsage) { + result.add(transitionUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedUsage_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedUsage_SettingDelegate.java new file mode 100644 index 000000000..82e63c211 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedUsage_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Definition.ownedUsage}. + */ +public class Definition_ownedUsage_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedUsage_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedUsage"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedUsage + * ownedUsage = ownedFeature->selectByKind(Usage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedFeature : self.getOwnedFeature()) { + if (ownedFeature instanceof Usage usage) { + result.add(usage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedUseCase_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedUseCase_SettingDelegate.java new file mode 100644 index 000000000..ab63a90dc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedUseCase_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.UseCaseUsage; + +/** + * Generated setting delegate for {@code Definition.ownedUseCase}. + */ +public class Definition_ownedUseCase_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedUseCase_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedUseCase"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedUseCase + * ownedUseCase = ownedUsage->selectByKind(UseCaseUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof UseCaseUsage useCaseUsage) { + result.add(useCaseUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedVerificationCase_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedVerificationCase_SettingDelegate.java new file mode 100644 index 000000000..7a4130d1b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedVerificationCase_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.VerificationCaseUsage; + +/** + * Generated setting delegate for {@code Definition.ownedVerificationCase}. + */ +public class Definition_ownedVerificationCase_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedVerificationCase_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedVerificationCase"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedVerificationCase + * ownedVerificationCase = ownedUsage->selectByKind(VerificationCaseUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof VerificationCaseUsage verificationCaseUsage) { + result.add(verificationCaseUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedView_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedView_SettingDelegate.java new file mode 100644 index 000000000..8a9d47773 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedView_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.ViewUsage; + +/** + * Generated setting delegate for {@code Definition.ownedView}. + */ +public class Definition_ownedView_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedView_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedView"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedView + * ownedView = ownedUsage->selectByKind(ViewUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof ViewUsage viewUsage) { + result.add(viewUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedViewpoint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedViewpoint_SettingDelegate.java new file mode 100644 index 000000000..a2ddf6b49 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_ownedViewpoint_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * Generated setting delegate for {@code Definition.ownedViewpoint}. + */ +public class Definition_ownedViewpoint_SettingDelegate extends AbstractSettingDelegate { + + public Definition_ownedViewpoint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.ownedViewpoint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionOwnedViewpoint + * ownedViewpoint = ownedUsage->selectByKind(ViewpointUsage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedUsage : self.getOwnedUsage()) { + if (ownedUsage instanceof ViewpointUsage viewpointUsage) { + result.add(viewpointUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_usage_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_usage_SettingDelegate.java new file mode 100644 index 000000000..d960a8f80 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_usage_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Definition.usage}. + */ +public class Definition_usage_SettingDelegate extends AbstractSettingDelegate { + + public Definition_usage_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.usage"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionUsage + * usage = feature->selectByKind(Usage) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var feature : self.getFeature()) { + if (feature instanceof Usage usage) { + result.add(usage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_variantMembership_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_variantMembership_SettingDelegate.java new file mode 100644 index 000000000..e20f7a8bf --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_variantMembership_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.VariantMembership; + +/** + * Generated setting delegate for {@code Definition.variantMembership}. + */ +public class Definition_variantMembership_SettingDelegate extends AbstractSettingDelegate { + + public Definition_variantMembership_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.variantMembership"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionVariantMembership + * variantMembership = ownedMembership->selectByKind(VariantMembership) + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof VariantMembership variantMembership) { + result.add(variantMembership); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_variant_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_variant_SettingDelegate.java new file mode 100644 index 000000000..b8f063cc2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Definition_variant_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Definition.variant}. + */ +public class Definition_variant_SettingDelegate extends AbstractSettingDelegate { + + public Definition_variant_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Definition.variant"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveDefinitionVariant + * variant = variantMembership.ownedVariantUsage + */ + var result = new BasicEList(); + if (owner instanceof Definition self) { + for (var variantMembership : self.getVariantMembership()) { + var ownedVariantUsage = variantMembership.getOwnedVariantUsage(); + if (ownedVariantUsage != null) { + result.add(ownedVariantUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Differencing_typeDifferenced_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Differencing_typeDifferenced_SettingDelegate.java new file mode 100644 index 000000000..dcde15a37 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Differencing_typeDifferenced_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Differencing.typeDifferenced}. + */ +public class Differencing_typeDifferenced_SettingDelegate extends AbstractSettingDelegate { + + public Differencing_typeDifferenced_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Differencing.typeDifferenced"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Differencing.typeDifferenced + * subsets Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate instanceof Type) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Disjoining_owningType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Disjoining_owningType_SettingDelegate.java new file mode 100644 index 000000000..8ea809d48 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Disjoining_owningType_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Disjoining.owningType}. + */ +public class Disjoining_owningType_SettingDelegate extends AbstractSettingDelegate { + + public Disjoining_owningType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Disjoining.owningType"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Disjoining.owningType + * subsets Relationship.owningRelatedElement + * subsets Disjoining.typeDisjoined + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate0 instanceof Type) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getDisjoining_TypeDisjoined(), resolve); + if (candidate1 instanceof Type) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Documentation_documentedElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Documentation_documentedElement_SettingDelegate.java new file mode 100644 index 000000000..7a387b650 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Documentation_documentedElement_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Documentation.documentedElement}. + */ +public class Documentation_documentedElement_SettingDelegate extends AbstractSettingDelegate { + + public Documentation_documentedElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Documentation.documentedElement"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Documentation.documentedElement + * subsets Element.owner + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getElement_Owner(), resolve); + if (candidate instanceof Element) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ElementFilterMembership_condition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ElementFilterMembership_condition_SettingDelegate.java new file mode 100644 index 000000000..886903b1b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ElementFilterMembership_condition_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ElementFilterMembership.condition}. + */ +public class ElementFilterMembership_condition_SettingDelegate extends AbstractSettingDelegate { + + public ElementFilterMembership_condition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ElementFilterMembership.condition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for ElementFilterMembership.condition + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof Expression) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Expression) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof Expression) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_documentation_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_documentation_SettingDelegate.java new file mode 100644 index 000000000..f90ca43d2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_documentation_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Documentation; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated setting delegate for {@code Element.documentation}. + */ +public class Element_documentation_SettingDelegate extends AbstractSettingDelegate { + + public Element_documentation_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.documentation"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveElementDocumentation + * documentation = ownedElement->selectByKind(Documentation) + */ + var result = new BasicEList(); + if (owner instanceof Element self) { + for (var ownedElement : self.getOwnedElement()) { + if (ownedElement instanceof Documentation documentation) { + result.add(documentation); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_isLibraryElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_isLibraryElement_SettingDelegate.java new file mode 100644 index 000000000..bd9c44373 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_isLibraryElement_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated setting delegate for {@code Element.isLibraryElement}. + */ +public class Element_isLibraryElement_SettingDelegate extends AbstractSettingDelegate { + + public Element_isLibraryElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.isLibraryElement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveElementIsLibraryElement + * isLibraryElement = libraryNamespace() <> null + */ + Object result = Boolean.FALSE; + if (owner instanceof Element self) { + result = Boolean.valueOf(self.libraryNamespace() != null); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_name_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_name_SettingDelegate.java new file mode 100644 index 000000000..d5b0cd228 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_name_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated setting delegate for {@code Element.name}. + */ +public class Element_name_SettingDelegate extends AbstractSettingDelegate { + + public Element_name_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.name"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveElementName + * name = effectiveName() + */ + Object result = null; + if (owner instanceof Element self) { + result = self.effectiveName(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_ownedAnnotation_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_ownedAnnotation_SettingDelegate.java new file mode 100644 index 000000000..85c7bf648 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_ownedAnnotation_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated setting delegate for {@code Element.ownedAnnotation}. + */ +public class Element_ownedAnnotation_SettingDelegate extends AbstractSettingDelegate { + + public Element_ownedAnnotation_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.ownedAnnotation"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveElementOwnedAnnotation + * ownedAnnotation = ownedRelationship-> + * selectByKind(Annotation)-> + * select(a | a.annotatedElement = self) + */ + var result = new BasicEList(); + if (owner instanceof Element self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof Annotation annotation + && annotation.getAnnotatedElement() == self) { + result.add(annotation); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_ownedElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_ownedElement_SettingDelegate.java new file mode 100644 index 000000000..fe536e849 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_ownedElement_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated setting delegate for {@code Element.ownedElement}. + */ +public class Element_ownedElement_SettingDelegate extends AbstractSettingDelegate { + + public Element_ownedElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.ownedElement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveElementOwnedElement + * ownedElement = ownedRelationship.ownedRelatedElement + */ + var result = new BasicEList(); + if (owner instanceof Element self) { + for (var relationship : self.getOwnedRelationship()) { + for (var ownedRelatedElement : relationship.getOwnedRelatedElement()) { + result.add(ownedRelatedElement); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_owner_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_owner_SettingDelegate.java new file mode 100644 index 000000000..599ac83fa --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_owner_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated setting delegate for {@code Element.owner}. + */ +public class Element_owner_SettingDelegate extends AbstractSettingDelegate { + + public Element_owner_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.owner"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveElementOwner + * owner = owningRelationship.owningRelatedElement + */ + Object result = null; + if (owner instanceof Element self && self.getOwningRelationship() != null) { + result = self.getOwningRelationship().getOwningRelatedElement(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_owningMembership_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_owningMembership_SettingDelegate.java new file mode 100644 index 000000000..ba292c775 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_owningMembership_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.OwningMembership; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Element.owningMembership}. + */ +public class Element_owningMembership_SettingDelegate extends AbstractSettingDelegate { + + public Element_owningMembership_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.owningMembership"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Element.owningMembership + * subsets Element.owningRelationship + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getElement_OwningRelationship(), resolve); + if (candidate instanceof OwningMembership) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_owningNamespace_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_owningNamespace_SettingDelegate.java new file mode 100644 index 000000000..f03455af4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_owningNamespace_SettingDelegate.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated setting delegate for {@code Element.owningNamespace}. + */ +public class Element_owningNamespace_SettingDelegate extends AbstractSettingDelegate { + + public Element_owningNamespace_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.owningNamespace"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveOwningNamespace + * owningNamespace = + * if owningMembership = null then null + * else owningMembership.membershipOwningNamespace + * endif + */ + Object result = null; + if (owner instanceof Element self && self.getOwningMembership() != null) { + result = self.getOwningMembership().getMembershipOwningNamespace(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_qualifiedName_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_qualifiedName_SettingDelegate.java new file mode 100644 index 000000000..ed3889727 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_qualifiedName_SettingDelegate.java @@ -0,0 +1,96 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated setting delegate for {@code Element.qualifiedName}. + */ +public class Element_qualifiedName_SettingDelegate extends AbstractSettingDelegate { + + public Element_qualifiedName_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.qualifiedName"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveElementQualifiedName + * qualifiedName = + * if owningNamespace = null then null + * else if name <> null and + * owningNamespace.ownedMember-> + * select(m | m.name = name).indexOf(self) <> 1 then null + * else if owningNamespace.owner = null then escapedName() + * else if owningNamespace.qualifiedName = null or + * escapedName() = null then null + * else owningNamespace.qualifiedName + '::' + escapedName() + * endif endif endif endif + */ + String result = null; + if (owner instanceof Element self) { + var owningNamespace = self.getOwningNamespace(); + if (owningNamespace != null) { + var name = self.getName(); + var duplicateName = false; + if (name != null) { + var matchingIndex = 0; + var foundSelf = false; + for (var member : owningNamespace.getOwnedMember()) { + if (name.equals(member.getName())) { + matchingIndex++; + if (member == self) { + foundSelf = true; + break; + } + } + } + duplicateName = !foundSelf || matchingIndex != 1; + } + + if (!duplicateName) { + if (owningNamespace.getOwner() == null) { + result = self.escapedName(); + } else { + var owningNamespaceQualifiedName = owningNamespace.getQualifiedName(); + var escapedName = self.escapedName(); + if (owningNamespaceQualifiedName != null && escapedName != null) { + result = owningNamespaceQualifiedName + "::" + escapedName; + } + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_shortName_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_shortName_SettingDelegate.java new file mode 100644 index 000000000..f1f0327d8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_shortName_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Element; + +/** + * Generated setting delegate for {@code Element.shortName}. + */ +public class Element_shortName_SettingDelegate extends AbstractSettingDelegate { + + public Element_shortName_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.shortName"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveElementShortName + * shortName = effectiveShortName() + */ + Object result = null; + if (owner instanceof Element self) { + result = self.effectiveShortName(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_textualRepresentation_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_textualRepresentation_SettingDelegate.java new file mode 100644 index 000000000..dd90086f5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Element_textualRepresentation_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.TextualRepresentation; + +/** + * Generated setting delegate for {@code Element.textualRepresentation}. + */ +public class Element_textualRepresentation_SettingDelegate extends AbstractSettingDelegate { + + public Element_textualRepresentation_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Element.textualRepresentation"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveElementTextualRepresentation + * textualRepresentation = ownedElement->selectByKind(TextualRepresentation) + */ + var result = new BasicEList(); + if (owner instanceof Element self) { + for (var ownedElement : self.getOwnedElement()) { + if (ownedElement instanceof TextualRepresentation textualRepresentation) { + result.add(textualRepresentation); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EndFeatureMembership_ownedMemberFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EndFeatureMembership_ownedMemberFeature_SettingDelegate.java new file mode 100644 index 000000000..25ccdbaad --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EndFeatureMembership_ownedMemberFeature_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code EndFeatureMembership.ownedMemberFeature}. + */ +public class EndFeatureMembership_ownedMemberFeature_SettingDelegate extends AbstractSettingDelegate { + + public EndFeatureMembership_ownedMemberFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "EndFeatureMembership.ownedMemberFeature"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for FeatureMembership.ownedMemberFeature + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof Feature) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Feature) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof Feature) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EnumerationDefinition_enumeratedValue_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EnumerationDefinition_enumeratedValue_SettingDelegate.java new file mode 100644 index 000000000..0a4a3ce1c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EnumerationDefinition_enumeratedValue_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.EnumerationUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code EnumerationDefinition.enumeratedValue}. + */ +public class EnumerationDefinition_enumeratedValue_SettingDelegate extends AbstractSettingDelegate { + + public EnumerationDefinition_enumeratedValue_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "EnumerationDefinition.enumeratedValue"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for EnumerationDefinition.enumeratedValue + * redefines Definition.variant + */ + var values = new BasicEList(); + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getDefinition_Variant(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof EnumerationUsage) { + values.add(candidate); + } + } + } else if (sourceValue instanceof EnumerationUsage) { + values.add(sourceValue); + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EnumerationUsage_enumerationDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EnumerationUsage_enumerationDefinition_SettingDelegate.java new file mode 100644 index 000000000..1019309ff --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EnumerationUsage_enumerationDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.EnumerationDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code EnumerationUsage.enumerationDefinition}. + */ +public class EnumerationUsage_enumerationDefinition_SettingDelegate extends AbstractSettingDelegate { + + public EnumerationUsage_enumerationDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "EnumerationUsage.enumerationDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for EnumerationUsage.enumerationDefinition + * inferred source Feature.type + * The single EnumerationDefinition that is the type of this EnumerationUsage. + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof EnumerationDefinition) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof EnumerationDefinition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EventOccurrenceUsage_eventOccurrence_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EventOccurrenceUsage_eventOccurrence_SettingDelegate.java new file mode 100644 index 000000000..e8c3eae81 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EventOccurrenceUsage_eventOccurrence_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.EventOccurrenceUsage; +import org.omg.sysml.model.sysml.OccurrenceUsage; + +/** + * Generated setting delegate for {@code EventOccurrenceUsage.eventOccurrence}. + */ +public class EventOccurrenceUsage_eventOccurrence_SettingDelegate extends AbstractSettingDelegate { + + public EventOccurrenceUsage_eventOccurrence_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "EventOccurrenceUsage.eventOccurrence"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveEventOccurrenceUsageEventOccurrence + * eventOccurrence = + * if referencedFeatureTarget() = null then self + * else if referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) then + * referencedFeatureTarget().oclAsType(OccurrenceUsage) + * else null + * endif endif + */ + Object result = null; + if (owner instanceof EventOccurrenceUsage self) { + var referencedFeatureTarget = self.referencedFeatureTarget(); + if (referencedFeatureTarget == null) { + result = self; + } else if (referencedFeatureTarget instanceof OccurrenceUsage occurrenceUsage) { + result = occurrenceUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EventOccurrenceUsage_isReference_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EventOccurrenceUsage_isReference_SettingDelegate.java new file mode 100644 index 000000000..b3b85728c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/EventOccurrenceUsage_isReference_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code EventOccurrenceUsage.isReference}. + */ +public class EventOccurrenceUsage_isReference_SettingDelegate extends AbstractSettingDelegate { + + public EventOccurrenceUsage_isReference_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "EventOccurrenceUsage.isReference"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageIsReference + * isReference = not isComposite + */ + Object result = null; + if (owner instanceof Usage self) { + result = !self.isIsComposite(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ExhibitStateUsage_exhibitedState_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ExhibitStateUsage_exhibitedState_SettingDelegate.java new file mode 100644 index 000000000..d81f80bdc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ExhibitStateUsage_exhibitedState_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.ExhibitStateUsage; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ExhibitStateUsage.exhibitedState}. + */ +public class ExhibitStateUsage_exhibitedState_SettingDelegate extends AbstractSettingDelegate { + + public ExhibitStateUsage_exhibitedState_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ExhibitStateUsage.exhibitedState"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for ExhibitStateUsage.exhibitedState + * redefines PerformActionUsage.performedAction + * This follows the EventOccurrenceUsage.eventOccurrence semantics inherited through + * PerformActionUsage: return self when no referencedFeatureTarget exists, otherwise return + * the referenced target when it is a StateUsage. + */ + Object result = null; + if (owner instanceof ExhibitStateUsage self) { + var referencedFeatureTarget = self.referencedFeatureTarget(); + if (referencedFeatureTarget == null) { + result = self; + } else if (referencedFeatureTarget instanceof StateUsage stateUsage) { + result = stateUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Expression_function_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Expression_function_SettingDelegate.java new file mode 100644 index 000000000..a3bc08c11 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Expression_function_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Expression.function}. + */ +public class Expression_function_SettingDelegate extends AbstractSettingDelegate { + + public Expression_function_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Expression.function"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for Expression.function + * inferred source Feature.type + * The Function that types this Expression . + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Function) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof Function) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Expression_isModelLevelEvaluable_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Expression_isModelLevelEvaluable_SettingDelegate.java new file mode 100644 index 000000000..455866203 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Expression_isModelLevelEvaluable_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated setting delegate for {@code Expression.isModelLevelEvaluable}. + */ +public class Expression_isModelLevelEvaluable_SettingDelegate extends AbstractSettingDelegate { + + public Expression_isModelLevelEvaluable_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Expression.isModelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveExpressionIsModelLevelEvaluable + * isModelLevelEvaluable = modelLevelEvaluable(Set(Element){}) + */ + Object result = Boolean.FALSE; + if (owner instanceof Expression self) { + result = self.modelLevelEvaluable(new BasicEList()); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Expression_result_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Expression_result_SettingDelegate.java new file mode 100644 index 000000000..e8f36883b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Expression_result_SettingDelegate.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.ReturnParameterMembership; + +/** + * Generated setting delegate for {@code Expression.result}. + */ +public class Expression_result_SettingDelegate extends AbstractSettingDelegate { + + public Expression_result_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Expression.result"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveExpressionResult + * result = + * let resultParams : Sequence(Feature) = + * featureMemberships-> + * selectByKind(ReturnParameterMembership). + * ownedMemberParameter in + * if resultParams->notEmpty() then resultParams->first() + * else null + * endif + */ + Object result = null; + if (owner instanceof Expression self) { + for (var featureMembership : self.getFeatureMembership()) { + if (featureMembership instanceof ReturnParameterMembership returnParameterMembership) { + Feature ownedMemberParameter = returnParameterMembership.getOwnedMemberParameter(); + if (ownedMemberParameter != null) { + result = ownedMemberParameter; + break; + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureChainExpression_targetFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureChainExpression_targetFeature_SettingDelegate.java new file mode 100644 index 000000000..266c38f19 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureChainExpression_targetFeature_SettingDelegate.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChainExpression; +import org.omg.sysml.model.sysml.ParameterMembership; + +/** + * Generated setting delegate for {@code FeatureChainExpression.targetFeature}. + */ +public class FeatureChainExpression_targetFeature_SettingDelegate extends AbstractSettingDelegate { + + public FeatureChainExpression_targetFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FeatureChainExpression.targetFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureChainExpressionTargetFeature + * targetFeature = + * let nonParameterMemberships : Sequence(Membership) = ownedMembership-> + * reject(oclIsKindOf(ParameterMembership)) in + * if nonParameterMemberships->isEmpty() or + * not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) + * then null + * else nonParameterMemberships->first().memberElement.oclAsType(Feature) + * endif + */ + Object result = null; + if (owner instanceof FeatureChainExpression self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (!(ownedMembership instanceof ParameterMembership)) { + var memberElement = ownedMembership.getMemberElement(); + if (memberElement instanceof Feature feature) { + result = feature; + } + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureChaining_featureChained_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureChaining_featureChained_SettingDelegate.java new file mode 100644 index 000000000..806d252fd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureChaining_featureChained_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FeatureChaining.featureChained}. + */ +public class FeatureChaining_featureChained_SettingDelegate extends AbstractSettingDelegate { + + public FeatureChaining_featureChained_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FeatureChaining.featureChained"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for FeatureChaining.featureChained + * subsets Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate instanceof Feature) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureInverting_owningFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureInverting_owningFeature_SettingDelegate.java new file mode 100644 index 000000000..b7af78826 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureInverting_owningFeature_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FeatureInverting.owningFeature}. + */ +public class FeatureInverting_owningFeature_SettingDelegate extends AbstractSettingDelegate { + + public FeatureInverting_owningFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FeatureInverting.owningFeature"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for FeatureInverting.owningFeature + * subsets FeatureInverting.featureInverted + * subsets Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getFeatureInverting_FeatureInverted(), resolve); + if (candidate0 instanceof Feature) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate1 instanceof Feature) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureMembership_ownedMemberFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureMembership_ownedMemberFeature_SettingDelegate.java new file mode 100644 index 000000000..10d2656d1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureMembership_ownedMemberFeature_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FeatureMembership.ownedMemberFeature}. + */ +public class FeatureMembership_ownedMemberFeature_SettingDelegate extends AbstractSettingDelegate { + + public FeatureMembership_ownedMemberFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FeatureMembership.ownedMemberFeature"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for FeatureMembership.ownedMemberFeature + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof Feature) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Feature) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof Feature) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureMembership_owningType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureMembership_owningType_SettingDelegate.java new file mode 100644 index 000000000..c000675c4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureMembership_owningType_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FeatureMembership.owningType}. + */ +public class FeatureMembership_owningType_SettingDelegate extends AbstractSettingDelegate { + + public FeatureMembership_owningType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FeatureMembership.owningType"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for FeatureMembership.owningType + * redefines Relationship.source + * redefines Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_Source(), resolve); + if (candidate0 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Type) { + resolvedValue = item; + break; + } + } + } else if (candidate0 instanceof Type) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate1 instanceof Type) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureReferenceExpression_referent_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureReferenceExpression_referent_SettingDelegate.java new file mode 100644 index 000000000..0380bc6ff --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureReferenceExpression_referent_SettingDelegate.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureReferenceExpression; +import org.omg.sysml.model.sysml.ParameterMembership; + +/** + * Generated setting delegate for {@code FeatureReferenceExpression.referent}. + */ +public class FeatureReferenceExpression_referent_SettingDelegate extends AbstractSettingDelegate { + + public FeatureReferenceExpression_referent_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FeatureReferenceExpression.referent"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureReferenceExpressionReferent + * referent = + * let nonParameterMemberships : Sequence(Membership) = ownedMembership-> + * reject(oclIsKindOf(ParameterMembership)) in + * if nonParameterMemberships->isEmpty() or + * not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) + * then null + * else nonParameterMemberships->first().memberElement.oclAsType(Feature) + * endif + */ + Object result = null; + if (owner instanceof FeatureReferenceExpression self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (!(ownedMembership instanceof ParameterMembership) + && ownedMembership.getMemberElement() instanceof Feature feature) { + result = feature; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureTyping_owningFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureTyping_owningFeature_SettingDelegate.java new file mode 100644 index 000000000..4cc8e39ee --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureTyping_owningFeature_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FeatureTyping.owningFeature}. + */ +public class FeatureTyping_owningFeature_SettingDelegate extends AbstractSettingDelegate { + + public FeatureTyping_owningFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FeatureTyping.owningFeature"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for FeatureTyping.owningFeature + * subsets FeatureTyping.typedFeature + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeatureTyping_TypedFeature(), resolve); + if (candidate instanceof Feature) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureValue_featureWithValue_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureValue_featureWithValue_SettingDelegate.java new file mode 100644 index 000000000..f83276ace --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureValue_featureWithValue_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FeatureValue.featureWithValue}. + */ +public class FeatureValue_featureWithValue_SettingDelegate extends AbstractSettingDelegate { + + public FeatureValue_featureWithValue_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FeatureValue.featureWithValue"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for FeatureValue.featureWithValue + * subsets Membership.membershipOwningNamespace + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MembershipOwningNamespace(), resolve); + if (candidate instanceof Feature) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureValue_value_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureValue_value_SettingDelegate.java new file mode 100644 index 000000000..19f9bcc43 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FeatureValue_value_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FeatureValue.value}. + */ +public class FeatureValue_value_SettingDelegate extends AbstractSettingDelegate { + + public FeatureValue_value_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FeatureValue.value"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for FeatureValue.value + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof Expression) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Expression) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof Expression) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_chainingFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_chainingFeature_SettingDelegate.java new file mode 100644 index 000000000..8f0597ebe --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_chainingFeature_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated setting delegate for {@code Feature.chainingFeature}. + */ +public class Feature_chainingFeature_SettingDelegate extends AbstractSettingDelegate { + + public Feature_chainingFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.chainingFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureChainingFeature + * chainingFeature = ownedFeatureChaining.chainingFeature + */ + var result = new BasicEList(); + if (owner instanceof Feature self) { + for (var ownedFeatureChaining : self.getOwnedFeatureChaining()) { + if (ownedFeatureChaining.getChainingFeature() != null) { + result.add(ownedFeatureChaining.getChainingFeature()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_crossFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_crossFeature_SettingDelegate.java new file mode 100644 index 000000000..0063d9bcc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_crossFeature_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated setting delegate for {@code Feature.crossFeature}. + */ +public class Feature_crossFeature_SettingDelegate extends AbstractSettingDelegate { + + public Feature_crossFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.crossFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureCrossFeature + * crossFeature = + * if ownedCrossSubsetting = null then null + * else + * let chainingFeatures: Sequence(Feature) = + * ownedCrossSubsetting.crossedFeature.chainingFeature in + * if chainingFeatures->size() < 2 then null + * else chainingFeatures->at(2) + * endif + */ + Object result = null; + if (owner instanceof Feature self && self.getOwnedCrossSubsetting() != null) { + var crossedFeature = self.getOwnedCrossSubsetting().getCrossedFeature(); + if (crossedFeature != null && crossedFeature.getChainingFeature().size() >= 2) { + result = crossedFeature.getChainingFeature().get(1); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_endOwningType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_endOwningType_SettingDelegate.java new file mode 100644 index 000000000..7d84c7ea2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_endOwningType_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Feature.endOwningType}. + */ +public class Feature_endOwningType_SettingDelegate extends AbstractSettingDelegate { + + public Feature_endOwningType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.endOwningType"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Feature.endOwningType + * subsets Feature.owningType + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeature_OwningType(), resolve); + if (candidate instanceof org.eclipse.emf.ecore.EObject candidateObject) { + var oppositeValue = candidateObject.eGet(SysMLPackage.eINSTANCE.getType_OwnedEndFeature(), resolve); + var ownerMatchesOpposite = false; + if (oppositeValue instanceof Iterable iterable) { + for (var oppositeItem : iterable) { + if (oppositeItem == owner) { + ownerMatchesOpposite = true; + break; + } + } + } else if (oppositeValue == owner) { + ownerMatchesOpposite = true; + } + if (ownerMatchesOpposite && candidate instanceof Type) { + resolvedValue = candidate; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_featureTarget_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_featureTarget_SettingDelegate.java new file mode 100644 index 000000000..cb094654b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_featureTarget_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated setting delegate for {@code Feature.featureTarget}. + */ +public class Feature_featureTarget_SettingDelegate extends AbstractSettingDelegate { + + public Feature_featureTarget_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.featureTarget"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureFeatureTarget + * featureTarget = if chainingFeature->isEmpty() then self else chainingFeature->last() endif + */ + Object result = null; + if (owner instanceof Feature self) { + result = self.getChainingFeature().isEmpty() ? self : self.getChainingFeature().getLast(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_featuringType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_featuringType_SettingDelegate.java new file mode 100644 index 000000000..1295654c7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_featuringType_SettingDelegate.java @@ -0,0 +1,77 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import java.util.LinkedHashSet; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Feature.featuringType}. + */ +public class Feature_featuringType_SettingDelegate extends AbstractSettingDelegate { + + public Feature_featuringType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.featuringType"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureFeaturingType + * featuringType = + * let featuringTypes : OrderedSet(Type) = + * featuring.type->asOrderedSet() in + * if chainingFeature->isEmpty() then featuringTypes + * else + * featuringTypes-> + * union(chainingFeature->first().featuringType)-> + * asOrderedSet() + * endif + */ + var result = new BasicEList(); + if (owner instanceof Feature self) { + var featuringTypes = new LinkedHashSet(); + for (var ownedTypeFeaturing : self.getOwnedTypeFeaturing()) { + if (ownedTypeFeaturing.getFeaturingType() != null) { + featuringTypes.add(ownedTypeFeaturing.getFeaturingType()); + } + } + if (!self.getChainingFeature().isEmpty()) { + featuringTypes.addAll(self.getChainingFeature().getFirst().getFeaturingType()); + } + result.addAll(featuringTypes); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedCrossSubsetting_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedCrossSubsetting_SettingDelegate.java new file mode 100644 index 000000000..29da6ce4e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedCrossSubsetting_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.CrossSubsetting; +import org.omg.sysml.model.sysml.Feature; + +/** + * Generated setting delegate for {@code Feature.ownedCrossSubsetting}. + */ +public class Feature_ownedCrossSubsetting_SettingDelegate extends AbstractSettingDelegate { + + public Feature_ownedCrossSubsetting_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.ownedCrossSubsetting"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureOwnedCrossSubsetting + * ownedCrossSubsetting = + * let crossSubsettings: Sequence(CrossSubsetting) = + * ownedSubsetting->selectByKind(CrossSubsetting) in + * if crossSubsettings->isEmpty() then null + * else crossSubsettings->first() + * endif + */ + Object result = null; + if (owner instanceof Feature self) { + for (var ownedSubsetting : self.getOwnedSubsetting()) { + if (ownedSubsetting instanceof CrossSubsetting crossSubsetting) { + result = crossSubsetting; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedFeatureChaining_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedFeatureChaining_SettingDelegate.java new file mode 100644 index 000000000..82fe442d5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedFeatureChaining_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChaining; + +/** + * Generated setting delegate for {@code Feature.ownedFeatureChaining}. + */ +public class Feature_ownedFeatureChaining_SettingDelegate extends AbstractSettingDelegate { + + public Feature_ownedFeatureChaining_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.ownedFeatureChaining"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureOwnedFeatureChaining + * ownedFeatureChaining = ownedRelationship->selectByKind(FeatureChaining) + */ + var result = new BasicEList(); + if (owner instanceof Feature self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof FeatureChaining featureChaining) { + result.add(featureChaining); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedFeatureInverting_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedFeatureInverting_SettingDelegate.java new file mode 100644 index 000000000..036603e30 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedFeatureInverting_SettingDelegate.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureInverting; + +/** + * Generated setting delegate for {@code Feature.ownedFeatureInverting}. + */ +public class Feature_ownedFeatureInverting_SettingDelegate extends AbstractSettingDelegate { + + public Feature_ownedFeatureInverting_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.ownedFeatureInverting"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureOwnedFeatureInverting + * ownedFeatureInverting = ownedRelationship->selectByKind(FeatureInverting)-> + * select(fi | fi.featureInverted = self) + */ + var result = new BasicEList(); + if (owner instanceof Feature self) { + for (var relationship : self.getOwnedRelationship()) { + if (relationship instanceof FeatureInverting featureInverting + && featureInverting.getFeatureInverted() == self) { + result.add(featureInverting); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedRedefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedRedefinition_SettingDelegate.java new file mode 100644 index 000000000..01ccd850d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedRedefinition_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Redefinition; + +/** + * Generated setting delegate for {@code Feature.ownedRedefinition}. + */ +public class Feature_ownedRedefinition_SettingDelegate extends AbstractSettingDelegate { + + public Feature_ownedRedefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.ownedRedefinition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureOwnedRedefinition + * ownedRedefinition = ownedSubsetting->selectByKind(Redefinition) + */ + var result = new BasicEList(); + if (owner instanceof Feature self) { + for (var ownedSubsetting : self.getOwnedSubsetting()) { + if (ownedSubsetting instanceof Redefinition redefinition) { + result.add(redefinition); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedReferenceSubsetting_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedReferenceSubsetting_SettingDelegate.java new file mode 100644 index 000000000..a663092ac --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedReferenceSubsetting_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.ReferenceSubsetting; + +/** + * Generated setting delegate for {@code Feature.ownedReferenceSubsetting}. + */ +public class Feature_ownedReferenceSubsetting_SettingDelegate extends AbstractSettingDelegate { + + public Feature_ownedReferenceSubsetting_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.ownedReferenceSubsetting"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureOwnedReferenceSubsetting + * ownedReferenceSubsetting = + * let referenceSubsettings : OrderedSet(ReferenceSubsetting) = + * ownedSubsetting->selectByKind(ReferenceSubsetting) in + * if referenceSubsettings->isEmpty() then null + * else referenceSubsettings->first() endif + */ + Object result = null; + if (owner instanceof Feature self) { + for (var ownedSubsetting : self.getOwnedSubsetting()) { + if (ownedSubsetting instanceof ReferenceSubsetting referenceSubsetting) { + result = referenceSubsetting; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedSubsetting_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedSubsetting_SettingDelegate.java new file mode 100644 index 000000000..f20dad98c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedSubsetting_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Subsetting; + +/** + * Generated setting delegate for {@code Feature.ownedSubsetting}. + */ +public class Feature_ownedSubsetting_SettingDelegate extends AbstractSettingDelegate { + + public Feature_ownedSubsetting_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.ownedSubsetting"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureOwnedSubsetting + * ownedSubsetting = ownedSpecialization->selectByKind(Subsetting) + */ + var result = new BasicEList(); + if (owner instanceof Feature self) { + for (var ownedSpecialization : self.getOwnedSpecialization()) { + if (ownedSpecialization instanceof Subsetting subsetting) { + result.add(subsetting); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedTypeFeaturing_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedTypeFeaturing_SettingDelegate.java new file mode 100644 index 000000000..c7c95bdb3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedTypeFeaturing_SettingDelegate.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.TypeFeaturing; + +/** + * Generated setting delegate for {@code Feature.ownedTypeFeaturing}. + */ +public class Feature_ownedTypeFeaturing_SettingDelegate extends AbstractSettingDelegate { + + public Feature_ownedTypeFeaturing_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.ownedTypeFeaturing"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureOwnedTypeFeaturing + * ownedTypeFeaturing = ownedRelationship->selectByKind(TypeFeaturing)-> + * select(tf | tf.featureOfType = self) + */ + var result = new BasicEList(); + if (owner instanceof Feature self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof TypeFeaturing typeFeaturing + && typeFeaturing.getFeatureOfType() == self) { + result.add(typeFeaturing); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedTyping_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedTyping_SettingDelegate.java new file mode 100644 index 000000000..f7e830664 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_ownedTyping_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureTyping; + +/** + * Generated setting delegate for {@code Feature.ownedTyping}. + */ +public class Feature_ownedTyping_SettingDelegate extends AbstractSettingDelegate { + + public Feature_ownedTyping_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.ownedTyping"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureOwnedTyping + * ownedTyping = ownedGeneralization->selectByKind(FeatureTyping) + */ + var result = new BasicEList(); + if (owner instanceof Feature self) { + for (var ownedSpecialization : self.getOwnedSpecialization()) { + if (ownedSpecialization instanceof FeatureTyping featureTyping) { + result.add(featureTyping); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_owningFeatureMembership_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_owningFeatureMembership_SettingDelegate.java new file mode 100644 index 000000000..da2067747 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_owningFeatureMembership_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Feature.owningFeatureMembership}. + */ +public class Feature_owningFeatureMembership_SettingDelegate extends AbstractSettingDelegate { + + public Feature_owningFeatureMembership_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.owningFeatureMembership"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Feature.owningFeatureMembership + * subsets Element.owningMembership + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getElement_OwningMembership(), resolve); + if (candidate instanceof FeatureMembership) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_owningType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_owningType_SettingDelegate.java new file mode 100644 index 000000000..9f12fb6eb --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_owningType_SettingDelegate.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Feature.owningType}. + */ +public class Feature_owningType_SettingDelegate extends AbstractSettingDelegate { + + public Feature_owningType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.owningType"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Feature.owningType + * subsets Element.owningNamespace + * subsets Feature.featuringType (ignored: derived source, cardinality mismatch) + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getElement_OwningNamespace(), resolve); + if (candidate instanceof Type) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_type_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_type_SettingDelegate.java new file mode 100644 index 000000000..64973e7dd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Feature_type_SettingDelegate.java @@ -0,0 +1,100 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import java.util.ArrayDeque; +import java.util.LinkedHashSet; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Feature.type}. + */ +public class Feature_type_SettingDelegate extends AbstractSettingDelegate { + + public Feature_type_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Feature.type"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFeatureType + * type = + * let types : OrderedSet(Types) = OrderedSet{self}-> + * -- Note: The closure operation automatically handles circular relationships. + * closure(typingFeatures()).typing.type->asOrderedSet() in + * types->reject(t1 | types->exist(t2 | t2 <> t1 and t2.specializes(t1))) + */ + /* + * OrderedSet{self} is the seed for closure(typingFeatures()) traversal, not an unconditional + * member of the final derived type set. The resulting values come from ".typing.type" on the + * closure result. If self is not reached via that navigation, it is not included. + */ + var result = new BasicEList(); + if (owner instanceof Feature self) { + var discoveredTypes = new LinkedHashSet(); + var visitedFeatures = new LinkedHashSet(); + var queue = new ArrayDeque(); + queue.add(self); + while (!queue.isEmpty()) { + var current = queue.removeFirst(); + if (!visitedFeatures.add(current)) { + continue; + } + for (var typingFeature : current.typingFeatures()) { + if (typingFeature != null) { + queue.addLast(typingFeature); + for (var type : typingFeature.getType()) { + discoveredTypes.add(type); + } + } + } + } + + for (var candidate : discoveredTypes) { + var reject = false; + for (var other : discoveredTypes) { + if (other != candidate && other.specializes(candidate)) { + reject = true; + break; + } + } + if (!reject) { + result.add(candidate); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FlowDefinition_flowEnd_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FlowDefinition_flowEnd_SettingDelegate.java new file mode 100644 index 000000000..40e8623b3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FlowDefinition_flowEnd_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FlowDefinition.flowEnd}. + */ +public class FlowDefinition_flowEnd_SettingDelegate extends AbstractSettingDelegate { + + public FlowDefinition_flowEnd_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FlowDefinition.flowEnd"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for FlowDefinition.flowEnd + * inferred source Definition.usage + * The Usages that define the things related by the FlowDefinition . + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getDefinition_Usage(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Usage) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Usage) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FlowUsage_flowDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FlowUsage_flowDefinition_SettingDelegate.java new file mode 100644 index 000000000..c83c385e8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FlowUsage_flowDefinition_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Interaction; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FlowUsage.flowDefinition}. + */ +public class FlowUsage_flowDefinition_SettingDelegate extends AbstractSettingDelegate { + + public FlowUsage_flowDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FlowUsage.flowDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for FlowUsage.flowDefinition + * inferred source Feature.type + * The Interactions that are the types of this FlowUsage . Nominally, these are FlowDefinitions , but other kinds of Kernel Interactions are also allowed, to permit use of Interactions from the Kernel Model Libraries. + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Interaction) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Interaction) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_flowEnd_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_flowEnd_SettingDelegate.java new file mode 100644 index 000000000..18591d7e3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_flowEnd_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Flow; +import org.omg.sysml.model.sysml.FlowEnd; + +/** + * Generated setting delegate for {@code Flow.flowEnd}. + */ +public class Flow_flowEnd_SettingDelegate extends AbstractSettingDelegate { + + public Flow_flowEnd_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Flow.flowEnd"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFlowFlowEnd + * flowEnd = connectorEnd->selectByKind(FlowEnd) + */ + var result = new BasicEList(); + if (owner instanceof Flow self) { + for (var connectorEnd : self.getConnectorEnd()) { + if (connectorEnd instanceof FlowEnd flowEnd) { + result.add(flowEnd); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_interaction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_interaction_SettingDelegate.java new file mode 100644 index 000000000..b2081986a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_interaction_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Interaction; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Flow.interaction}. + */ +public class Flow_interaction_SettingDelegate extends AbstractSettingDelegate { + + public Flow_interaction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Flow.interaction"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for Flow.interaction + * inferred source Feature.type + * The Interactions that type this Flow . Interactions are both Associations and Behaviors , which can type Connectors and Steps , respectively. + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Interaction) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Interaction) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_payloadFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_payloadFeature_SettingDelegate.java new file mode 100644 index 000000000..29c8048a7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_payloadFeature_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Flow; +import org.omg.sysml.model.sysml.PayloadFeature; + +/** + * Generated setting delegate for {@code Flow.payloadFeature}. + */ +public class Flow_payloadFeature_SettingDelegate extends AbstractSettingDelegate { + + public Flow_payloadFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Flow.payloadFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFlowPayloadFeature + * payloadFeature = + * let payloadFeatures : Sequence(PayloadFeature) = + * ownedFeature->selectByKind(PayloadFeature) in + * if payloadFeatures->isEmpty() then null + * else payloadFeatures->first() + * endif + */ + PayloadFeature result = null; + if (owner instanceof Flow self) { + for (var ownedFeature : self.getOwnedFeature()) { + if (ownedFeature instanceof PayloadFeature payloadFeature) { + result = payloadFeature; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_payloadType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_payloadType_SettingDelegate.java new file mode 100644 index 000000000..dba2a7dc9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_payloadType_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Flow; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Flow.payloadType}. + */ +public class Flow_payloadType_SettingDelegate extends AbstractSettingDelegate { + + public Flow_payloadType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Flow.payloadType"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFlowPayloadType + * payloadType = + * if payloadFeature = null then Sequence{} + * else payloadFeature.type + * endif + */ + var result = new BasicEList(); + if (owner instanceof Flow self && self.getPayloadFeature() != null) { + result.addAll(self.getPayloadFeature().getType()); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_sourceOutputFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_sourceOutputFeature_SettingDelegate.java new file mode 100644 index 000000000..36f620dc4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_sourceOutputFeature_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Flow; + +/** + * Generated setting delegate for {@code Flow.sourceOutputFeature}. + */ +public class Flow_sourceOutputFeature_SettingDelegate extends AbstractSettingDelegate { + + public Flow_sourceOutputFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Flow.sourceOutputFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFlowSourceOutputFeature + * sourceOutputFeature = + * if connectorEnd->isEmpty() or + * connectorEnd.ownedFeature->isEmpty() + * then null + * else connectorEnd.ownedFeature->first() + * endif + */ + Object result = null; + if (owner instanceof Flow self + && !self.getConnectorEnd().isEmpty() + && !self.getConnectorEnd().getFirst().getOwnedFeature().isEmpty()) { + result = self.getConnectorEnd().getFirst().getOwnedFeature().getFirst(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_targetInputFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_targetInputFeature_SettingDelegate.java new file mode 100644 index 000000000..3198efbb6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Flow_targetInputFeature_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Flow; + +/** + * Generated setting delegate for {@code Flow.targetInputFeature}. + */ +public class Flow_targetInputFeature_SettingDelegate extends AbstractSettingDelegate { + + public Flow_targetInputFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Flow.targetInputFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFlowTargetInputFeature + * targetInputFeature = + * if connectorEnd->size() < 2 or + * connectorEnd->at(2).ownedFeature->isEmpty() + * then null + * else connectorEnd->at(2).ownedFeature->first() + * endif + */ + Object result = null; + if (owner instanceof Flow self + && self.getConnectorEnd().size() >= 2 + && !self.getConnectorEnd().get(1).getOwnedFeature().isEmpty()) { + result = self.getConnectorEnd().get(1).getOwnedFeature().getFirst(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ForLoopActionUsage_loopVariable_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ForLoopActionUsage_loopVariable_SettingDelegate.java new file mode 100644 index 000000000..d7c3de405 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ForLoopActionUsage_loopVariable_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ForLoopActionUsage; +import org.omg.sysml.model.sysml.ReferenceUsage; + +/** + * Generated setting delegate for {@code ForLoopActionUsage.loopVariable}. + */ +public class ForLoopActionUsage_loopVariable_SettingDelegate extends AbstractSettingDelegate { + + public ForLoopActionUsage_loopVariable_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ForLoopActionUsage.loopVariable"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveForLoopActionUsageLoopVariable + * loopVariable = + * if ownedFeature->isEmpty() or + * not ownedFeature->first().oclIsKindOf(ReferenceUsage) then + * null + * else + * ownedFeature->first().oclAsType(ReferenceUsage) + * endif + */ + Object result = null; + if (owner instanceof ForLoopActionUsage self + && !self.getOwnedFeature().isEmpty() + && self.getOwnedFeature().getFirst() instanceof ReferenceUsage referenceUsage) { + result = referenceUsage; + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ForLoopActionUsage_seqArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ForLoopActionUsage_seqArgument_SettingDelegate.java new file mode 100644 index 000000000..521301666 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ForLoopActionUsage_seqArgument_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ForLoopActionUsage; + +/** + * Generated setting delegate for {@code ForLoopActionUsage.seqArgument}. + */ +public class ForLoopActionUsage_seqArgument_SettingDelegate extends AbstractSettingDelegate { + + public ForLoopActionUsage_seqArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ForLoopActionUsage.seqArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveForLoopActionUsageSeqArgument + * seqArgument = argument(1) + */ + Object result = null; + if (owner instanceof ForLoopActionUsage self) { + result = self.argument(1); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FramedConcernMembership_ownedConcern_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FramedConcernMembership_ownedConcern_SettingDelegate.java new file mode 100644 index 000000000..b5333372f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FramedConcernMembership_ownedConcern_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FramedConcernMembership.ownedConcern}. + */ +public class FramedConcernMembership_ownedConcern_SettingDelegate extends AbstractSettingDelegate { + + public FramedConcernMembership_ownedConcern_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FramedConcernMembership.ownedConcern"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for FramedConcernMembership.ownedConcern + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof ConcernUsage) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof ConcernUsage) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof ConcernUsage) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FramedConcernMembership_referencedConcern_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FramedConcernMembership_referencedConcern_SettingDelegate.java new file mode 100644 index 000000000..d98479860 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/FramedConcernMembership_referencedConcern_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.FramedConcernMembership; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code FramedConcernMembership.referencedConcern}. + */ +public class FramedConcernMembership_referencedConcern_SettingDelegate extends AbstractSettingDelegate { + + public FramedConcernMembership_referencedConcern_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "FramedConcernMembership.referencedConcern"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for FramedConcernMembership.referencedConcern + * redefines RequirementConstraintMembership.referencedConstraint + * This specializes RequirementConstraintMembership.referencedConstraint with ConcernUsage: + * use ownedConcern as default when no referencedFeatureTarget exists, otherwise return the + * referenced target when it is a ConcernUsage. + */ + Object result = null; + if (owner instanceof FramedConcernMembership self && self.getOwnedConcern() != null) { + var referencedFeature = self.getOwnedConcern().referencedFeatureTarget(); + if (referencedFeature == null) { + result = self.getOwnedConcern(); + } else if (referencedFeature instanceof ConcernUsage concernUsage) { + result = concernUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Function_expression_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Function_expression_SettingDelegate.java new file mode 100644 index 000000000..62086c240 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Function_expression_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Function.expression}. + */ +public class Function_expression_SettingDelegate extends AbstractSettingDelegate { + + public Function_expression_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Function.expression"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Function.expression + * subsets Behavior.step + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getBehavior_Step(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Expression) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Expression) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Function_isModelLevelEvaluable_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Function_isModelLevelEvaluable_SettingDelegate.java new file mode 100644 index 000000000..ce06334b2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Function_isModelLevelEvaluable_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Function; + +/** + * Generated setting delegate for {@code Function.isModelLevelEvaluable}. + */ +public class Function_isModelLevelEvaluable_SettingDelegate extends AbstractSettingDelegate { + + public Function_isModelLevelEvaluable_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Function.isModelLevelEvaluable"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 (documentation) + * Whether this Function can be used as the function of a model-level + * evaluable InvocationExpression. Certain Functions from the Kernel + * Functions Library are model-level evaluable; all other Functions are false. + */ + Object result = null; + if (owner instanceof Function) { + result = Boolean.FALSE; + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Function_result_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Function_result_SettingDelegate.java new file mode 100644 index 000000000..2a5a9c014 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Function_result_SettingDelegate.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.ReturnParameterMembership; + +/** + * Generated setting delegate for {@code Function.result}. + */ +public class Function_result_SettingDelegate extends AbstractSettingDelegate { + + public Function_result_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Function.result"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveFunctionResult + * result = + * let resultParams : Sequence(Feature) = + * featureMemberships-> + * selectByKind(ReturnParameterMembership). + * ownedMemberParameter in + * if resultParams->notEmpty() then resultParams->first() + * else null + * endif + */ + Object result = null; + if (owner instanceof Function self) { + for (var featureMembership : self.getFeatureMembership()) { + if (featureMembership instanceof ReturnParameterMembership returnParameterMembership) { + Feature ownedMemberParameter = returnParameterMembership.getOwnedMemberParameter(); + if (ownedMemberParameter != null) { + result = ownedMemberParameter; + break; + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IfActionUsage_elseAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IfActionUsage_elseAction_SettingDelegate.java new file mode 100644 index 000000000..f429b59b7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IfActionUsage_elseAction_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.IfActionUsage; + +/** + * Generated setting delegate for {@code IfActionUsage.elseAction}. + */ +public class IfActionUsage_elseAction_SettingDelegate extends AbstractSettingDelegate { + + public IfActionUsage_elseAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "IfActionUsage.elseAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveIfActionUsageElseAction + * elseAction = + * let parameter : Feature = inputParameter(3) in + * if parameter <> null and parameter.oclIsKindOf(ActionUsage) then + * parameter.oclAsType(ActionUsage) + * else + * null + * endif + */ + Object result = null; + if (owner instanceof IfActionUsage self) { + var parameter = self.inputParameter(3); + if (parameter instanceof ActionUsage actionUsage) { + result = actionUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IfActionUsage_ifArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IfActionUsage_ifArgument_SettingDelegate.java new file mode 100644 index 000000000..8fa2bfdd2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IfActionUsage_ifArgument_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.IfActionUsage; + +/** + * Generated setting delegate for {@code IfActionUsage.ifArgument}. + */ +public class IfActionUsage_ifArgument_SettingDelegate extends AbstractSettingDelegate { + + public IfActionUsage_ifArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "IfActionUsage.ifArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveIfActionUsageIfArgument + * ifArgument = + * let parameter : Feature = inputParameter(1) in + * if parameter <> null and parameter.oclIsKindOf(Expression) then + * parameter.oclAsType(Expression) + * else + * null + * endif + */ + Object result = null; + if (owner instanceof IfActionUsage self) { + var parameter = self.inputParameter(1); + if (parameter instanceof Expression expression) { + result = expression; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IfActionUsage_thenAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IfActionUsage_thenAction_SettingDelegate.java new file mode 100644 index 000000000..abaa9b51e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IfActionUsage_thenAction_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.IfActionUsage; + +/** + * Generated setting delegate for {@code IfActionUsage.thenAction}. + */ +public class IfActionUsage_thenAction_SettingDelegate extends AbstractSettingDelegate { + + public IfActionUsage_thenAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "IfActionUsage.thenAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveIfActionUsageThenAction + * thenAction = + * let parameter : Feature = inputParameter(2) in + * if parameter <> null and parameter.oclIsKindOf(ActionUsage) then + * parameter.oclAsType(ActionUsage) + * else + * null + * endif + */ + Object result = null; + if (owner instanceof IfActionUsage self) { + var parameter = self.inputParameter(2); + if (parameter instanceof ActionUsage actionUsage) { + result = actionUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Import_importOwningNamespace_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Import_importOwningNamespace_SettingDelegate.java new file mode 100644 index 000000000..c17cdb717 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Import_importOwningNamespace_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Import.importOwningNamespace}. + */ +public class Import_importOwningNamespace_SettingDelegate extends AbstractSettingDelegate { + + public Import_importOwningNamespace_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Import.importOwningNamespace"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Import.importOwningNamespace + * subsets Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate instanceof Namespace) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Import_importedElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Import_importedElement_SettingDelegate.java new file mode 100644 index 000000000..ec7559a69 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Import_importedElement_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Import; +import org.omg.sysml.model.sysml.MembershipImport; +import org.omg.sysml.model.sysml.NamespaceImport; + +/** + * Generated setting delegate for {@code Import.importedElement}. + */ +public class Import_importedElement_SettingDelegate extends AbstractSettingDelegate { + + public Import_importedElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Import.importedElement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveMembershipImportImportedElement + * importedElement = importedMembership.memberElement + * OCL2.0 deriveNamespaceImportImportedElement + * importedElement = importedNamespace + */ + Object result = null; + if (owner instanceof MembershipImport membershipImport) { + var importedMembership = membershipImport.getImportedMembership(); + result = importedMembership == null ? null : importedMembership.getMemberElement(); + } else if (owner instanceof NamespaceImport namespaceImport) { + result = namespaceImport.getImportedNamespace(); + } else if (owner instanceof Import) { + result = super.get(owner, resolve, coreType); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IncludeUseCaseUsage_useCaseIncluded_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IncludeUseCaseUsage_useCaseIncluded_SettingDelegate.java new file mode 100644 index 000000000..3ccd66e85 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/IncludeUseCaseUsage_useCaseIncluded_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.IncludeUseCaseUsage; +import org.omg.sysml.model.sysml.UseCaseUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code IncludeUseCaseUsage.useCaseIncluded}. + */ +public class IncludeUseCaseUsage_useCaseIncluded_SettingDelegate extends AbstractSettingDelegate { + + public IncludeUseCaseUsage_useCaseIncluded_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "IncludeUseCaseUsage.useCaseIncluded"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for IncludeUseCaseUsage.useCaseIncluded + * redefines PerformActionUsage.performedAction + * This follows the EventOccurrenceUsage.eventOccurrence semantics inherited through + * PerformActionUsage: return self when no referencedFeatureTarget exists, otherwise return + * the referenced target when it is a UseCaseUsage. + */ + Object result = null; + if (owner instanceof IncludeUseCaseUsage self) { + var referencedFeatureTarget = self.referencedFeatureTarget(); + if (referencedFeatureTarget == null) { + result = self; + } else if (referencedFeatureTarget instanceof UseCaseUsage useCaseUsage) { + result = useCaseUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InstantiationExpression_argument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InstantiationExpression_argument_SettingDelegate.java new file mode 100644 index 000000000..cf8e2cd07 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InstantiationExpression_argument_SettingDelegate.java @@ -0,0 +1,112 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ConstructorExpression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.InvocationExpression; + +/** + * Generated setting delegate for {@code InstantiationExpression.argument}. + */ +public class InstantiationExpression_argument_SettingDelegate extends AbstractSettingDelegate { + + public InstantiationExpression_argument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "InstantiationExpression.argument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveInvocationExpressionArgument + * instantiatedType.input->collect(inp | + * ownedFeatures->select(redefines(inp)).valuation-> + * select(v | v <> null).value + * ) + * OCL2.0 deriveConstructorExpressionArgument + * instantiatedType.feature->collect(f | + * result.ownedFeatures->select(redefines(f)).valuation-> + * select(v | v <> null).value + * ) + */ + Object result = null; + if (owner instanceof InvocationExpression self) { + var values = new BasicEList(); + var instantiatedType = self.getInstantiatedType(); + if (instantiatedType != null) { + for (var input : instantiatedType.getInput()) { + for (var ownedFeature : self.getOwnedFeature()) { + if (ownedFeature.redefines(input)) { + addFeatureValues(values, ownedFeature); + } + } + } + } + result = values; + } else if (owner instanceof ConstructorExpression self) { + var values = new BasicEList(); + var instantiatedType = self.getInstantiatedType(); + var constructorResult = self.getResult(); + if (instantiatedType != null && constructorResult != null) { + for (var featureValue : instantiatedType.getFeature()) { + for (var ownedFeature : constructorResult.getOwnedFeature()) { + if (ownedFeature.redefines(featureValue)) { + addFeatureValues(values, ownedFeature); + } + } + } + } + result = values; + } else { + result = super.get(owner, resolve, coreType); + } + return result; + } + + +/** + * Collects non-null value expressions from {@link FeatureValue} memberships of a feature. + */ + private void addFeatureValues(BasicEList values, Feature feature) { + for (var membership : feature.getOwnedMembership()) { + if (membership instanceof FeatureValue featureValue) { + var value = featureValue.getValue(); + if (value != null) { + values.add(value); + } + } + } + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InstantiationExpression_instantiatedType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InstantiationExpression_instantiatedType_SettingDelegate.java new file mode 100644 index 000000000..29118d0a3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InstantiationExpression_instantiatedType_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.InstantiationExpression; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code InstantiationExpression.instantiatedType}. + */ +public class InstantiationExpression_instantiatedType_SettingDelegate extends AbstractSettingDelegate { + + public InstantiationExpression_instantiatedType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "InstantiationExpression.instantiatedType"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 unnamed1 + * let members : Sequence(Element) = ownedMembership-> + * reject(oclIsKindOf(FeatureMembership)).memberElement in + * if members->isEmpty() or not members->first().oclIsKindOf(Type) then null + * else typeMembers->first().oclAsType(Type) + * endif + */ + Type result = null; + if (owner instanceof InstantiationExpression self) { + for (Membership membership : self.getOwnedMembership()) { + if (!(membership instanceof FeatureMembership) && membership.getMemberElement() instanceof Type type) { + result = type; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InterfaceDefinition_interfaceEnd_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InterfaceDefinition_interfaceEnd_SettingDelegate.java new file mode 100644 index 000000000..ee5d7a650 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InterfaceDefinition_interfaceEnd_SettingDelegate.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code InterfaceDefinition.interfaceEnd}. + */ +public class InterfaceDefinition_interfaceEnd_SettingDelegate extends AbstractSettingDelegate { + + public InterfaceDefinition_interfaceEnd_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "InterfaceDefinition.interfaceEnd"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for InterfaceDefinition.interfaceEnd + * redefines ConnectionDefinition.connectionEnd + * This specializes ConnectionDefinition.connectionEnd with PortUsage. + */ + var values = new BasicEList(); + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getConnectionDefinition_ConnectionEnd(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof PortUsage) { + values.add(candidate); + } + } + } else if (sourceValue instanceof PortUsage) { + values.add(sourceValue); + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InterfaceUsage_interfaceDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InterfaceUsage_interfaceDefinition_SettingDelegate.java new file mode 100644 index 000000000..3efd5965b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/InterfaceUsage_interfaceDefinition_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.InterfaceDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code InterfaceUsage.interfaceDefinition}. + */ +public class InterfaceUsage_interfaceDefinition_SettingDelegate extends AbstractSettingDelegate { + + public InterfaceUsage_interfaceDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "InterfaceUsage.interfaceDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for InterfaceUsage.interfaceDefinition + * inferred source Feature.type + * The InterfaceDefinitions that type this InterfaceUsage . + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof InterfaceDefinition) { + values.add(candidate); + } + } + } else if (sourceValue instanceof InterfaceDefinition) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Intersecting_typeIntersected_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Intersecting_typeIntersected_SettingDelegate.java new file mode 100644 index 000000000..05110aeaf --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Intersecting_typeIntersected_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Intersecting.typeIntersected}. + */ +public class Intersecting_typeIntersected_SettingDelegate extends AbstractSettingDelegate { + + public Intersecting_typeIntersected_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Intersecting.typeIntersected"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Intersecting.typeIntersected + * subsets Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate instanceof Type) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ItemUsage_itemDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ItemUsage_itemDefinition_SettingDelegate.java new file mode 100644 index 000000000..4ad5e661a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ItemUsage_itemDefinition_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.Structure; + +/** + * Generated setting delegate for {@code ItemUsage.itemDefinition}. + */ +public class ItemUsage_itemDefinition_SettingDelegate extends AbstractSettingDelegate { + + public ItemUsage_itemDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ItemUsage.itemDefinition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveItemUsageItemDefinition + * itemDefinition = occurrenceDefinition->selectByKind(Structure) + */ + var result = new BasicEList(); + if (owner instanceof ItemUsage self) { + for (var occurrenceDefinition : self.getOccurrenceDefinition()) { + if (occurrenceDefinition instanceof Structure structure) { + result.add(structure); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/LoopActionUsage_bodyAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/LoopActionUsage_bodyAction_SettingDelegate.java new file mode 100644 index 000000000..ba44be308 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/LoopActionUsage_bodyAction_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.LoopActionUsage; + +/** + * Generated setting delegate for {@code LoopActionUsage.bodyAction}. + */ +public class LoopActionUsage_bodyAction_SettingDelegate extends AbstractSettingDelegate { + + public LoopActionUsage_bodyAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "LoopActionUsage.bodyAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveLoopActionUsageBodyAction + * bodyAction = + * let parameter : Feature = inputParameter(2) in + * if parameter <> null and parameter.oclIsKindOf(Action) then + * parameter.oclAsType(Action) + * else + * null + * endif + */ + Object result = null; + if (owner instanceof LoopActionUsage self) { + var parameter = self.inputParameter(2); + if (parameter instanceof ActionUsage actionUsage) { + result = actionUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Membership_memberElementId_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Membership_memberElementId_SettingDelegate.java new file mode 100644 index 000000000..3a9f0595b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Membership_memberElementId_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Membership; + +/** + * Generated setting delegate for {@code Membership.memberElementId}. + */ +public class Membership_memberElementId_SettingDelegate extends AbstractSettingDelegate { + + public Membership_memberElementId_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Membership.memberElementId"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveMembershipMemberElementId + * memberElementId = memberElement.elementId + */ + String result = null; + if (owner instanceof Membership self && self.getMemberElement() != null) { + result = self.getMemberElement().getElementId(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Membership_membershipOwningNamespace_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Membership_membershipOwningNamespace_SettingDelegate.java new file mode 100644 index 000000000..55856b092 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Membership_membershipOwningNamespace_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Membership.membershipOwningNamespace}. + */ +public class Membership_membershipOwningNamespace_SettingDelegate extends AbstractSettingDelegate { + + public Membership_membershipOwningNamespace_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Membership.membershipOwningNamespace"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Membership.membershipOwningNamespace + * subsets Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate instanceof Namespace) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MetadataAccessExpression_referencedElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MetadataAccessExpression_referencedElement_SettingDelegate.java new file mode 100644 index 000000000..b5fb63086 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MetadataAccessExpression_referencedElement_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code MetadataAccessExpression.referencedElement}. + */ +public class MetadataAccessExpression_referencedElement_SettingDelegate extends AbstractSettingDelegate { + + public MetadataAccessExpression_referencedElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "MetadataAccessExpression.referencedElement"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for MetadataAccessExpression.referencedElement + * subsets Namespace.member + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getNamespace_Member(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Element) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof Element) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MetadataFeature_metaclass_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MetadataFeature_metaclass_SettingDelegate.java new file mode 100644 index 000000000..d96a62191 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MetadataFeature_metaclass_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.model.sysml.MetadataFeature; + +/** + * Generated setting delegate for {@code MetadataFeature.metaclass}. + */ +public class MetadataFeature_metaclass_SettingDelegate extends AbstractSettingDelegate { + + public MetadataFeature_metaclass_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "MetadataFeature.metaclass"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveMetadataFeatureMetaclass + * metaclass = + * let metaclassTypes : Sequence(Type) = type->selectByKind(Metaclass) in + * if metaclassTypes->isEmpty() then null + * else metaClassTypes->first() + * endif + */ + Object result = null; + if (owner instanceof MetadataFeature self) { + for (var type : self.getType()) { + if (type instanceof Metaclass metaclass) { + result = metaclass; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MetadataUsage_metadataDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MetadataUsage_metadataDefinition_SettingDelegate.java new file mode 100644 index 000000000..520ba08e9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MetadataUsage_metadataDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code MetadataUsage.metadataDefinition}. + */ +public class MetadataUsage_metadataDefinition_SettingDelegate extends AbstractSettingDelegate { + + public MetadataUsage_metadataDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "MetadataUsage.metadataDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for MetadataUsage.metadataDefinition + * inferred source Usage.definition + * The MetadataDefinition that is the definition of this MetadataUsage . + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getUsage_Definition(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Metaclass) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof Metaclass) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MultiplicityRange_bound_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MultiplicityRange_bound_SettingDelegate.java new file mode 100644 index 000000000..0a1842df8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MultiplicityRange_bound_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.MultiplicityRange; + +/** + * Generated setting delegate for {@code MultiplicityRange.bound}. + */ +public class MultiplicityRange_bound_SettingDelegate extends AbstractSettingDelegate { + + public MultiplicityRange_bound_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "MultiplicityRange.bound"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveMultiplicityRangeBound + * bound = + * if upperBound = null then Sequence{} + * else if lowerBound = null then Sequence{upperBound} + * else Sequence{lowerBound, upperBound} + * endif endif + */ + var result = new BasicEList(); + if (owner instanceof MultiplicityRange self) { + var upperBound = self.getUpperBound(); + if (upperBound != null) { + var lowerBound = self.getLowerBound(); + if (lowerBound != null) { + result.add(lowerBound); + } + result.add(upperBound); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MultiplicityRange_lowerBound_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MultiplicityRange_lowerBound_SettingDelegate.java new file mode 100644 index 000000000..92ed9a803 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MultiplicityRange_lowerBound_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.MultiplicityRange; + +/** + * Generated setting delegate for {@code MultiplicityRange.lowerBound}. + */ +public class MultiplicityRange_lowerBound_SettingDelegate extends AbstractSettingDelegate { + + public MultiplicityRange_lowerBound_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "MultiplicityRange.lowerBound"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveMultiplicityRangeLowerBound + * lowerBound = + * let ownedExpressions : Sequence(Expression) = + * ownedMember->selectByKind(Expression) in + * if ownedExpressions->size() < 2 then null + * else ownedExpressions->first() + * endif + */ + Object result = null; + if (owner instanceof MultiplicityRange self) { + var ownedExpressions = self.getOwnedMember().stream() + .filter(Expression.class::isInstance) + .map(Expression.class::cast) + .toList(); + if (ownedExpressions.size() >= 2) { + result = ownedExpressions.getFirst(); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MultiplicityRange_upperBound_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MultiplicityRange_upperBound_SettingDelegate.java new file mode 100644 index 000000000..deddbad21 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/MultiplicityRange_upperBound_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.MultiplicityRange; + +/** + * Generated setting delegate for {@code MultiplicityRange.upperBound}. + */ +public class MultiplicityRange_upperBound_SettingDelegate extends AbstractSettingDelegate { + + public MultiplicityRange_upperBound_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "MultiplicityRange.upperBound"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveMultiplicityRangeUpperBound + * upperBound = + * let ownedExpressions : Sequence(Expression) = + * ownedMember->selectByKind(Expression) in + * if ownedExpressions->isEmpty() then null + * else if ownedExpressions->size() = 1 then ownedExpressions->at(1) + * else ownedExpressions->at(2) + * endif endif + */ + Object result = null; + if (owner instanceof MultiplicityRange self) { + var ownedExpressions = self.getOwnedMember().stream() + .filter(Expression.class::isInstance) + .map(Expression.class::cast) + .toList(); + if (!ownedExpressions.isEmpty()) { + result = ownedExpressions.get(ownedExpressions.size() == 1 ? 0 : 1); + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_importedMembership_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_importedMembership_SettingDelegate.java new file mode 100644 index 000000000..a5a6cdee1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_importedMembership_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated setting delegate for {@code Namespace.importedMembership}. + */ +public class Namespace_importedMembership_SettingDelegate extends AbstractSettingDelegate { + + public Namespace_importedMembership_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Namespace.importedMembership"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveNamespaceImportedMembership + * importedMembership = importedMemberships(Set{}) + */ + var result = new BasicEList(); + if (owner instanceof Namespace self) { + result.addAll(self.importedMemberships(new BasicEList())); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_member_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_member_SettingDelegate.java new file mode 100644 index 000000000..2843e0ca8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_member_SettingDelegate.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.OwningMembership; + +/** + * Generated setting delegate for {@code Namespace.member}. + */ +public class Namespace_member_SettingDelegate extends AbstractSettingDelegate { + + public Namespace_member_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Namespace.member"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveNamespaceOwnedMember + * ownedMember = ownedMembership->selectByKind(OwningMembership).ownedMemberElement + */ + var result = new BasicEList(); + if (owner instanceof Namespace self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof OwningMembership owningMembership + && owningMembership.getOwnedMemberElement() != null) { + result.add(owningMembership.getOwnedMemberElement()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_membership_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_membership_SettingDelegate.java new file mode 100644 index 000000000..c64267fca --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_membership_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated setting delegate for {@code Namespace.membership}. + */ +public class Namespace_membership_SettingDelegate extends AbstractSettingDelegate { + + public Namespace_membership_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Namespace.membership"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveNamespaceImportedMembership + * importedMembership = importedMemberships(Set{}) + */ + var result = new BasicEList(); + if (owner instanceof Namespace self) { + result.addAll(self.importedMemberships(new BasicEList())); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_ownedImport_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_ownedImport_SettingDelegate.java new file mode 100644 index 000000000..3beafbbdd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_ownedImport_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Import; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated setting delegate for {@code Namespace.ownedImport}. + */ +public class Namespace_ownedImport_SettingDelegate extends AbstractSettingDelegate { + + public Namespace_ownedImport_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Namespace.ownedImport"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveNamespaceOwnedImport + * ownedImport = ownedRelationship->selectByKind(Import) + */ + var result = new BasicEList(); + if (owner instanceof Namespace self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof Import ownedImport) { + result.add(ownedImport); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_ownedMember_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_ownedMember_SettingDelegate.java new file mode 100644 index 000000000..612b0d69d --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_ownedMember_SettingDelegate.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.OwningMembership; + +/** + * Generated setting delegate for {@code Namespace.ownedMember}. + */ +public class Namespace_ownedMember_SettingDelegate extends AbstractSettingDelegate { + + public Namespace_ownedMember_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Namespace.ownedMember"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveNamespaceOwnedMember + * ownedMember = ownedMembership->selectByKind(OwningMembership).ownedMemberElement + */ + var result = new BasicEList(); + if (owner instanceof Namespace self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof OwningMembership owningMembership + && owningMembership.getOwnedMemberElement() != null) { + result.add(owningMembership.getOwnedMemberElement()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_ownedMembership_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_ownedMembership_SettingDelegate.java new file mode 100644 index 000000000..0b3d8934c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Namespace_ownedMembership_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; + +/** + * Generated setting delegate for {@code Namespace.ownedMembership}. + */ +public class Namespace_ownedMembership_SettingDelegate extends AbstractSettingDelegate { + + public Namespace_ownedMembership_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Namespace.ownedMembership"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveNamespaceOwnedMembership + * ownedMembership = ownedRelationship->selectByKind(Membership) + */ + var result = new BasicEList(); + if (owner instanceof Namespace self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof Membership membership) { + result.add(membership); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ObjectiveMembership_ownedObjectiveRequirement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ObjectiveMembership_ownedObjectiveRequirement_SettingDelegate.java new file mode 100644 index 000000000..35160b7bd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ObjectiveMembership_ownedObjectiveRequirement_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ObjectiveMembership.ownedObjectiveRequirement}. + */ +public class ObjectiveMembership_ownedObjectiveRequirement_SettingDelegate extends AbstractSettingDelegate { + + public ObjectiveMembership_ownedObjectiveRequirement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ObjectiveMembership.ownedObjectiveRequirement"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for ObjectiveMembership.ownedObjectiveRequirement + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof RequirementUsage) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof RequirementUsage) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof RequirementUsage) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OccurrenceUsage_individualDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OccurrenceUsage_individualDefinition_SettingDelegate.java new file mode 100644 index 000000000..849cec783 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OccurrenceUsage_individualDefinition_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.OccurrenceDefinition; +import org.omg.sysml.model.sysml.OccurrenceUsage; + +/** + * Generated setting delegate for {@code OccurrenceUsage.individualDefinition}. + */ +public class OccurrenceUsage_individualDefinition_SettingDelegate extends AbstractSettingDelegate { + + public OccurrenceUsage_individualDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "OccurrenceUsage.individualDefinition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveOccurrenceUsageIndividualDefinition + * individualDefinition = + * let individualDefinitions : OrderedSet(OccurrenceDefinition) = + * occurrenceDefinition-> + * selectByKind(OccurrenceDefinition)-> + * select(isIndividual) in + * if individualDefinitions->isEmpty() then null + * else individualDefinitions->first() endif + */ + Object result = null; + if (owner instanceof OccurrenceUsage self) { + for (var occurrenceDefinition : self.getOccurrenceDefinition()) { + if (occurrenceDefinition instanceof OccurrenceDefinition typedOccurrenceDefinition + && typedOccurrenceDefinition.isIsIndividual()) { + result = typedOccurrenceDefinition; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OccurrenceUsage_occurrenceDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OccurrenceUsage_occurrenceDefinition_SettingDelegate.java new file mode 100644 index 000000000..3764a2203 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OccurrenceUsage_occurrenceDefinition_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Class; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code OccurrenceUsage.occurrenceDefinition}. + */ +public class OccurrenceUsage_occurrenceDefinition_SettingDelegate extends AbstractSettingDelegate { + + public OccurrenceUsage_occurrenceDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "OccurrenceUsage.occurrenceDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for OccurrenceUsage.occurrenceDefinition + * inferred source Feature.type + * The Classes that are the types of this OccurrenceUsage . Nominally, these are OccurrenceDefinitions , but other kinds of kernel Classes are also allowed, to permit use of Classes from the Kernel Model Libraries. + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Class) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Class) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberElementId_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberElementId_SettingDelegate.java new file mode 100644 index 000000000..4076f1f5a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberElementId_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code OwningMembership.ownedMemberElementId}. + */ +public class OwningMembership_ownedMemberElementId_SettingDelegate extends AbstractSettingDelegate { + + public OwningMembership_ownedMemberElementId_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "OwningMembership.ownedMemberElementId"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for OwningMembership.ownedMemberElementId + * inferred source Element.elementId + * The elementId of the ownedMemberElement . + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getElement_ElementId(), resolve); + if (candidate instanceof String) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberElement_SettingDelegate.java new file mode 100644 index 000000000..7f6461546 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberElement_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code OwningMembership.ownedMemberElement}. + */ +public class OwningMembership_ownedMemberElement_SettingDelegate extends AbstractSettingDelegate { + + public OwningMembership_ownedMemberElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "OwningMembership.ownedMemberElement"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for OwningMembership.ownedMemberElement + * subsets Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Element) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof Element) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberName_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberName_SettingDelegate.java new file mode 100644 index 000000000..9e9dc2e8c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberName_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.OwningMembership; + +/** + * Generated setting delegate for {@code OwningMembership.ownedMemberName}. + */ +public class OwningMembership_ownedMemberName_SettingDelegate extends AbstractSettingDelegate { + + public OwningMembership_ownedMemberName_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "OwningMembership.ownedMemberName"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveOwningMembershipOwnedMemberName + * ownedMemberName = ownedMemberElement.name + */ + String result = null; + if (owner instanceof OwningMembership self && self.getOwnedMemberElement() != null) { + result = self.getOwnedMemberElement().getName(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberShortName_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberShortName_SettingDelegate.java new file mode 100644 index 000000000..92ddddfa6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/OwningMembership_ownedMemberShortName_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.OwningMembership; + +/** + * Generated setting delegate for {@code OwningMembership.ownedMemberShortName}. + */ +public class OwningMembership_ownedMemberShortName_SettingDelegate extends AbstractSettingDelegate { + + public OwningMembership_ownedMemberShortName_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "OwningMembership.ownedMemberShortName"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveOwningMembershipOwnedMemberShortName + * ownedMemberShortName = ownedMemberElement.shortName + */ + Object result = null; + if (owner instanceof OwningMembership self && self.getOwnedMemberElement() != null) { + result = self.getOwnedMemberElement().getShortName(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Package_filterCondition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Package_filterCondition_SettingDelegate.java new file mode 100644 index 000000000..51840cd96 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Package_filterCondition_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ElementFilterMembership; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Package; + +/** + * Generated setting delegate for {@code Package.filterCondition}. + */ +public class Package_filterCondition_SettingDelegate extends AbstractSettingDelegate { + + public Package_filterCondition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Package.filterCondition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 derivePackageFilterCondition + * filterCondition = ownedMembership-> + * selectByKind(ElementFilterMembership).condition + */ + var result = new BasicEList(); + if (owner instanceof Package self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof ElementFilterMembership elementFilterMembership + && elementFilterMembership.getCondition() != null) { + result.add(elementFilterMembership.getCondition()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ParameterMembership_ownedMemberParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ParameterMembership_ownedMemberParameter_SettingDelegate.java new file mode 100644 index 000000000..71f3f43be --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ParameterMembership_ownedMemberParameter_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ParameterMembership.ownedMemberParameter}. + */ +public class ParameterMembership_ownedMemberParameter_SettingDelegate extends AbstractSettingDelegate { + + public ParameterMembership_ownedMemberParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ParameterMembership.ownedMemberParameter"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for ParameterMembership.ownedMemberParameter + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof Feature) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Feature) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof Feature) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PartUsage_partDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PartUsage_partDefinition_SettingDelegate.java new file mode 100644 index 000000000..98cb261f8 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PartUsage_partDefinition_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.PartDefinition; +import org.omg.sysml.model.sysml.PartUsage; + +/** + * Generated setting delegate for {@code PartUsage.partDefinition}. + */ +public class PartUsage_partDefinition_SettingDelegate extends AbstractSettingDelegate { + + public PartUsage_partDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "PartUsage.partDefinition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 derivePartUsagePartDefinition + * itemDefinition->selectByKind(PartDefinition) + */ + var result = new BasicEList(); + if (owner instanceof PartUsage self) { + for (var itemDefinition : self.getItemDefinition()) { + if (itemDefinition instanceof PartDefinition partDefinition) { + result.add(partDefinition); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PerformActionUsage_performedAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PerformActionUsage_performedAction_SettingDelegate.java new file mode 100644 index 000000000..4e8e1fbde --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PerformActionUsage_performedAction_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.PerformActionUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code PerformActionUsage.performedAction}. + */ +public class PerformActionUsage_performedAction_SettingDelegate extends AbstractSettingDelegate { + + public PerformActionUsage_performedAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "PerformActionUsage.performedAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for PerformActionUsage.performedAction + * redefines EventOccurrenceUsage.eventOccurrence + * This follows EventOccurrenceUsage.eventOccurrence semantics specialized for ActionUsage: + * return self when no referencedFeatureTarget exists, otherwise return the referenced + * target when it is an ActionUsage. + */ + Object result = null; + if (owner instanceof PerformActionUsage self) { + var referencedFeatureTarget = self.referencedFeatureTarget(); + if (referencedFeatureTarget == null) { + result = self; + } else if (referencedFeatureTarget instanceof ActionUsage actionUsage) { + result = actionUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PortConjugation_conjugatedPortDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PortConjugation_conjugatedPortDefinition_SettingDelegate.java new file mode 100644 index 000000000..a5360a04f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PortConjugation_conjugatedPortDefinition_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code PortConjugation.conjugatedPortDefinition}. + */ +public class PortConjugation_conjugatedPortDefinition_SettingDelegate extends AbstractSettingDelegate { + + public PortConjugation_conjugatedPortDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "PortConjugation.conjugatedPortDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for PortConjugation.conjugatedPortDefinition + * redefines Conjugation.conjugatedType + * redefines Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getConjugation_ConjugatedType(), resolve); + if (candidate0 instanceof ConjugatedPortDefinition) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate1 instanceof ConjugatedPortDefinition) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PortDefinition_conjugatedPortDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PortDefinition_conjugatedPortDefinition_SettingDelegate.java new file mode 100644 index 000000000..6e3879621 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PortDefinition_conjugatedPortDefinition_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.model.sysml.PortDefinition; + +/** + * Generated setting delegate for {@code PortDefinition.conjugatedPortDefinition}. + */ +public class PortDefinition_conjugatedPortDefinition_SettingDelegate extends AbstractSettingDelegate { + + public PortDefinition_conjugatedPortDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "PortDefinition.conjugatedPortDefinition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 derivePortDefinitionConjugatedPortDefinition + * conjugatedPortDefinition = + * let conjugatedPortDefinitions : OrderedSet(ConjugatedPortDefinition) = + * ownedMember->selectByKind(ConjugatedPortDefinition) in + * if conjugatedPortDefinitions->isEmpty() then null + * else conjugatedPortDefinitions->first() + * endif + */ + ConjugatedPortDefinition result = null; + if (owner instanceof PortDefinition self) { + for (var ownedMember : self.getOwnedMember()) { + if (ownedMember instanceof ConjugatedPortDefinition conjugatedPortDefinition) { + result = conjugatedPortDefinition; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PortUsage_portDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PortUsage_portDefinition_SettingDelegate.java new file mode 100644 index 000000000..f04a42a72 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/PortUsage_portDefinition_SettingDelegate.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.FeatureTyping; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * Generated setting delegate for {@code PortUsage.portDefinition}. + */ +public class PortUsage_portDefinition_SettingDelegate extends AbstractSettingDelegate { + + public PortUsage_portDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "PortUsage.portDefinition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for PortUsage.portDefinition + * inferred source Feature.ownedTyping + * The occurrenceDefinitions of this PortUsage, which must all be PortDefinitions. + * + * This implementation uses Feature.ownedTyping as source to avoid recursive evaluation between: + * - PortUsage.portDefinition (this feature), and + * - OccurrenceUsage.occurrenceDefinition (redefined in PortUsageImpl from portDefinition). + */ + var values = new BasicEList(); + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_OwnedTyping(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof FeatureTyping featureTyping) { + var typed = featureTyping.getType(); + if (typed instanceof PortDefinition) { + values.add(typed); + } + } + } + } else if (sourceValue instanceof FeatureTyping featureTyping) { + var typed = featureTyping.getType(); + if (typed instanceof PortDefinition) { + values.add(typed); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ReferenceSubsetting_referencingFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ReferenceSubsetting_referencingFeature_SettingDelegate.java new file mode 100644 index 000000000..39eb2ab96 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ReferenceSubsetting_referencingFeature_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ReferenceSubsetting.referencingFeature}. + */ +public class ReferenceSubsetting_referencingFeature_SettingDelegate extends AbstractSettingDelegate { + + public ReferenceSubsetting_referencingFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ReferenceSubsetting.referencingFeature"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for ReferenceSubsetting.referencingFeature + * redefines Relationship.owningRelatedElement + * redefines Specialization.specific + * redefines Subsetting.subsettingFeature + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate0 instanceof Feature) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getSpecialization_Specific(), resolve); + if (candidate1 instanceof Feature) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + var candidate2 = owner.eGet(SysMLPackage.eINSTANCE.getSubsetting_SubsettingFeature(), resolve); + if (candidate2 instanceof Feature) { + resolvedValue = candidate2; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ReferenceUsage_isReference_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ReferenceUsage_isReference_SettingDelegate.java new file mode 100644 index 000000000..1eb9d0f96 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ReferenceUsage_isReference_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code ReferenceUsage.isReference}. + */ +public class ReferenceUsage_isReference_SettingDelegate extends AbstractSettingDelegate { + + public ReferenceUsage_isReference_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ReferenceUsage.isReference"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageIsReference + * isReference = not isComposite + */ + Object result = null; + if (owner instanceof Usage self) { + result = !self.isIsComposite(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Relationship_relatedElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Relationship_relatedElement_SettingDelegate.java new file mode 100644 index 000000000..b2a2030f9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Relationship_relatedElement_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Relationship; + +/** + * Generated setting delegate for {@code Relationship.relatedElement}. + */ +public class Relationship_relatedElement_SettingDelegate extends AbstractSettingDelegate { + + public Relationship_relatedElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Relationship.relatedElement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRelationshipRelatedElement + * relatedElement = source->union(target) + */ + var result = new BasicEList(); + if (owner instanceof Relationship self) { + for (var source : self.getSource()) { + if (!result.contains(source)) { + result.add(source); + } + } + for (var target : self.getTarget()) { + if (!result.contains(target)) { + result.add(target); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RenderingDefinition_rendering_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RenderingDefinition_rendering_SettingDelegate.java new file mode 100644 index 000000000..eb45b3d4a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RenderingDefinition_rendering_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.RenderingDefinition; +import org.omg.sysml.model.sysml.RenderingUsage; + +/** + * Generated setting delegate for {@code RenderingDefinition.rendering}. + */ +public class RenderingDefinition_rendering_SettingDelegate extends AbstractSettingDelegate { + + public RenderingDefinition_rendering_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RenderingDefinition.rendering"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRenderingDefinitionRendering + * rendering = usages->selectByKind(RenderingUsage) + */ + var result = new BasicEList(); + if (owner instanceof RenderingDefinition self) { + for (var usage : self.getUsage()) { + if (usage instanceof RenderingUsage renderingUsage) { + result.add(renderingUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RenderingUsage_renderingDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RenderingUsage_renderingDefinition_SettingDelegate.java new file mode 100644 index 000000000..c9e40acf5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RenderingUsage_renderingDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.RenderingDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code RenderingUsage.renderingDefinition}. + */ +public class RenderingUsage_renderingDefinition_SettingDelegate extends AbstractSettingDelegate { + + public RenderingUsage_renderingDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RenderingUsage.renderingDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for RenderingUsage.renderingDefinition + * inferred source Usage.definition + * The RenderingDefinition that is the definition of this RenderingUsage . + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getUsage_Definition(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof RenderingDefinition) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof RenderingDefinition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementConstraintMembership_ownedConstraint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementConstraintMembership_ownedConstraint_SettingDelegate.java new file mode 100644 index 000000000..b1216aa16 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementConstraintMembership_ownedConstraint_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code RequirementConstraintMembership.ownedConstraint}. + */ +public class RequirementConstraintMembership_ownedConstraint_SettingDelegate extends AbstractSettingDelegate { + + public RequirementConstraintMembership_ownedConstraint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementConstraintMembership.ownedConstraint"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for RequirementConstraintMembership.ownedConstraint + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof ConstraintUsage) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof ConstraintUsage) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof ConstraintUsage) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementConstraintMembership_referencedConstraint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementConstraintMembership_referencedConstraint_SettingDelegate.java new file mode 100644 index 000000000..30400b792 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementConstraintMembership_referencedConstraint_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; + +/** + * Generated setting delegate for {@code RequirementConstraintMembership.referencedConstraint}. + */ +public class RequirementConstraintMembership_referencedConstraint_SettingDelegate extends AbstractSettingDelegate { + + public RequirementConstraintMembership_referencedConstraint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementConstraintMembership.referencedConstraint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementConstraintMembershipReferencedConstraint + * referencedConstraint = + * let referencedFeature : Feature = + * ownedConstraint.referencedFeatureTarget() in + * if referencedFeature = null then ownedConstraint + * else if referencedFeature.oclIsKindOf(ConstraintUsage) then + * refrencedFeature.oclAsType(ConstraintUsage) + * else null + * endif endif + */ + Object result = null; + if (owner instanceof RequirementConstraintMembership self && self.getOwnedConstraint() != null) { + var referencedFeature = self.getOwnedConstraint().referencedFeatureTarget(); + if (referencedFeature == null) { + result = self.getOwnedConstraint(); + } else if (referencedFeature instanceof ConstraintUsage constraintUsage) { + result = constraintUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_actorParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_actorParameter_SettingDelegate.java new file mode 100644 index 000000000..bfe19737c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_actorParameter_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ActorMembership; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.RequirementDefinition; + +/** + * Generated setting delegate for {@code RequirementDefinition.actorParameter}. + */ +public class RequirementDefinition_actorParameter_SettingDelegate extends AbstractSettingDelegate { + + public RequirementDefinition_actorParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementDefinition.actorParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementDefinitionActorParameter + * actorParameter = featureMembership-> + * selectByKind(ActorMembership). + * ownedActorParameter + */ + var result = new BasicEList(); + if (owner instanceof RequirementDefinition self) { + for (var membership : self.getFeatureMembership()) { + if (membership instanceof ActorMembership actorMembership + && actorMembership.getOwnedActorParameter() != null) { + result.add(actorMembership.getOwnedActorParameter()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_assumedConstraint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_assumedConstraint_SettingDelegate.java new file mode 100644 index 000000000..97cb3fc14 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_assumedConstraint_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.RequirementConstraintKind; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; +import org.omg.sysml.model.sysml.RequirementDefinition; + +/** + * Generated setting delegate for {@code RequirementDefinition.assumedConstraint}. + */ +public class RequirementDefinition_assumedConstraint_SettingDelegate extends AbstractSettingDelegate { + + public RequirementDefinition_assumedConstraint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementDefinition.assumedConstraint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementDefinitionAssumedConstraint + * assumedConstraint = ownedFeatureMembership-> + * selectByKind(RequirementConstraintMembership)-> + * select(kind = RequirementConstraintKind::assumption). + * ownedConstraint + */ + var result = new BasicEList(); + if (owner instanceof RequirementDefinition self) { + for (var membership : self.getOwnedFeatureMembership()) { + if (membership instanceof RequirementConstraintMembership requirementConstraintMembership + && requirementConstraintMembership.getKind() == RequirementConstraintKind.ASSUMPTION + && requirementConstraintMembership.getOwnedConstraint() != null) { + result.add(requirementConstraintMembership.getOwnedConstraint()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_framedConcern_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_framedConcern_SettingDelegate.java new file mode 100644 index 000000000..7606d2cee --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_framedConcern_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.FramedConcernMembership; +import org.omg.sysml.model.sysml.RequirementDefinition; + +/** + * Generated setting delegate for {@code RequirementDefinition.framedConcern}. + */ +public class RequirementDefinition_framedConcern_SettingDelegate extends AbstractSettingDelegate { + + public RequirementDefinition_framedConcern_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementDefinition.framedConcern"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementDefinitionFramedConcern + * framedConcern = featureMembership-> + * selectByKind(FramedConcernMembership). + * ownedConcern + */ + var result = new BasicEList(); + if (owner instanceof RequirementDefinition self) { + for (var membership : self.getFeatureMembership()) { + if (membership instanceof FramedConcernMembership framedConcernMembership + && framedConcernMembership.getOwnedConcern() != null) { + result.add(framedConcernMembership.getOwnedConcern()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_requiredConstraint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_requiredConstraint_SettingDelegate.java new file mode 100644 index 000000000..0e36281f7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_requiredConstraint_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.RequirementConstraintKind; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; +import org.omg.sysml.model.sysml.RequirementDefinition; + +/** + * Generated setting delegate for {@code RequirementDefinition.requiredConstraint}. + */ +public class RequirementDefinition_requiredConstraint_SettingDelegate extends AbstractSettingDelegate { + + public RequirementDefinition_requiredConstraint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementDefinition.requiredConstraint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementDefinitionRequiredConstraint + * requiredConstraint = ownedFeatureMembership-> + * selectByKind(RequirementConstraintMembership)-> + * select(kind = RequirementConstraintKind::requirement). + * ownedConstraint + */ + var result = new BasicEList(); + if (owner instanceof RequirementDefinition self) { + for (var membership : self.getOwnedFeatureMembership()) { + if (membership instanceof RequirementConstraintMembership requirementConstraintMembership + && requirementConstraintMembership.getKind() == RequirementConstraintKind.REQUIREMENT + && requirementConstraintMembership.getOwnedConstraint() != null) { + result.add(requirementConstraintMembership.getOwnedConstraint()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_stakeholderParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_stakeholderParameter_SettingDelegate.java new file mode 100644 index 000000000..342870392 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_stakeholderParameter_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.model.sysml.StakeholderMembership; + +/** + * Generated setting delegate for {@code RequirementDefinition.stakeholderParameter}. + */ +public class RequirementDefinition_stakeholderParameter_SettingDelegate extends AbstractSettingDelegate { + + public RequirementDefinition_stakeholderParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementDefinition.stakeholderParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementDefinitionStakeholderParameter + * stakeholderParameter = featureMembership-> + * selectByKind(StakholderMembership). + * ownedStakeholderParameter + */ + var result = new BasicEList(); + if (owner instanceof RequirementDefinition self) { + for (var membership : self.getOwnedFeatureMembership()) { + if (membership instanceof StakeholderMembership stakeholderMembership + && stakeholderMembership.getOwnedStakeholderParameter() != null) { + result.add(stakeholderMembership.getOwnedStakeholderParameter()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_subjectParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_subjectParameter_SettingDelegate.java new file mode 100644 index 000000000..546368ad1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_subjectParameter_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.model.sysml.SubjectMembership; + +/** + * Generated setting delegate for {@code RequirementDefinition.subjectParameter}. + */ +public class RequirementDefinition_subjectParameter_SettingDelegate extends AbstractSettingDelegate { + + public RequirementDefinition_subjectParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementDefinition.subjectParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementDefinitionSubjectParameter + * subjectParameter = + * let subjects : OrderedSet(SubjectMembership) = + * featureMembership->selectByKind(SubjectMembership) in + * if subjects->isEmpty() then null + * else subjects->first().ownedSubjectParameter + * endif + */ + Object result = null; + if (owner instanceof RequirementDefinition self) { + for (var membership : self.getFeatureMembership()) { + if (membership instanceof SubjectMembership subjectMembership) { + result = subjectMembership.getOwnedSubjectParameter(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_text_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_text_SettingDelegate.java new file mode 100644 index 000000000..73eec1c5f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementDefinition_text_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.RequirementDefinition; + +/** + * Generated setting delegate for {@code RequirementDefinition.text}. + */ +public class RequirementDefinition_text_SettingDelegate extends AbstractSettingDelegate { + + public RequirementDefinition_text_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementDefinition.text"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementDefinitionText + * text = documentation.body + */ + var result = new BasicEList(); + if (owner instanceof RequirementDefinition self) { + for (var documentation : self.getDocumentation()) { + if (documentation.getBody() != null) { + result.add(documentation.getBody()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_actorParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_actorParameter_SettingDelegate.java new file mode 100644 index 000000000..8c7760f78 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_actorParameter_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ActorMembership; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.RequirementUsage; + +/** + * Generated setting delegate for {@code RequirementUsage.actorParameter}. + */ +public class RequirementUsage_actorParameter_SettingDelegate extends AbstractSettingDelegate { + + public RequirementUsage_actorParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementUsage.actorParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementUsageActorParameter + * actorParameter = featureMembership-> + * selectByKind(ActorMembership). + * ownedActorParameter + */ + var result = new BasicEList(); + if (owner instanceof RequirementUsage self) { + for (var membership : self.getFeatureMembership()) { + if (membership instanceof ActorMembership actorMembership + && actorMembership.getOwnedActorParameter() != null) { + result.add(actorMembership.getOwnedActorParameter()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_assumedConstraint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_assumedConstraint_SettingDelegate.java new file mode 100644 index 000000000..cb2b76ba4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_assumedConstraint_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.RequirementConstraintKind; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; +import org.omg.sysml.model.sysml.RequirementUsage; + +/** + * Generated setting delegate for {@code RequirementUsage.assumedConstraint}. + */ +public class RequirementUsage_assumedConstraint_SettingDelegate extends AbstractSettingDelegate { + + public RequirementUsage_assumedConstraint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementUsage.assumedConstraint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementUsageAssumedConstraint + * assumedConstraint = ownedFeatureMembership-> + * selectByKind(RequirementConstraintMembership)-> + * select(kind = RequirementConstraintKind::assumption). + * ownedConstraint + */ + var result = new BasicEList(); + if (owner instanceof RequirementUsage self) { + for (var membership : self.getOwnedFeatureMembership()) { + if (membership instanceof RequirementConstraintMembership requirementConstraintMembership + && requirementConstraintMembership.getKind() == RequirementConstraintKind.ASSUMPTION + && requirementConstraintMembership.getOwnedConstraint() != null) { + result.add(requirementConstraintMembership.getOwnedConstraint()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_framedConcern_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_framedConcern_SettingDelegate.java new file mode 100644 index 000000000..18c7cb4ef --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_framedConcern_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.FramedConcernMembership; +import org.omg.sysml.model.sysml.RequirementUsage; + +/** + * Generated setting delegate for {@code RequirementUsage.framedConcern}. + */ +public class RequirementUsage_framedConcern_SettingDelegate extends AbstractSettingDelegate { + + public RequirementUsage_framedConcern_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementUsage.framedConcern"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementUsageFramedConcern + * framedConcern = featureMembership-> + * selectByKind(FramedConcernMembership). + * ownedConcern + */ + var result = new BasicEList(); + if (owner instanceof RequirementUsage self) { + for (var membership : self.getFeatureMembership()) { + if (membership instanceof FramedConcernMembership framedConcernMembership + && framedConcernMembership.getOwnedConcern() != null) { + result.add(framedConcernMembership.getOwnedConcern()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_requiredConstraint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_requiredConstraint_SettingDelegate.java new file mode 100644 index 000000000..c94ad7d3c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_requiredConstraint_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.RequirementConstraintKind; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; +import org.omg.sysml.model.sysml.RequirementUsage; + +/** + * Generated setting delegate for {@code RequirementUsage.requiredConstraint}. + */ +public class RequirementUsage_requiredConstraint_SettingDelegate extends AbstractSettingDelegate { + + public RequirementUsage_requiredConstraint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementUsage.requiredConstraint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementUsageRequiredConstraint + * requiredConstraint = ownedFeatureMembership-> + * selectByKind(RequirementConstraintMembership)-> + * select(kind = RequirementConstraintKind::requirement). + * ownedConstraint + */ + var result = new BasicEList(); + if (owner instanceof RequirementUsage self) { + for (var membership : self.getOwnedFeatureMembership()) { + if (membership instanceof RequirementConstraintMembership requirementConstraintMembership + && requirementConstraintMembership.getKind() == RequirementConstraintKind.REQUIREMENT + && requirementConstraintMembership.getOwnedConstraint() != null) { + result.add(requirementConstraintMembership.getOwnedConstraint()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_requirementDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_requirementDefinition_SettingDelegate.java new file mode 100644 index 000000000..61aba36e4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_requirementDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code RequirementUsage.requirementDefinition}. + */ +public class RequirementUsage_requirementDefinition_SettingDelegate extends AbstractSettingDelegate { + + public RequirementUsage_requirementDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementUsage.requirementDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for RequirementUsage.requirementDefinition + * inferred source Usage.definition + * The RequirementDefinition that is the single definition of this RequirementUsage . + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getUsage_Definition(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof RequirementDefinition) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof RequirementDefinition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_stakeholderParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_stakeholderParameter_SettingDelegate.java new file mode 100644 index 000000000..d37e5d39e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_stakeholderParameter_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.StakeholderMembership; + +/** + * Generated setting delegate for {@code RequirementUsage.stakeholderParameter}. + */ +public class RequirementUsage_stakeholderParameter_SettingDelegate extends AbstractSettingDelegate { + + public RequirementUsage_stakeholderParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementUsage.stakeholderParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementUsageStakeholderParameter + * stakeholderParameter = featureMembership-> + * selectByKind(AStakholderMembership). + * ownedStakeholderParameter + */ + var result = new BasicEList(); + if (owner instanceof RequirementUsage self) { + for (var membership : self.getFeatureMembership()) { + if (membership instanceof StakeholderMembership stakeholderMembership + && stakeholderMembership.getOwnedStakeholderParameter() != null) { + result.add(stakeholderMembership.getOwnedStakeholderParameter()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_subjectParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_subjectParameter_SettingDelegate.java new file mode 100644 index 000000000..cf2f0fe28 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_subjectParameter_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SubjectMembership; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code RequirementUsage.subjectParameter}. + */ +public class RequirementUsage_subjectParameter_SettingDelegate extends AbstractSettingDelegate { + + public RequirementUsage_subjectParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementUsage.subjectParameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementUsageSubjectParameter + * subjectParameter = + * let subjects : OrderedSet(SubjectMembership) = + * featureMembership->selectByKind(SubjectMembership) in + * if subjects->isEmpty() then null + * else subjects->first().ownedSubjectParameter + * endif + */ + Usage result = null; + if (owner instanceof RequirementUsage self) { + for (var featureMembership : self.getOwnedFeatureMembership()) { + if (featureMembership instanceof SubjectMembership subjectMembership) { + result = subjectMembership.getOwnedSubjectParameter(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_text_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_text_SettingDelegate.java new file mode 100644 index 000000000..53e900368 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementUsage_text_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.RequirementUsage; + +/** + * Generated setting delegate for {@code RequirementUsage.text}. + */ +public class RequirementUsage_text_SettingDelegate extends AbstractSettingDelegate { + + public RequirementUsage_text_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementUsage.text"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveRequirementUsageText + * text = documentation.body + */ + var result = new BasicEList(); + if (owner instanceof RequirementUsage self) { + for (var documentation : self.getDocumentation()) { + if (documentation.getBody() != null) { + result.add(documentation.getBody()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementVerificationMembership_ownedRequirement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementVerificationMembership_ownedRequirement_SettingDelegate.java new file mode 100644 index 000000000..900a552cc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementVerificationMembership_ownedRequirement_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code RequirementVerificationMembership.ownedRequirement}. + */ +public class RequirementVerificationMembership_ownedRequirement_SettingDelegate extends AbstractSettingDelegate { + + public RequirementVerificationMembership_ownedRequirement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementVerificationMembership.ownedRequirement"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for RequirementVerificationMembership.ownedRequirement + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof RequirementUsage) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof RequirementUsage) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof RequirementUsage) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementVerificationMembership_verifiedRequirement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementVerificationMembership_verifiedRequirement_SettingDelegate.java new file mode 100644 index 000000000..9fcf7cd53 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/RequirementVerificationMembership_verifiedRequirement_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * Generated setting delegate for {@code RequirementVerificationMembership.verifiedRequirement}. + */ +public class RequirementVerificationMembership_verifiedRequirement_SettingDelegate extends AbstractSettingDelegate { + + public RequirementVerificationMembership_verifiedRequirement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "RequirementVerificationMembership.verifiedRequirement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for RequirementVerificationMembership.verifiedRequirement + * redefines RequirementConstraintMembership.referencedConstraint + * The RequirementUsage identified as being verified. It is the + * RequirementConstraintMembership.referencedConstraint narrowed to RequirementUsage. + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getRequirementConstraintMembership_ReferencedConstraint(), resolve); + if (candidate instanceof RequirementUsage) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ResultExpressionMembership_ownedResultExpression_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ResultExpressionMembership_ownedResultExpression_SettingDelegate.java new file mode 100644 index 000000000..b57d54184 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ResultExpressionMembership_ownedResultExpression_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ResultExpressionMembership.ownedResultExpression}. + */ +public class ResultExpressionMembership_ownedResultExpression_SettingDelegate extends AbstractSettingDelegate { + + public ResultExpressionMembership_ownedResultExpression_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ResultExpressionMembership.ownedResultExpression"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for ResultExpressionMembership.ownedResultExpression + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof Expression) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Expression) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof Expression) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SatisfyRequirementUsage_satisfiedRequirement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SatisfyRequirementUsage_satisfiedRequirement_SettingDelegate.java new file mode 100644 index 000000000..d3ef30845 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SatisfyRequirementUsage_satisfiedRequirement_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SatisfyRequirementUsage; + +/** + * Generated setting delegate for {@code SatisfyRequirementUsage.satisfiedRequirement}. + */ +public class SatisfyRequirementUsage_satisfiedRequirement_SettingDelegate extends AbstractSettingDelegate { + + public SatisfyRequirementUsage_satisfiedRequirement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + protected String delegateId() { + return "SatisfyRequirementUsage.satisfiedRequirement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for SatisfyRequirementUsage.satisfiedRequirement + * redefines AssertConstraintUsage.assertedConstraint + * The RequirementUsage asserted by this SatisfyRequirementUsage. + * + * This implementation intentionally avoids sourcing from AssertConstraintUsage.assertedConstraint, + * because in SatisfyRequirementUsageImpl that accessor is itself derived from + * getSatisfiedRequirement(), which would create recursion. + */ + Object result = null; + if (owner instanceof SatisfyRequirementUsage self) { + var referencedFeatureTarget = self.referencedFeatureTarget(); + if (referencedFeatureTarget == null) { + result = self; + } else if (referencedFeatureTarget instanceof RequirementUsage requirementUsage) { + result = requirementUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SatisfyRequirementUsage_satisfyingFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SatisfyRequirementUsage_satisfyingFeature_SettingDelegate.java new file mode 100644 index 000000000..1c2695a25 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SatisfyRequirementUsage_satisfyingFeature_SettingDelegate.java @@ -0,0 +1,87 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.BindingConnector; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.SatisfyRequirementUsage; + +/** + * Generated setting delegate for {@code SatisfyRequirementUsage.satisfyingFeature}. + */ +public class SatisfyRequirementUsage_satisfyingFeature_SettingDelegate extends AbstractSettingDelegate { + + public SatisfyRequirementUsage_satisfyingFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "SatisfyRequirementUsage.satisfyingFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveSatisfyRequirementUsageSatisfyingFeature + * satisfyingFeature = + * let bindings: BindingConnector = ownedMember-> + * selectByKind(BindingConnector)-> + * select(b | b.relatedElement->includes(subjectParameter)) in + * if bindings->isEmpty() or + * bindings->first().relatedElement->exits(r | r <> subjectParameter) + * then null + * else bindings->first().relatedElement->any(r | r <> subjectParameter) + * endif + */ + Object result = null; + if (owner instanceof SatisfyRequirementUsage self && self.getSubjectParameter() != null) { + BindingConnector firstBinding = null; + for (var ownedMember : self.getOwnedMember()) { + if (ownedMember instanceof BindingConnector bindingConnector + && bindingConnector.getRelatedElement().contains(self.getSubjectParameter())) { + firstBinding = bindingConnector; + break; + } + } + if (firstBinding != null) { + Element firstOther = null; + for (var relatedElement : firstBinding.getRelatedElement()) { + if (relatedElement != self.getSubjectParameter()) { + firstOther = relatedElement; + break; + } + } + if (firstOther instanceof Feature feature) { + result = feature; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SendActionUsage_payloadArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SendActionUsage_payloadArgument_SettingDelegate.java new file mode 100644 index 000000000..611547fac --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SendActionUsage_payloadArgument_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.SendActionUsage; + +/** + * Generated setting delegate for {@code SendActionUsage.payloadArgument}. + */ +public class SendActionUsage_payloadArgument_SettingDelegate extends AbstractSettingDelegate { + + public SendActionUsage_payloadArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "SendActionUsage.payloadArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveSendActionUsagePayloadArgument + * payloadArgument = argument(1) + */ + Object result = null; + if (owner instanceof SendActionUsage self) { + result = self.argument(1); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SendActionUsage_receiverArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SendActionUsage_receiverArgument_SettingDelegate.java new file mode 100644 index 000000000..3ff91d6c3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SendActionUsage_receiverArgument_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.SendActionUsage; + +/** + * Generated setting delegate for {@code SendActionUsage.receiverArgument}. + */ +public class SendActionUsage_receiverArgument_SettingDelegate extends AbstractSettingDelegate { + + public SendActionUsage_receiverArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "SendActionUsage.receiverArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveSendActionUsageReceiverArgument + * receiverArgument = argument(3) + */ + Object result = null; + if (owner instanceof SendActionUsage self) { + result = self.argument(3); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SendActionUsage_senderArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SendActionUsage_senderArgument_SettingDelegate.java new file mode 100644 index 000000000..4df6303da --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SendActionUsage_senderArgument_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.SendActionUsage; + +/** + * Generated setting delegate for {@code SendActionUsage.senderArgument}. + */ +public class SendActionUsage_senderArgument_SettingDelegate extends AbstractSettingDelegate { + + public SendActionUsage_senderArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "SendActionUsage.senderArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveSendActionUsageSenderArgument + * senderArgument = argument(2) + */ + Object result = null; + if (owner instanceof SendActionUsage self) { + result = self.argument(2); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Specialization_owningType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Specialization_owningType_SettingDelegate.java new file mode 100644 index 000000000..9a7e6b690 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Specialization_owningType_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Specialization.owningType}. + */ +public class Specialization_owningType_SettingDelegate extends AbstractSettingDelegate { + + public Specialization_owningType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Specialization.owningType"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Specialization.owningType + * subsets Relationship.owningRelatedElement + * subsets Specialization.specific + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate0 instanceof Type) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getSpecialization_Specific(), resolve); + if (candidate1 instanceof Type) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StakeholderMembership_ownedStakeholderParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StakeholderMembership_ownedStakeholderParameter_SettingDelegate.java new file mode 100644 index 000000000..760fae603 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StakeholderMembership_ownedStakeholderParameter_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code StakeholderMembership.ownedStakeholderParameter}. + */ +public class StakeholderMembership_ownedStakeholderParameter_SettingDelegate extends AbstractSettingDelegate { + + public StakeholderMembership_ownedStakeholderParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "StakeholderMembership.ownedStakeholderParameter"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for StakeholderMembership.ownedStakeholderParameter + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof PartUsage) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof PartUsage) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof PartUsage) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_doAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_doAction_SettingDelegate.java new file mode 100644 index 000000000..bd98273ed --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_doAction_SettingDelegate.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.StateDefinition; +import org.omg.sysml.model.sysml.StateSubactionKind; +import org.omg.sysml.model.sysml.StateSubactionMembership; + +/** + * Generated setting delegate for {@code StateDefinition.doAction}. + */ +public class StateDefinition_doAction_SettingDelegate extends AbstractSettingDelegate { + + public StateDefinition_doAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "StateDefinition.doAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveStateDefinitionDoAction + * doAction = + * let doMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::do) in + * if doMemberships->isEmpty() then null + * else doMemberships->at(1) + * endif + */ + Object result = null; + if (owner instanceof StateDefinition self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof StateSubactionMembership stateSubactionMembership + && stateSubactionMembership.getKind() == StateSubactionKind.DO) { + result = stateSubactionMembership.getAction(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_entryAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_entryAction_SettingDelegate.java new file mode 100644 index 000000000..17e036617 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_entryAction_SettingDelegate.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.StateDefinition; +import org.omg.sysml.model.sysml.StateSubactionKind; +import org.omg.sysml.model.sysml.StateSubactionMembership; + +/** + * Generated setting delegate for {@code StateDefinition.entryAction}. + */ +public class StateDefinition_entryAction_SettingDelegate extends AbstractSettingDelegate { + + public StateDefinition_entryAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "StateDefinition.entryAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveStateDefinitionEntryAction + * entryAction = + * let entryMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::entry) in + * if entryMemberships->isEmpty() then null + * else entryMemberships->at(1) + * endif + */ + Object result = null; + if (owner instanceof StateDefinition self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof StateSubactionMembership stateSubactionMembership + && stateSubactionMembership.getKind() == StateSubactionKind.ENTRY) { + result = stateSubactionMembership.getAction(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_exitAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_exitAction_SettingDelegate.java new file mode 100644 index 000000000..1d2bc3796 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_exitAction_SettingDelegate.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.StateDefinition; +import org.omg.sysml.model.sysml.StateSubactionKind; +import org.omg.sysml.model.sysml.StateSubactionMembership; + +/** + * Generated setting delegate for {@code StateDefinition.exitAction}. + */ +public class StateDefinition_exitAction_SettingDelegate extends AbstractSettingDelegate { + + public StateDefinition_exitAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "StateDefinition.exitAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveStateDefinitionExitAction + * exitAction = + * let exitMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::exit) in + * if exitMemberships->isEmpty() then null + * else exitMemberships->at(1) + * endif + */ + Object result = null; + if (owner instanceof StateDefinition self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof StateSubactionMembership stateSubactionMembership + && stateSubactionMembership.getKind() == StateSubactionKind.EXIT) { + result = stateSubactionMembership.getAction(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_state_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_state_SettingDelegate.java new file mode 100644 index 000000000..7eacc3e09 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateDefinition_state_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.StateDefinition; +import org.omg.sysml.model.sysml.StateUsage; + +/** + * Generated setting delegate for {@code StateDefinition.state}. + */ +public class StateDefinition_state_SettingDelegate extends AbstractSettingDelegate { + + public StateDefinition_state_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "StateDefinition.state"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveStateDefinitionState + * state = action->selectByKind(StateUsage) + */ + var result = new BasicEList(); + if (owner instanceof StateDefinition self) { + for (var action : self.getAction()) { + if (action instanceof StateUsage stateUsage) { + result.add(stateUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateSubactionMembership_action_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateSubactionMembership_action_SettingDelegate.java new file mode 100644 index 000000000..11dc397e7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateSubactionMembership_action_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code StateSubactionMembership.action}. + */ +public class StateSubactionMembership_action_SettingDelegate extends AbstractSettingDelegate { + + public StateSubactionMembership_action_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "StateSubactionMembership.action"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for StateSubactionMembership.action + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof ActionUsage) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof ActionUsage) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof ActionUsage) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_doAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_doAction_SettingDelegate.java new file mode 100644 index 000000000..357b4a3ea --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_doAction_SettingDelegate.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.StateSubactionKind; +import org.omg.sysml.model.sysml.StateSubactionMembership; +import org.omg.sysml.model.sysml.StateUsage; + +/** + * Generated setting delegate for {@code StateUsage.doAction}. + */ +public class StateUsage_doAction_SettingDelegate extends AbstractSettingDelegate { + + public StateUsage_doAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "StateUsage.doAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveStateUsageDoAction + * doAction = + * let doMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::do) in + * if doMemberships->isEmpty() then null + * else doMemberships->at(1) + * endif + */ + Object result = null; + if (owner instanceof StateUsage self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof StateSubactionMembership stateSubactionMembership + && stateSubactionMembership.getKind() == StateSubactionKind.DO) { + result = stateSubactionMembership.getAction(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_entryAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_entryAction_SettingDelegate.java new file mode 100644 index 000000000..cc0e6328f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_entryAction_SettingDelegate.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.StateSubactionKind; +import org.omg.sysml.model.sysml.StateSubactionMembership; +import org.omg.sysml.model.sysml.StateUsage; + +/** + * Generated setting delegate for {@code StateUsage.entryAction}. + */ +public class StateUsage_entryAction_SettingDelegate extends AbstractSettingDelegate { + + public StateUsage_entryAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "StateUsage.entryAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveStateUsageEntryAction + * entryAction = + * let entryMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::entry) in + * if entryMemberships->isEmpty() then null + * else entryMemberships->at(1) + * endif + */ + Object result = null; + if (owner instanceof StateUsage self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof StateSubactionMembership stateSubactionMembership + && stateSubactionMembership.getKind() == StateSubactionKind.ENTRY) { + result = stateSubactionMembership.getAction(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_exitAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_exitAction_SettingDelegate.java new file mode 100644 index 000000000..ff3350fb7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_exitAction_SettingDelegate.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.StateSubactionKind; +import org.omg.sysml.model.sysml.StateSubactionMembership; +import org.omg.sysml.model.sysml.StateUsage; + +/** + * Generated setting delegate for {@code StateUsage.exitAction}. + */ +public class StateUsage_exitAction_SettingDelegate extends AbstractSettingDelegate { + + public StateUsage_exitAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "StateUsage.exitAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveStateUsageExitAction + * exitAction = + * let exitMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::exit) in + * if exitMemberships->isEmpty() then null + * else exitMemberships->at(1) + * endif + */ + Object result = null; + if (owner instanceof StateUsage self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof StateSubactionMembership stateSubactionMembership + && stateSubactionMembership.getKind() == StateSubactionKind.EXIT) { + result = stateSubactionMembership.getAction(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_stateDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_stateDefinition_SettingDelegate.java new file mode 100644 index 000000000..38e0a597a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/StateUsage_stateDefinition_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code StateUsage.stateDefinition}. + */ +public class StateUsage_stateDefinition_SettingDelegate extends AbstractSettingDelegate { + + public StateUsage_stateDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "StateUsage.stateDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for StateUsage.stateDefinition + * inferred source Feature.type + * The Behaviors that are the types of this StateUsage . Nominally, these would be StateDefinitions , but kernel Behaviors are also allowed, to permit use of Behaviors from the Kernel Model Libraries. + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Behavior) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Behavior) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Step_behavior_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Step_behavior_SettingDelegate.java new file mode 100644 index 000000000..e4c1ed328 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Step_behavior_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.Step; + +/** + * Generated setting delegate for {@code Step.behavior}. + */ +public class Step_behavior_SettingDelegate extends AbstractSettingDelegate { + + public Step_behavior_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Step.behavior"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveStepBehavior + * behavior = type->selectByKind(Behavior) + */ + var result = new BasicEList(); + if (owner instanceof Step self) { + for (var type : self.getType()) { + if (type instanceof Behavior behavior) { + result.add(behavior); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Step_parameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Step_parameter_SettingDelegate.java new file mode 100644 index 000000000..1d312dc27 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Step_parameter_SettingDelegate.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.ParameterMembership; +import org.omg.sysml.model.sysml.Step; + +/** + * Generated setting delegate for {@code Step.parameter}. + */ +public class Step_parameter_SettingDelegate extends AbstractSettingDelegate { + + public Step_parameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + protected String delegateId() { + return "Step.parameter"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for Step.parameter + * inferred source Type.featureMembership + * The parameters of a Step are the member features identified by ParameterMemberships. + */ + var values = new BasicEList(); + if (owner instanceof Step self) { + for (var featureMembership : self.getFeatureMembership()) { + if (featureMembership instanceof ParameterMembership parameterMembership) { + var parameter = parameterMembership.getOwnedMemberParameter(); + if (parameter instanceof Feature && !values.contains(parameter)) { + values.add(parameter); + } + } + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Subclassification_owningClassifier_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Subclassification_owningClassifier_SettingDelegate.java new file mode 100644 index 000000000..13f13a082 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Subclassification_owningClassifier_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Subclassification.owningClassifier}. + */ +public class Subclassification_owningClassifier_SettingDelegate extends AbstractSettingDelegate { + + public Subclassification_owningClassifier_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Subclassification.owningClassifier"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for Subclassification.owningClassifier + * redefines Relationship.owningRelatedElement + * redefines Specialization.specific + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate0 instanceof Classifier) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getSpecialization_Specific(), resolve); + if (candidate1 instanceof Classifier) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SubjectMembership_ownedSubjectParameter_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SubjectMembership_ownedSubjectParameter_SettingDelegate.java new file mode 100644 index 000000000..1458d5ef5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/SubjectMembership_ownedSubjectParameter_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code SubjectMembership.ownedSubjectParameter}. + */ +public class SubjectMembership_ownedSubjectParameter_SettingDelegate extends AbstractSettingDelegate { + + public SubjectMembership_ownedSubjectParameter_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "SubjectMembership.ownedSubjectParameter"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for SubjectMembership.ownedSubjectParameter + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof Usage) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Usage) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof Usage) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Subsetting_owningFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Subsetting_owningFeature_SettingDelegate.java new file mode 100644 index 000000000..e75f876e1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Subsetting_owningFeature_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Subsetting.owningFeature}. + */ +public class Subsetting_owningFeature_SettingDelegate extends AbstractSettingDelegate { + + public Subsetting_owningFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Subsetting.owningFeature"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Subsetting.owningFeature + * subsets Subsetting.subsettingFeature + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getSubsetting_SubsettingFeature(), resolve); + if (candidate instanceof Feature) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TerminateActionUsage_terminatedOccurrenceArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TerminateActionUsage_terminatedOccurrenceArgument_SettingDelegate.java new file mode 100644 index 000000000..5d5597dc5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TerminateActionUsage_terminatedOccurrenceArgument_SettingDelegate.java @@ -0,0 +1,58 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.TerminateActionUsage; + +/** + * Generated setting delegate for {@code TerminateActionUsage.terminatedOccurrenceArgument}. + */ +public class TerminateActionUsage_terminatedOccurrenceArgument_SettingDelegate extends AbstractSettingDelegate { + + public TerminateActionUsage_terminatedOccurrenceArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "TerminateActionUsage.terminatedOccurrenceArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTerminateActionUsageTerminatedOccurrenceArgument + * terminatedOccurrenceArgument = argument(1) + */ + Expression result = null; + if (owner instanceof TerminateActionUsage self) { + result = self.argument(1); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TextualRepresentation_representedElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TextualRepresentation_representedElement_SettingDelegate.java new file mode 100644 index 000000000..225e69a6e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TextualRepresentation_representedElement_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code TextualRepresentation.representedElement}. + */ +public class TextualRepresentation_representedElement_SettingDelegate extends AbstractSettingDelegate { + + public TextualRepresentation_representedElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "TextualRepresentation.representedElement"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for TextualRepresentation.representedElement + * subsets Element.owner + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getElement_Owner(), resolve); + if (candidate instanceof Element) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionFeatureMembership_transitionFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionFeatureMembership_transitionFeature_SettingDelegate.java new file mode 100644 index 000000000..f46763608 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionFeatureMembership_transitionFeature_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code TransitionFeatureMembership.transitionFeature}. + */ +public class TransitionFeatureMembership_transitionFeature_SettingDelegate extends AbstractSettingDelegate { + + public TransitionFeatureMembership_transitionFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "TransitionFeatureMembership.transitionFeature"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for TransitionFeatureMembership.transitionFeature + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof Step) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Step) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof Step) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_effectAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_effectAction_SettingDelegate.java new file mode 100644 index 000000000..8bbbad0fe --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_effectAction_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.TransitionFeatureKind; +import org.omg.sysml.model.sysml.TransitionFeatureMembership; +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * Generated setting delegate for {@code TransitionUsage.effectAction}. + */ +public class TransitionUsage_effectAction_SettingDelegate extends AbstractSettingDelegate { + + public TransitionUsage_effectAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "TransitionUsage.effectAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTransitionUsageEffectAction + * triggerAction = ownedFeatureMembership-> + * selectByKind(TransitionFeatureMembership)-> + * select(kind = TransitionFeatureKind::trigger).transitionFeatures-> + * selectByKind(AcceptActionUsage) + */ + var result = new BasicEList(); + if (owner instanceof TransitionUsage self) { + for (var ownedFeatureMembership : self.getOwnedFeatureMembership()) { + if (ownedFeatureMembership instanceof TransitionFeatureMembership transitionFeatureMembership + && transitionFeatureMembership.getKind() == TransitionFeatureKind.EFFECT + && transitionFeatureMembership.getTransitionFeature() instanceof ActionUsage actionUsage) { + result.add(actionUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_guardExpression_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_guardExpression_SettingDelegate.java new file mode 100644 index 000000000..c52aa850c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_guardExpression_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.TransitionFeatureKind; +import org.omg.sysml.model.sysml.TransitionFeatureMembership; +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * Generated setting delegate for {@code TransitionUsage.guardExpression}. + */ +public class TransitionUsage_guardExpression_SettingDelegate extends AbstractSettingDelegate { + + public TransitionUsage_guardExpression_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "TransitionUsage.guardExpression"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTransitionUsageGuardExpression + * guardExpression = ownedFeatureMembership-> + * selectByKind(TransitionFeatureMembership)-> + * select(kind = TransitionFeatureKind::trigger).transitionFeature-> + * selectByKind(Expression) + */ + var result = new BasicEList(); + if (owner instanceof TransitionUsage self) { + for (var ownedFeatureMembership : self.getOwnedFeatureMembership()) { + if (ownedFeatureMembership instanceof TransitionFeatureMembership transitionFeatureMembership + && transitionFeatureMembership.getKind() == TransitionFeatureKind.TRIGGER + && transitionFeatureMembership.getTransitionFeature() instanceof Expression expression) { + result.add(expression); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_source_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_source_SettingDelegate.java new file mode 100644 index 000000000..36287933e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_source_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * Generated setting delegate for {@code TransitionUsage.source}. + */ +public class TransitionUsage_source_SettingDelegate extends AbstractSettingDelegate { + + public TransitionUsage_source_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "TransitionUsage.source"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTransitionUsageSource + * source = + * let sourceFeature : Feature = sourceFeature() in + * if sourceFeature = null then null + * else sourceFeature.featureTarget.oclAsType(ActionUsage) + */ + ActionUsage result = null; + if (owner instanceof TransitionUsage self) { + var sourceFeature = self.sourceFeature(); + if (sourceFeature != null && sourceFeature.getFeatureTarget() instanceof ActionUsage actionUsage) { + result = actionUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_succession_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_succession_SettingDelegate.java new file mode 100644 index 000000000..f26719601 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_succession_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Succession; +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * Generated setting delegate for {@code TransitionUsage.succession}. + */ +public class TransitionUsage_succession_SettingDelegate extends AbstractSettingDelegate { + + public TransitionUsage_succession_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "TransitionUsage.succession"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTransitionUsageSuccession + * succession = ownedMember->selectByKind(Succession)->at(1) + */ + Object result = null; + if (owner instanceof TransitionUsage self) { + for (var ownedMember : self.getOwnedMember()) { + if (ownedMember instanceof Succession succession) { + result = succession; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_target_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_target_SettingDelegate.java new file mode 100644 index 000000000..499e6c5c9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_target_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ActionUsage; + +/** + * Generated setting delegate for {@code TransitionUsage.target}. + */ +public class TransitionUsage_target_SettingDelegate extends AbstractSettingDelegate { + + public TransitionUsage_target_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "TransitionUsage.target"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTransitionUsageTarget + * target = + * if succession.targetFeature->isEmpty() then null + * else + * let targetFeature : Feature = + * succession.targetFeature->first().featureTarget in + * if not targetFeature.oclIsKindOf(ActionUsage) then null + * else targetFeature.oclAsType(ActionUsage) + * endif + * endif + */ + Object result = null; + if (owner instanceof org.omg.sysml.model.sysml.TransitionUsage self + && self.getSuccession() != null + && !self.getSuccession().getTargetFeature().isEmpty()) { + var targetFeature = self.getSuccession().getTargetFeature().getFirst().getFeatureTarget(); + if (targetFeature instanceof ActionUsage actionUsage) { + result = actionUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_triggerAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_triggerAction_SettingDelegate.java new file mode 100644 index 000000000..41a6dbe71 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TransitionUsage_triggerAction_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.TransitionFeatureKind; +import org.omg.sysml.model.sysml.TransitionFeatureMembership; +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * Generated setting delegate for {@code TransitionUsage.triggerAction}. + */ +public class TransitionUsage_triggerAction_SettingDelegate extends AbstractSettingDelegate { + + public TransitionUsage_triggerAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "TransitionUsage.triggerAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTransitionUsageTriggerAction + * triggerAction = ownedFeatureMembership-> + * selectByKind(TransitionFeatureMembership)-> + * select(kind = TransitionFeatureKind::trigger).transitionFeature-> + * selectByKind(AcceptActionUsage) + */ + var result = new BasicEList(); + if (owner instanceof TransitionUsage self) { + for (var ownedFeatureMembership : self.getOwnedFeatureMembership()) { + if (ownedFeatureMembership instanceof TransitionFeatureMembership transitionFeatureMembership + && transitionFeatureMembership.getKind() == TransitionFeatureKind.TRIGGER + && transitionFeatureMembership.getTransitionFeature() instanceof AcceptActionUsage acceptActionUsage) { + result.add(acceptActionUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TypeFeaturing_owningFeatureOfType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TypeFeaturing_owningFeatureOfType_SettingDelegate.java new file mode 100644 index 000000000..482bffb2b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/TypeFeaturing_owningFeatureOfType_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code TypeFeaturing.owningFeatureOfType}. + */ +public class TypeFeaturing_owningFeatureOfType_SettingDelegate extends AbstractSettingDelegate { + + public TypeFeaturing_owningFeatureOfType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "TypeFeaturing.owningFeatureOfType"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for TypeFeaturing.owningFeatureOfType + * subsets Relationship.owningRelatedElement + * subsets TypeFeaturing.featureOfType + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate0 instanceof Feature) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getTypeFeaturing_FeatureOfType(), resolve); + if (candidate1 instanceof Feature) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_differencingType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_differencingType_SettingDelegate.java new file mode 100644 index 000000000..b3d8cc4dd --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_differencingType_SettingDelegate.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.differencingType}. + */ +public class Type_differencingType_SettingDelegate extends AbstractSettingDelegate { + + public Type_differencingType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.differencingType"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeDifferencingType + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedDifferencing : self.getOwnedDifferencing()) { + if (ownedDifferencing.getDifferencingType() != null) { + result.add(ownedDifferencing.getDifferencingType()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_directedFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_directedFeature_SettingDelegate.java new file mode 100644 index 000000000..423c1dcd9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_directedFeature_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.directedFeature}. + */ +public class Type_directedFeature_SettingDelegate extends AbstractSettingDelegate { + + public Type_directedFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.directedFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeDirectedFeature + * directedFeature = feature->select(f | directionOf(f) <> null) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var feature : self.getFeature()) { + if (self.directionOf(feature) != null) { + result.add(feature); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_endFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_endFeature_SettingDelegate.java new file mode 100644 index 000000000..bddee93f5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_endFeature_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.endFeature}. + */ +public class Type_endFeature_SettingDelegate extends AbstractSettingDelegate { + + public Type_endFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.endFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeEndFeature + * endFeature = feature->select(isEnd) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var feature : self.getFeature()) { + if (feature.isIsEnd()) { + result.add(feature); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_featureMembership_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_featureMembership_SettingDelegate.java new file mode 100644 index 000000000..fba3f7e1a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_featureMembership_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.featureMembership}. + */ +public class Type_featureMembership_SettingDelegate extends AbstractSettingDelegate { + + public Type_featureMembership_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.featureMembership"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeFeatureMembership + * featureMembership = ownedFeatureMembership->union( + * inheritedMembership->selectByKind(FeatureMembership)) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedFeatureMembership : self.getOwnedFeatureMembership()) { + result.add(ownedFeatureMembership); + } + for (var inheritedMembership : self.getInheritedMembership()) { + if (inheritedMembership instanceof FeatureMembership featureMembership + && !result.contains(featureMembership)) { + result.add(featureMembership); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_feature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_feature_SettingDelegate.java new file mode 100644 index 000000000..9e72d99a7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_feature_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.feature}. + */ +public class Type_feature_SettingDelegate extends AbstractSettingDelegate { + + public Type_feature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.feature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeFeature + * feature = featureMembership.ownedMemberFeature + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var featureMembership : self.getFeatureMembership()) { + var ownedMemberFeature = featureMembership.getOwnedMemberFeature(); + if (ownedMemberFeature != null) { + result.add(ownedMemberFeature); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_inheritedFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_inheritedFeature_SettingDelegate.java new file mode 100644 index 000000000..50fd6db3f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_inheritedFeature_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.inheritedFeature}. + */ +public class Type_inheritedFeature_SettingDelegate extends AbstractSettingDelegate { + + public Type_inheritedFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.inheritedFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeInheritedFeature + * inheritedFeature = inheritedMemberships-> + * selectByKind(FeatureMembership).memberFeature + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var inheritedMembership : self.getInheritedMembership()) { + if (inheritedMembership instanceof FeatureMembership featureMembership) { + var ownedMemberFeature = featureMembership.getOwnedMemberFeature(); + if (ownedMemberFeature != null) { + result.add(ownedMemberFeature); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_inheritedMembership_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_inheritedMembership_SettingDelegate.java new file mode 100644 index 000000000..4b2a89f42 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_inheritedMembership_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.inheritedMembership}. + */ +public class Type_inheritedMembership_SettingDelegate extends AbstractSettingDelegate { + + public Type_inheritedMembership_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.inheritedMembership"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeInheritedMembership + * inheritedMembership = inheritedMemberships(Set{}, Set{}, false) + */ + Object result = new BasicEList<>(); + if (owner instanceof Type self) { + result = self.inheritedMemberships(new BasicEList(), new BasicEList(), false); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_input_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_input_SettingDelegate.java new file mode 100644 index 000000000..e19c2a9bc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_input_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.input}. + */ +public class Type_input_SettingDelegate extends AbstractSettingDelegate { + + public Type_input_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.input"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeInput + * input = feature->select(f | + * let direction: FeatureDirectionKind = directionOf(f) in + * direction = FeatureDirectionKind::_'in' or + * direction = FeatureDirectionKind::inout) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var feature : self.getFeature()) { + var direction = self.directionOf(feature); + if (direction == FeatureDirectionKind.IN || direction == FeatureDirectionKind.INOUT) { + result.add(feature); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_intersectingType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_intersectingType_SettingDelegate.java new file mode 100644 index 000000000..9f0c72b67 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_intersectingType_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.intersectingType}. + */ +public class Type_intersectingType_SettingDelegate extends AbstractSettingDelegate { + + public Type_intersectingType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.intersectingType"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeIntersectingType + * intersectingType = ownedIntersecting.intersectingType + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedIntersecting : self.getOwnedIntersecting()) { + if (ownedIntersecting.getIntersectingType() != null) { + result.add(ownedIntersecting.getIntersectingType()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_isConjugated_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_isConjugated_SettingDelegate.java new file mode 100644 index 000000000..1ddb57e46 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_isConjugated_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.isConjugated}. + */ +public class Type_isConjugated_SettingDelegate extends AbstractSettingDelegate { + + public Type_isConjugated_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.isConjugated"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * From the Type.isConjugated owned comment in SysML_xmi.uml: + * "Indicates whether this Type has an ownedConjugator." + */ + Object result = null; + if (owner instanceof Type self) { + result = self.getOwnedConjugator() != null; + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_multiplicity_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_multiplicity_SettingDelegate.java new file mode 100644 index 000000000..8dd242ee4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_multiplicity_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.multiplicity}. + */ +public class Type_multiplicity_SettingDelegate extends AbstractSettingDelegate { + + public Type_multiplicity_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.multiplicity"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeMultiplicity + * multiplicity = + * let ownedMultiplicities: Sequence(Multiplicity) = + * ownedMember->selectByKind(Multiplicity) in + * if ownedMultiplicities->isEmpty() then null + * else ownedMultiplicities->first() + * endif + */ + Object result = null; + if (owner instanceof Type self) { + for (var ownedMember : self.getOwnedMember()) { + if (ownedMember instanceof Multiplicity multiplicity) { + result = multiplicity; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_output_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_output_SettingDelegate.java new file mode 100644 index 000000000..d6e1bff83 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_output_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.output}. + */ +public class Type_output_SettingDelegate extends AbstractSettingDelegate { + + public Type_output_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.output"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeOutput + * output = feature->select(f | + * let direction: FeatureDirectionKind = directionOf(f) in + * direction = FeatureDirectionKind::out or + * direction = FeatureDirectionKind::inout) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var feature : self.getFeature()) { + var direction = self.directionOf(feature); + if (direction == FeatureDirectionKind.OUT || direction == FeatureDirectionKind.INOUT) { + result.add(feature); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedConjugator_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedConjugator_SettingDelegate.java new file mode 100644 index 000000000..070026e7c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedConjugator_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Conjugation; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.ownedConjugator}. + */ +public class Type_ownedConjugator_SettingDelegate extends AbstractSettingDelegate { + + public Type_ownedConjugator_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.ownedConjugator"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeOwnedConjugator + * ownedConjugator = + * let ownedConjugators: Sequence(Conjugator) = + * ownedRelationship->selectByKind(Conjugation) in + * if ownedConjugators->isEmpty() then null + * else ownedConjugators->at(1) endif + */ + Object result = null; + if (owner instanceof Type self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof Conjugation conjugation) { + result = conjugation; + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedDifferencing_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedDifferencing_SettingDelegate.java new file mode 100644 index 000000000..ef322675f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedDifferencing_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Differencing; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.ownedDifferencing}. + */ +public class Type_ownedDifferencing_SettingDelegate extends AbstractSettingDelegate { + + public Type_ownedDifferencing_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.ownedDifferencing"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeOwnedDifferencing + * ownedDifferencing = + * ownedRelationship->selectByKind(Differencing) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof Differencing differencing) { + result.add(differencing); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedDisjoining_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedDisjoining_SettingDelegate.java new file mode 100644 index 000000000..22ac5066e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedDisjoining_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Disjoining; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.ownedDisjoining}. + */ +public class Type_ownedDisjoining_SettingDelegate extends AbstractSettingDelegate { + + public Type_ownedDisjoining_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.ownedDisjoining"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeOwnedDisjoining + * ownedDisjoining = + * ownedRelationship->selectByKind(Disjoining) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof Disjoining disjoining) { + result.add(disjoining); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedEndFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedEndFeature_SettingDelegate.java new file mode 100644 index 000000000..0ca93841a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedEndFeature_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.ownedEndFeature}. + */ +public class Type_ownedEndFeature_SettingDelegate extends AbstractSettingDelegate { + + public Type_ownedEndFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.ownedEndFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeOwnedEndFeature + * ownedEndFeature = ownedFeature->select(isEnd) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedFeature : self.getOwnedFeature()) { + if (ownedFeature.isIsEnd()) { + result.add(ownedFeature); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedFeatureMembership_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedFeatureMembership_SettingDelegate.java new file mode 100644 index 000000000..abc092ce4 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedFeatureMembership_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.ownedFeatureMembership}. + */ +public class Type_ownedFeatureMembership_SettingDelegate extends AbstractSettingDelegate { + + public Type_ownedFeatureMembership_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.ownedFeatureMembership"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeOwnedFeatureMembership + * ownedFeatureMembership = ownedRelationship->selectByKind(FeatureMembership) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof FeatureMembership featureMembership) { + result.add(featureMembership); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedFeature_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedFeature_SettingDelegate.java new file mode 100644 index 000000000..dfabcbe8f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedFeature_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.ownedFeature}. + */ +public class Type_ownedFeature_SettingDelegate extends AbstractSettingDelegate { + + public Type_ownedFeature_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.ownedFeature"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeOwnedFeature + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedFeatureMembership : self.getOwnedFeatureMembership()) { + var ownedMemberFeature = ownedFeatureMembership.getOwnedMemberFeature(); + if (ownedMemberFeature != null) { + result.add(ownedMemberFeature); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedIntersecting_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedIntersecting_SettingDelegate.java new file mode 100644 index 000000000..2ec6d36dc --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedIntersecting_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Intersecting; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.ownedIntersecting}. + */ +public class Type_ownedIntersecting_SettingDelegate extends AbstractSettingDelegate { + + public Type_ownedIntersecting_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.ownedIntersecting"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeOwnedIntersecting + * ownedRelationship->selectByKind(Intersecting) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof Intersecting intersecting) { + result.add(intersecting); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedSpecialization_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedSpecialization_SettingDelegate.java new file mode 100644 index 000000000..430ab1fff --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedSpecialization_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Specialization; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.ownedSpecialization}. + */ +public class Type_ownedSpecialization_SettingDelegate extends AbstractSettingDelegate { + + public Type_ownedSpecialization_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.ownedSpecialization"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeOwnedSpecialization + * ownedSpecialization = ownedRelationship->selectByKind(Specialization)-> + * select(s | s.special = self) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var relationship : self.getOwnedRelationship()) { + if (relationship instanceof Specialization specialization && specialization.getSpecific() == self) { + result.add(specialization); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedUnioning_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedUnioning_SettingDelegate.java new file mode 100644 index 000000000..333d930b6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_ownedUnioning_SettingDelegate.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.Unioning; + +/** + * Generated setting delegate for {@code Type.ownedUnioning}. + */ +public class Type_ownedUnioning_SettingDelegate extends AbstractSettingDelegate { + + public Type_ownedUnioning_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.ownedUnioning"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeOwnedUnioning + * ownedUnioning = + * ownedRelationship->selectByKind(Unioning) + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedRelationship : self.getOwnedRelationship()) { + if (ownedRelationship instanceof Unioning unioning) { + result.add(unioning); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_unioningType_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_unioningType_SettingDelegate.java new file mode 100644 index 000000000..dfa9b7a9e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Type_unioningType_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Type; + +/** + * Generated setting delegate for {@code Type.unioningType}. + */ +public class Type_unioningType_SettingDelegate extends AbstractSettingDelegate { + + public Type_unioningType_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Type.unioningType"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveTypeUnioningType + * unioningType = ownedUnioning.unioningType + */ + var result = new BasicEList(); + if (owner instanceof Type self) { + for (var ownedUnioning : self.getOwnedUnioning()) { + if (ownedUnioning.getUnioningType() != null) { + result.add(ownedUnioning.getUnioningType()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Unioning_typeUnioned_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Unioning_typeUnioned_SettingDelegate.java new file mode 100644 index 000000000..ea86ea0e9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Unioning_typeUnioned_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Unioning.typeUnioned}. + */ +public class Unioning_typeUnioned_SettingDelegate extends AbstractSettingDelegate { + + public Unioning_typeUnioned_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Unioning.typeUnioned"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Unioning.typeUnioned + * subsets Relationship.owningRelatedElement + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwningRelatedElement(), resolve); + if (candidate instanceof Type) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_definition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_definition_SettingDelegate.java new file mode 100644 index 000000000..dee17360c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_definition_SettingDelegate.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Usage.definition}. + */ +public class Usage_definition_SettingDelegate extends AbstractSettingDelegate { + + public Usage_definition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.definition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for Usage.definition + * inferred source Feature.type + * The Classifiers that are the types of this Usage . Nominally, these are Definitions , but other kinds of Kernel Classifiers are also allowed, to permit use of Classifiers from the Kernel Model Libraries. + */ + var values = new BasicEList(); + { + var sourceValue = owner.eGet(SysMLPackage.eINSTANCE.getFeature_Type(), resolve); + if (sourceValue instanceof Iterable iterable) { + for (var candidate : iterable) { + if (candidate instanceof Classifier) { + values.add(candidate); + } + } + } else if (sourceValue instanceof Classifier) { + values.add(sourceValue); + } + } + Object resolvedValue = values; + if (values.isEmpty()) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_directedUsage_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_directedUsage_SettingDelegate.java new file mode 100644 index 000000000..a1a892d49 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_directedUsage_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.directedUsage}. + */ +public class Usage_directedUsage_SettingDelegate extends AbstractSettingDelegate { + + public Usage_directedUsage_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.directedUsage"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageDirectedUsage + * directedUsage = directedFeature->selectByKind(Usage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var directedFeature : self.getDirectedFeature()) { + if (directedFeature instanceof Usage directedUsage) { + result.add(directedUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_isReference_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_isReference_SettingDelegate.java new file mode 100644 index 000000000..2e23e2948 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_isReference_SettingDelegate.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.isReference}. + */ +public class Usage_isReference_SettingDelegate extends AbstractSettingDelegate { + + public Usage_isReference_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.isReference"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageIsReference + * isReference = not isComposite + */ + Object result = null; + if (owner instanceof Usage self) { + result = !self.isIsComposite(); + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_mayTimeVary_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_mayTimeVary_SettingDelegate.java new file mode 100644 index 000000000..3e703b494 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_mayTimeVary_SettingDelegate.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.mayTimeVary}. + */ +public class Usage_mayTimeVary_SettingDelegate extends AbstractSettingDelegate { + + public Usage_mayTimeVary_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.mayTimeVary"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageMayTimeVary + * mayTimeVary = + * owningType <> null and + * owningType.specializesFromLibrary('Occurrences::Occurrence') and + * not ( + * isPortion or + * specializesFromLibrary('Links::SelfLink') or + * specializesFromLibrary('Occurrences::HappensLink') or + * isComposite and specializesFromLibrary('Actions::Action') + * ) + */ + var result = false; + if (owner instanceof Usage self) { + var owningType = self.getOwningType(); + result = owningType != null + && owningType.specializesFromLibrary("Occurrences::Occurrence") + && !(self.isIsPortion() + || self.specializesFromLibrary("Links::SelfLink") + || self.specializesFromLibrary("Occurrences::HappensLink") + || self.isIsComposite() && self.specializesFromLibrary("Actions::Action")); + } + return Boolean.valueOf(result); + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAction_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAction_SettingDelegate.java new file mode 100644 index 000000000..2f96ddbfb --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAction_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedAction}. + */ +public class Usage_nestedAction_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedAction_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedAction"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedAction + * nestedAction = nestedUsage->selectByKind(ActionUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof ActionUsage actionUsage) { + result.add(actionUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAllocation_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAllocation_SettingDelegate.java new file mode 100644 index 000000000..bfcd1f73f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAllocation_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AllocationUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedAllocation}. + */ +public class Usage_nestedAllocation_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedAllocation_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedAllocation"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedAllocation + * nestedAllocation = nestedUsage->selectByKind(AllocationUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof AllocationUsage allocationUsage) { + result.add(allocationUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAnalysisCase_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAnalysisCase_SettingDelegate.java new file mode 100644 index 000000000..9709c2594 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAnalysisCase_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AnalysisCaseUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedAnalysisCase}. + */ +public class Usage_nestedAnalysisCase_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedAnalysisCase_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedAnalysisCase"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedAnalysisCase + * nestedAnalysisCase = nestedUsage->selectByKind(AnalysisCaseUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof AnalysisCaseUsage analysisCaseUsage) { + result.add(analysisCaseUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAttribute_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAttribute_SettingDelegate.java new file mode 100644 index 000000000..2d78eb298 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedAttribute_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.AttributeUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedAttribute}. + */ +public class Usage_nestedAttribute_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedAttribute_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedAttribute"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedAttribute + * nestedAttribute = nestedUsage->selectByKind(AttributeUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof AttributeUsage attributeUsage) { + result.add(attributeUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedCalculation_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedCalculation_SettingDelegate.java new file mode 100644 index 000000000..7ecb248c2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedCalculation_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedCalculation}. + */ +public class Usage_nestedCalculation_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedCalculation_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedCalculation"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedCalculation + * nestedCalculation = nestedUsage->selectByKind(CalculationUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof CalculationUsage calculationUsage) { + result.add(calculationUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedCase_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedCase_SettingDelegate.java new file mode 100644 index 000000000..99e27703a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedCase_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedCase}. + */ +public class Usage_nestedCase_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedCase_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedCase"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedCase + * nestedCase = nestedUsage->selectByKind(CaseUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof CaseUsage caseUsage) { + result.add(caseUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedConcern_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedConcern_SettingDelegate.java new file mode 100644 index 000000000..0734235a6 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedConcern_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedConcern}. + */ +public class Usage_nestedConcern_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedConcern_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedConcern"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedConcern + * nestedConcern = nestedUsage->selectByKind(ConcernUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof ConcernUsage concernUsage) { + result.add(concernUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedConnection_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedConnection_SettingDelegate.java new file mode 100644 index 000000000..b14b06c0f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedConnection_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConnectorAsUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedConnection}. + */ +public class Usage_nestedConnection_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedConnection_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedConnection"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedConnection + * nestedConnection = nestedUsage->selectByKind(ConnectorAsUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof ConnectorAsUsage connectorAsUsage) { + result.add(connectorAsUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedConstraint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedConstraint_SettingDelegate.java new file mode 100644 index 000000000..5e66fbf2b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedConstraint_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedConstraint}. + */ +public class Usage_nestedConstraint_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedConstraint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedConstraint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedConstraint + * nestedConstraint = nestedUsage->selectByKind(ConstraintUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof ConstraintUsage constraintUsage) { + result.add(constraintUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedEnumeration_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedEnumeration_SettingDelegate.java new file mode 100644 index 000000000..c855706ae --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedEnumeration_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.EnumerationUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedEnumeration}. + */ +public class Usage_nestedEnumeration_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedEnumeration_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedEnumeration"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedEnumeration + * ownedNested = nestedUsage->selectByKind(EnumerationUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof EnumerationUsage enumerationUsage) { + result.add(enumerationUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedFlow_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedFlow_SettingDelegate.java new file mode 100644 index 000000000..80c9ad3ac --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedFlow_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.FlowUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedFlow}. + */ +public class Usage_nestedFlow_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedFlow_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedFlow"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedFlow + * nestedFlow = nestedUsage->selectByKind(FlowConnectionUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof FlowUsage flowUsage) { + result.add(flowUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedInterface_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedInterface_SettingDelegate.java new file mode 100644 index 000000000..5758974df --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedInterface_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedInterface}. + */ +public class Usage_nestedInterface_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedInterface_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedInterface"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedInterface + * nestedInterface = nestedUsage->selectByKind(ReferenceUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof ReferenceUsage referenceUsage) { + result.add(referenceUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedItem_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedItem_SettingDelegate.java new file mode 100644 index 000000000..752687887 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedItem_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedItem}. + */ +public class Usage_nestedItem_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedItem_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedItem"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedItem + * nestedItem = nestedUsage->selectByKind(ItemUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof ItemUsage itemUsage) { + result.add(itemUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedMetadata_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedMetadata_SettingDelegate.java new file mode 100644 index 000000000..5eda52e19 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedMetadata_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.MetadataUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedMetadata}. + */ +public class Usage_nestedMetadata_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedMetadata_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedMetadata"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedMetadata + * nestedMetadata = nestedUsage->selectByKind(MetadataUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof MetadataUsage metadataUsage) { + result.add(metadataUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedOccurrence_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedOccurrence_SettingDelegate.java new file mode 100644 index 000000000..c80dc447f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedOccurrence_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedOccurrence}. + */ +public class Usage_nestedOccurrence_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedOccurrence_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedOccurrence"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedOccurrence + * nestedOccurrence = nestedUsage->selectByKind(OccurrenceUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof OccurrenceUsage occurrenceUsage) { + result.add(occurrenceUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedPart_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedPart_SettingDelegate.java new file mode 100644 index 000000000..37e2f1cab --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedPart_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedPart}. + */ +public class Usage_nestedPart_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedPart_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedPart"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedPart + * nestedPart = nestedUsage->selectByKind(PartUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof PartUsage partUsage) { + result.add(partUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedPort_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedPort_SettingDelegate.java new file mode 100644 index 000000000..5c7d4c5a0 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedPort_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedPort}. + */ +public class Usage_nestedPort_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedPort_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedPort"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedPort + * nestedPort = nestedUsage->selectByKind(PortUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof PortUsage portUsage) { + result.add(portUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedReference_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedReference_SettingDelegate.java new file mode 100644 index 000000000..dfaba3a95 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedReference_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedReference}. + */ +public class Usage_nestedReference_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedReference_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedReference"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedReference + * nestedReference = nestedUsage->selectByKind(ReferenceUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof ReferenceUsage referenceUsage) { + result.add(referenceUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedRendering_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedRendering_SettingDelegate.java new file mode 100644 index 000000000..675b3c237 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedRendering_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedRendering}. + */ +public class Usage_nestedRendering_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedRendering_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedRendering"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedRendering + * nestedRendering = nestedUsage->selectByKind(RenderingUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof RenderingUsage renderingUsage) { + result.add(renderingUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedRequirement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedRequirement_SettingDelegate.java new file mode 100644 index 000000000..e54700ac5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedRequirement_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedRequirement}. + */ +public class Usage_nestedRequirement_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedRequirement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedRequirement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedRequirement + * nestedRequirement = nestedUsage->selectByKind(RequirementUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof RequirementUsage requirementUsage) { + result.add(requirementUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedState_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedState_SettingDelegate.java new file mode 100644 index 000000000..eddfc357a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedState_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedState}. + */ +public class Usage_nestedState_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedState_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedState"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedState + * nestedState = nestedUsage->selectByKind(StateUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof StateUsage stateUsage) { + result.add(stateUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedTransition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedTransition_SettingDelegate.java new file mode 100644 index 000000000..e252d285b --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedTransition_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.TransitionUsage; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedTransition}. + */ +public class Usage_nestedTransition_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedTransition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedTransition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedTransition + * nestedTransition = nestedUsage->selectByKind(TransitionUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof TransitionUsage transitionUsage) { + result.add(transitionUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedUsage_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedUsage_SettingDelegate.java new file mode 100644 index 000000000..e443eca01 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedUsage_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.nestedUsage}. + */ +public class Usage_nestedUsage_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedUsage_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedUsage"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedUsage + * nestedUsage = ownedFeature->selectByKind(Usage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var ownedFeature : self.getOwnedFeature()) { + if (ownedFeature instanceof Usage usage) { + result.add(usage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedUseCase_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedUseCase_SettingDelegate.java new file mode 100644 index 000000000..008a0979e --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedUseCase_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.UseCaseUsage; + +/** + * Generated setting delegate for {@code Usage.nestedUseCase}. + */ +public class Usage_nestedUseCase_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedUseCase_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedUseCase"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedUseCase + * nestedUseCase = nestedUsage->selectByKind(UseCaseUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof UseCaseUsage useCaseUsage) { + result.add(useCaseUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedVerificationCase_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedVerificationCase_SettingDelegate.java new file mode 100644 index 000000000..0db6f15d7 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedVerificationCase_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.VerificationCaseUsage; + +/** + * Generated setting delegate for {@code Usage.nestedVerificationCase}. + */ +public class Usage_nestedVerificationCase_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedVerificationCase_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedVerificationCase"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedVerificationCase + * nestedVerificationCase = nestedUsage->selectByKind(VerificationCaseUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof VerificationCaseUsage verificationCaseUsage) { + result.add(verificationCaseUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedView_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedView_SettingDelegate.java new file mode 100644 index 000000000..ebd2d9710 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedView_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.ViewUsage; + +/** + * Generated setting delegate for {@code Usage.nestedView}. + */ +public class Usage_nestedView_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedView_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedView"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedView + * nestedView = nestedUsage->selectByKind(ViewUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof ViewUsage viewUsage) { + result.add(viewUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedViewpoint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedViewpoint_SettingDelegate.java new file mode 100644 index 000000000..7a062fad9 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_nestedViewpoint_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * Generated setting delegate for {@code Usage.nestedViewpoint}. + */ +public class Usage_nestedViewpoint_SettingDelegate extends AbstractSettingDelegate { + + public Usage_nestedViewpoint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.nestedViewpoint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageNestedViewpoint + * nestedViewpoint = nestedUsage->selectByKind(ViewpointUsage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var nestedUsage : self.getNestedUsage()) { + if (nestedUsage instanceof ViewpointUsage viewpointUsage) { + result.add(viewpointUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_owningDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_owningDefinition_SettingDelegate.java new file mode 100644 index 000000000..56ab12f74 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_owningDefinition_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Usage.owningDefinition}. + */ +public class Usage_owningDefinition_SettingDelegate extends AbstractSettingDelegate { + + public Usage_owningDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.owningDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Usage.owningDefinition + * subsets Feature.owningType + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeature_OwningType(), resolve); + if (candidate instanceof Definition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_owningUsage_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_owningUsage_SettingDelegate.java new file mode 100644 index 000000000..9f74d66ec --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_owningUsage_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code Usage.owningUsage}. + */ +public class Usage_owningUsage_SettingDelegate extends AbstractSettingDelegate { + + public Usage_owningUsage_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.owningUsage"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for Usage.owningUsage + * subsets Feature.owningType + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getFeature_OwningType(), resolve); + if (candidate instanceof Usage) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_usage_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_usage_SettingDelegate.java new file mode 100644 index 000000000..3e4765d04 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_usage_SettingDelegate.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.usage}. + */ +public class Usage_usage_SettingDelegate extends AbstractSettingDelegate { + + public Usage_usage_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.usage"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageUsage + * usage = feature->selectByKind(Usage) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var feature : self.getFeature()) { + if (feature instanceof Usage usage) { + result.add(usage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_variantMembership_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_variantMembership_SettingDelegate.java new file mode 100644 index 000000000..bf2a3d82c --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_variantMembership_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.VariantMembership; + +/** + * Generated setting delegate for {@code Usage.variantMembership}. + */ +public class Usage_variantMembership_SettingDelegate extends AbstractSettingDelegate { + + public Usage_variantMembership_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.variantMembership"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageVariantMembership + * variantMembership = ownedMembership->selectByKind(VariantMembership) + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof VariantMembership variantMembership) { + result.add(variantMembership); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_variant_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_variant_SettingDelegate.java new file mode 100644 index 000000000..e557b5e84 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/Usage_variant_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Usage; + +/** + * Generated setting delegate for {@code Usage.variant}. + */ +public class Usage_variant_SettingDelegate extends AbstractSettingDelegate { + + public Usage_variant_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "Usage.variant"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUsageVariant + * variant = variantMembership.ownedVariantUsage + */ + var result = new BasicEList(); + if (owner instanceof Usage self) { + for (var variantMembership : self.getVariantMembership()) { + var variantUsage = variantMembership.getOwnedVariantUsage(); + if (variantUsage != null) { + result.add(variantUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/UseCaseDefinition_includedUseCase_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/UseCaseDefinition_includedUseCase_SettingDelegate.java new file mode 100644 index 000000000..ecca5371a --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/UseCaseDefinition_includedUseCase_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.IncludeUseCaseUsage; +import org.omg.sysml.model.sysml.UseCaseDefinition; +import org.omg.sysml.model.sysml.UseCaseUsage; + +/** + * Generated setting delegate for {@code UseCaseDefinition.includedUseCase}. + */ +public class UseCaseDefinition_includedUseCase_SettingDelegate extends AbstractSettingDelegate { + + public UseCaseDefinition_includedUseCase_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "UseCaseDefinition.includedUseCase"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUseCaseDefinitionIncludedUseCase + * includedUseCase = ownedUseCase-> + * selectByKind(IncludeUseCaseUsage). + * useCaseIncluded + */ + var result = new BasicEList(); + if (owner instanceof UseCaseDefinition self) { + for (var ownedUseCase : self.getOwnedUseCase()) { + if (ownedUseCase instanceof IncludeUseCaseUsage includeUseCaseUsage + && includeUseCaseUsage.getUseCaseIncluded() != null) { + result.add(includeUseCaseUsage.getUseCaseIncluded()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/UseCaseUsage_includedUseCase_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/UseCaseUsage_includedUseCase_SettingDelegate.java new file mode 100644 index 000000000..22cac7994 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/UseCaseUsage_includedUseCase_SettingDelegate.java @@ -0,0 +1,66 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.IncludeUseCaseUsage; +import org.omg.sysml.model.sysml.UseCaseUsage; + +/** + * Generated setting delegate for {@code UseCaseUsage.includedUseCase}. + */ +public class UseCaseUsage_includedUseCase_SettingDelegate extends AbstractSettingDelegate { + + public UseCaseUsage_includedUseCase_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "UseCaseUsage.includedUseCase"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveUseCaseUsageIncludedUseCase + * includedUseCase = ownedUseCase-> + * selectByKind(IncludeUseCaseUsage). + * useCaseIncluded + */ + var result = new BasicEList(); + if (owner instanceof UseCaseUsage self) { + for (var nestedUseCase : self.getNestedUseCase()) { + if (nestedUseCase instanceof IncludeUseCaseUsage includeUseCaseUsage + && includeUseCaseUsage.getUseCaseIncluded() != null) { + result.add(includeUseCaseUsage.getUseCaseIncluded()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/UseCaseUsage_useCaseDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/UseCaseUsage_useCaseDefinition_SettingDelegate.java new file mode 100644 index 000000000..a95d023b0 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/UseCaseUsage_useCaseDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.UseCaseDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code UseCaseUsage.useCaseDefinition}. + */ +public class UseCaseUsage_useCaseDefinition_SettingDelegate extends AbstractSettingDelegate { + + public UseCaseUsage_useCaseDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "UseCaseUsage.useCaseDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for UseCaseUsage.useCaseDefinition + * inferred source Usage.definition + * The UseCaseDefinition that is the definition of this UseCaseUsage . + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getUsage_Definition(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof UseCaseDefinition) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof UseCaseDefinition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VariantMembership_ownedVariantUsage_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VariantMembership_ownedVariantUsage_SettingDelegate.java new file mode 100644 index 000000000..c4da65f21 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VariantMembership_ownedVariantUsage_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code VariantMembership.ownedVariantUsage}. + */ +public class VariantMembership_ownedVariantUsage_SettingDelegate extends AbstractSettingDelegate { + + public VariantMembership_ownedVariantUsage_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "VariantMembership.ownedVariantUsage"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for VariantMembership.ownedVariantUsage + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof Usage) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof Usage) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof Usage) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VerificationCaseDefinition_verifiedRequirement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VerificationCaseDefinition_verifiedRequirement_SettingDelegate.java new file mode 100644 index 000000000..2e4966dae --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VerificationCaseDefinition_verifiedRequirement_SettingDelegate.java @@ -0,0 +1,74 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.RequirementVerificationMembership; +import org.omg.sysml.model.sysml.VerificationCaseDefinition; + +/** + * Generated setting delegate for {@code VerificationCaseDefinition.verifiedRequirement}. + */ +public class VerificationCaseDefinition_verifiedRequirement_SettingDelegate extends AbstractSettingDelegate { + + public VerificationCaseDefinition_verifiedRequirement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "VerificationCaseDefinition.verifiedRequirement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveVerificationCaseDefinitionVerifiedRequirement + * verifiedRequirement = + * if objectiveRequirement = null then OrderedSet{} + * else + * objectiveRequirement.featureMembership-> + * selectByKind(RequirementVerificationMembership). + * verifiedRequirement->asOrderedSet() + * endif + */ + var result = new BasicEList(); + if (owner instanceof VerificationCaseDefinition self) { + var objectiveRequirement = self.getObjectiveRequirement(); + if (objectiveRequirement != null) { + for (var featureMembership : objectiveRequirement.getFeatureMembership()) { + if (featureMembership instanceof RequirementVerificationMembership requirementVerificationMembership + && requirementVerificationMembership.getVerifiedRequirement() != null) { + result.add(requirementVerificationMembership.getVerifiedRequirement()); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VerificationCaseUsage_verificationCaseDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VerificationCaseUsage_verificationCaseDefinition_SettingDelegate.java new file mode 100644 index 000000000..735141224 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VerificationCaseUsage_verificationCaseDefinition_SettingDelegate.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.VerificationCaseDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code VerificationCaseUsage.verificationCaseDefinition}. + */ +public class VerificationCaseUsage_verificationCaseDefinition_SettingDelegate extends AbstractSettingDelegate { + + public VerificationCaseUsage_verificationCaseDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "VerificationCaseUsage.verificationCaseDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * subsets fallback for VerificationCaseUsage.verificationCaseDefinition + * subsets CaseUsage.caseDefinition + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getCaseUsage_CaseDefinition(), resolve); + if (candidate instanceof VerificationCaseDefinition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VerificationCaseUsage_verifiedRequirement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VerificationCaseUsage_verifiedRequirement_SettingDelegate.java new file mode 100644 index 000000000..b98d405a3 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/VerificationCaseUsage_verifiedRequirement_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.RequirementVerificationMembership; +import org.omg.sysml.model.sysml.VerificationCaseUsage; + +/** + * Generated setting delegate for {@code VerificationCaseUsage.verifiedRequirement}. + */ +public class VerificationCaseUsage_verifiedRequirement_SettingDelegate extends AbstractSettingDelegate { + + public VerificationCaseUsage_verifiedRequirement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "VerificationCaseUsage.verifiedRequirement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveVerificationCaseUsageVerifiedRequirement + * verifiedRequirement = + * if objectiveRequirement = null then OrderedSet{} + * else + * objectiveRequirement.featureMembership-> + * selectByKind(RequirementVerificationMembership). + * verifiedRequirement->asOrderedSet() + * endif + */ + var result = new BasicEList(); + if (owner instanceof VerificationCaseUsage self && self.getObjectiveRequirement() != null) { + for (var membership : self.getObjectiveRequirement().getOwnedFeatureMembership()) { + if (membership instanceof RequirementVerificationMembership requirementVerificationMembership) { + var verifiedRequirement = requirementVerificationMembership.getVerifiedRequirement(); + if (verifiedRequirement != null && !result.contains(verifiedRequirement)) { + result.add(verifiedRequirement); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_satisfiedViewpoint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_satisfiedViewpoint_SettingDelegate.java new file mode 100644 index 000000000..0782f9446 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_satisfiedViewpoint_SettingDelegate.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ViewDefinition; +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * Generated setting delegate for {@code ViewDefinition.satisfiedViewpoint}. + */ +public class ViewDefinition_satisfiedViewpoint_SettingDelegate extends AbstractSettingDelegate { + + public ViewDefinition_satisfiedViewpoint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewDefinition.satisfiedViewpoint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveViewDefinitionSatisfiedViewpoint + * satisfiedViewpoint = ownedRequirement-> + * selectByKind(ViewpointUsage)-> + * select(isComposite) + */ + var result = new BasicEList(); + if (owner instanceof ViewDefinition self) { + for (var requirement : self.getOwnedRequirement()) { + if (requirement instanceof ViewpointUsage viewpointUsage && viewpointUsage.isIsComposite()) { + result.add(viewpointUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_viewCondition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_viewCondition_SettingDelegate.java new file mode 100644 index 000000000..d36aa71ec --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_viewCondition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ElementFilterMembership; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.ViewDefinition; + +/** + * Generated setting delegate for {@code ViewDefinition.viewCondition}. + */ +public class ViewDefinition_viewCondition_SettingDelegate extends AbstractSettingDelegate { + + public ViewDefinition_viewCondition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewDefinition.viewCondition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveViewDefinitionViewCondition + * viewCondition = ownedMembership-> + * selectByKind(ElementFilterMembership). + * condition + */ + var result = new BasicEList(); + if (owner instanceof ViewDefinition self) { + for (var membership : self.getOwnedMembership()) { + if (membership instanceof ElementFilterMembership elementFilterMembership + && elementFilterMembership.getCondition() != null) { + result.add(elementFilterMembership.getCondition()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_viewRendering_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_viewRendering_SettingDelegate.java new file mode 100644 index 000000000..2cbada755 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_viewRendering_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ViewDefinition; +import org.omg.sysml.model.sysml.ViewRenderingMembership; + +/** + * Generated setting delegate for {@code ViewDefinition.viewRendering}. + */ +public class ViewDefinition_viewRendering_SettingDelegate extends AbstractSettingDelegate { + + public ViewDefinition_viewRendering_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewDefinition.viewRendering"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveViewDefinitionViewRendering + * viewRendering = + * let renderings: OrderedSet(ViewRenderingMembership) = + * featureMembership->selectByKind(ViewRenderingMembership) in + * if renderings->isEmpty() then null + * else renderings->first().referencedRendering + * endif + */ + Object result = null; + if (owner instanceof ViewDefinition self) { + for (var featureMembership : self.getFeatureMembership()) { + if (featureMembership instanceof ViewRenderingMembership viewRenderingMembership) { + result = viewRenderingMembership.getReferencedRendering(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_view_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_view_SettingDelegate.java new file mode 100644 index 000000000..394f5f927 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewDefinition_view_SettingDelegate.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ViewDefinition; +import org.omg.sysml.model.sysml.ViewUsage; + +/** + * Generated setting delegate for {@code ViewDefinition.view}. + */ +public class ViewDefinition_view_SettingDelegate extends AbstractSettingDelegate { + + public ViewDefinition_view_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewDefinition.view"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveViewDefinitionView + * view = usage->selectByKind(ViewUsage) + */ + var result = new BasicEList(); + if (owner instanceof ViewDefinition self) { + for (var usage : self.getUsage()) { + if (usage instanceof ViewUsage viewUsage) { + result.add(viewUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewRenderingMembership_ownedRendering_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewRenderingMembership_ownedRendering_SettingDelegate.java new file mode 100644 index 000000000..d03344ed5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewRenderingMembership_ownedRendering_SettingDelegate.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ViewRenderingMembership.ownedRendering}. + */ +public class ViewRenderingMembership_ownedRendering_SettingDelegate extends AbstractSettingDelegate { + + public ViewRenderingMembership_ownedRendering_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewRenderingMembership.ownedRendering"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * redefines fallback for ViewRenderingMembership.ownedRendering + * redefines Membership.memberElement + * redefines Relationship.ownedRelatedElement + */ + Object resolvedValue = null; + var candidate0 = owner.eGet(SysMLPackage.eINSTANCE.getMembership_MemberElement(), resolve); + if (candidate0 instanceof RenderingUsage) { + resolvedValue = candidate0; + } + if (resolvedValue == null) { + var candidate1 = owner.eGet(SysMLPackage.eINSTANCE.getRelationship_OwnedRelatedElement(), resolve); + if (candidate1 instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof RenderingUsage) { + resolvedValue = item; + break; + } + } + } else if (candidate1 instanceof RenderingUsage) { + resolvedValue = candidate1; + } + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewRenderingMembership_referencedRendering_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewRenderingMembership_referencedRendering_SettingDelegate.java new file mode 100644 index 000000000..73984e168 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewRenderingMembership_referencedRendering_SettingDelegate.java @@ -0,0 +1,72 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.ViewRenderingMembership; + +/** + * Generated setting delegate for {@code ViewRenderingMembership.referencedRendering}. + */ +public class ViewRenderingMembership_referencedRendering_SettingDelegate extends AbstractSettingDelegate { + + public ViewRenderingMembership_referencedRendering_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewRenderingMembership.referencedRendering"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveVewRenderingMembershipReferencedRendering + * referencedRendering = + * let referencedFeature : Feature = + * ownedRendering.referencedFeatureTarget() in + * if referencedFeature = null then ownedRendering + * else if referencedFeature.oclIsKindOf(RenderingUsage) then + * refrencedFeature.oclAsType(RenderingUsage) + * else null + * endif endif + */ + Object result = null; + if (owner instanceof ViewRenderingMembership self) { + var referencedFeature = self.getOwnedRendering() == null + ? null + : self.getOwnedRendering().referencedFeatureTarget(); + if (referencedFeature == null) { + result = self.getOwnedRendering(); + } else if (referencedFeature instanceof RenderingUsage renderingUsage) { + result = renderingUsage; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_exposedElement_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_exposedElement_SettingDelegate.java new file mode 100644 index 000000000..8aa0ae6c0 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_exposedElement_SettingDelegate.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.Expose; +import org.omg.sysml.model.sysml.ViewUsage; + +/** + * Generated setting delegate for {@code ViewUsage.exposedElement}. + */ +public class ViewUsage_exposedElement_SettingDelegate extends AbstractSettingDelegate { + + public ViewUsage_exposedElement_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewUsage.exposedElement"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveViewUsageExposedElement + * exposedElement = ownedImport->selectByKind(Expose). + * importedMemberships(Set{}).memberElement-> + * select(elm | includeAsExposed(elm))-> + * asOrderedSet() + */ + var result = new BasicEList(); + if (owner instanceof ViewUsage self) { + for (var ownedImport : self.getOwnedImport()) { + if (ownedImport instanceof Expose expose) { + for (var membership : expose.importedMemberships(new BasicEList<>())) { + var memberElement = membership.getMemberElement(); + if (memberElement != null && self.includeAsExposed(memberElement) && !result.contains(memberElement)) { + result.add(memberElement); + } + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_satisfiedViewpoint_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_satisfiedViewpoint_SettingDelegate.java new file mode 100644 index 000000000..04f9cc409 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_satisfiedViewpoint_SettingDelegate.java @@ -0,0 +1,65 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ViewUsage; +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * Generated setting delegate for {@code ViewUsage.satisfiedViewpoint}. + */ +public class ViewUsage_satisfiedViewpoint_SettingDelegate extends AbstractSettingDelegate { + + public ViewUsage_satisfiedViewpoint_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewUsage.satisfiedViewpoint"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveViewUsageSatisfiedViewpoint + * satisfiedViewpoint = ownedRequirement-> + * selectByKind(ViewpointUsage)-> + * select(isComposite) + */ + var result = new BasicEList(); + if (owner instanceof ViewUsage self) { + for (var requirement : self.getNestedRequirement()) { + if (requirement instanceof ViewpointUsage viewpointUsage && viewpointUsage.isIsComposite()) { + result.add(viewpointUsage); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_viewCondition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_viewCondition_SettingDelegate.java new file mode 100644 index 000000000..bbd38b3ba --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_viewCondition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.ElementFilterMembership; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.ViewUsage; + +/** + * Generated setting delegate for {@code ViewUsage.viewCondition}. + */ +public class ViewUsage_viewCondition_SettingDelegate extends AbstractSettingDelegate { + + public ViewUsage_viewCondition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewUsage.viewCondition"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveViewUsageViewCondition + * viewCondition = ownedMembership-> + * selectByKind(ElementFilterMembership). + * condition + */ + var result = new BasicEList(); + if (owner instanceof ViewUsage self) { + for (var ownedMembership : self.getOwnedMembership()) { + if (ownedMembership instanceof ElementFilterMembership elementFilterMembership + && elementFilterMembership.getCondition() != null) { + result.add(elementFilterMembership.getCondition()); + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_viewDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_viewDefinition_SettingDelegate.java new file mode 100644 index 000000000..e61dd79b1 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_viewDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ViewDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ViewUsage.viewDefinition}. + */ +public class ViewUsage_viewDefinition_SettingDelegate extends AbstractSettingDelegate { + + public ViewUsage_viewDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewUsage.viewDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for ViewUsage.viewDefinition + * inferred source Usage.definition + * The ViewDefinition that is the definition of this ViewUsage . + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getUsage_Definition(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof ViewDefinition) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof ViewDefinition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_viewRendering_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_viewRendering_SettingDelegate.java new file mode 100644 index 000000000..1fb68869f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewUsage_viewRendering_SettingDelegate.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.ViewRenderingMembership; +import org.omg.sysml.model.sysml.ViewUsage; + +/** + * Generated setting delegate for {@code ViewUsage.viewRendering}. + */ +public class ViewUsage_viewRendering_SettingDelegate extends AbstractSettingDelegate { + + public ViewUsage_viewRendering_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewUsage.viewRendering"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveViewUsageViewRendering + * viewRendering = + * let renderings: OrderedSet(ViewRenderingMembership) = + * featureMembership->selectByKind(ViewRenderingMembership) in + * if renderings->isEmpty() then null + * else renderings->first().referencedRendering + * endif + */ + Object result = null; + if (owner instanceof ViewUsage self) { + for (var featureMembership : self.getFeatureMembership()) { + if (featureMembership instanceof ViewRenderingMembership viewRenderingMembership) { + result = viewRenderingMembership.getReferencedRendering(); + break; + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewpointDefinition_viewpointStakeholder_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewpointDefinition_viewpointStakeholder_SettingDelegate.java new file mode 100644 index 000000000..f9b6349a2 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewpointDefinition_viewpointStakeholder_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.StakeholderMembership; +import org.omg.sysml.model.sysml.ViewpointDefinition; + +/** + * Generated setting delegate for {@code ViewpointDefinition.viewpointStakeholder}. + */ +public class ViewpointDefinition_viewpointStakeholder_SettingDelegate extends AbstractSettingDelegate { + + public ViewpointDefinition_viewpointStakeholder_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewpointDefinition.viewpointStakeholder"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveViewpointDefinitionViewpointStakeholder + * viewpointStakeholder = framedConcern.featureMemberhsip-> + * selectByKind(StakeholderMembership). + * ownedStakeholderParameter + */ + var result = new BasicEList(); + if (owner instanceof ViewpointDefinition self) { + for (var concern : self.getFramedConcern()) { + for (var concernMembership : concern.getFeatureMembership()) { + if (concernMembership instanceof StakeholderMembership stakeholderMembership + && stakeholderMembership.getOwnedStakeholderParameter() != null) { + result.add(stakeholderMembership.getOwnedStakeholderParameter()); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewpointUsage_viewpointDefinition_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewpointUsage_viewpointDefinition_SettingDelegate.java new file mode 100644 index 000000000..258a5ad21 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewpointUsage_viewpointDefinition_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ViewpointDefinition; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; + +/** + * Generated setting delegate for {@code ViewpointUsage.viewpointDefinition}. + */ +public class ViewpointUsage_viewpointDefinition_SettingDelegate extends AbstractSettingDelegate { + + public ViewpointUsage_viewpointDefinition_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewpointUsage.viewpointDefinition"; + } + + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * inferred fallback for ViewpointUsage.viewpointDefinition + * inferred source Usage.definition + * The ViewpointDefinition that is the definition of this ViewpointUsage . + */ + Object resolvedValue = null; + var candidate = owner.eGet(SysMLPackage.eINSTANCE.getUsage_Definition(), resolve); + if (candidate instanceof Iterable iterable) { + for (var item : iterable) { + if (item instanceof ViewpointDefinition) { + resolvedValue = item; + break; + } + } + } else if (candidate instanceof ViewpointDefinition) { + resolvedValue = candidate; + } + if (resolvedValue == null) { + resolvedValue = super.get(owner, resolve, coreType); + } + return resolvedValue; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewpointUsage_viewpointStakeholder_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewpointUsage_viewpointStakeholder_SettingDelegate.java new file mode 100644 index 000000000..0687f5bc5 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/ViewpointUsage_viewpointStakeholder_SettingDelegate.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.eclipse.emf.common.util.BasicEList; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.StakeholderMembership; +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * Generated setting delegate for {@code ViewpointUsage.viewpointStakeholder}. + */ +public class ViewpointUsage_viewpointStakeholder_SettingDelegate extends AbstractSettingDelegate { + + public ViewpointUsage_viewpointStakeholder_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "ViewpointUsage.viewpointStakeholder"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveViewpointUsageViewpointStakeholder + * viewpointStakeholder = framedConcern.featureMemberhsip-> + * selectByKind(StakeholderMembership). + * ownedStakeholderParameter + */ + var result = new BasicEList(); + if (owner instanceof ViewpointUsage self) { + for (var concern : self.getFramedConcern()) { + for (var concernMembership : concern.getFeatureMembership()) { + if (concernMembership instanceof StakeholderMembership stakeholderMembership + && stakeholderMembership.getOwnedStakeholderParameter() != null) { + result.add(stakeholderMembership.getOwnedStakeholderParameter()); + } + } + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/WhileLoopActionUsage_untilArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/WhileLoopActionUsage_untilArgument_SettingDelegate.java new file mode 100644 index 000000000..662122783 --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/WhileLoopActionUsage_untilArgument_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.WhileLoopActionUsage; + +/** + * Generated setting delegate for {@code WhileLoopActionUsage.untilArgument}. + */ +public class WhileLoopActionUsage_untilArgument_SettingDelegate extends AbstractSettingDelegate { + + public WhileLoopActionUsage_untilArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "WhileLoopActionUsage.untilArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveWhileLoopActionUsageUntilArgument + * untilArgument = + * let parameter : Feature = inputParameter(3) in + * if parameter <> null and parameter.oclIsKindOf(Expression) then + * parameter.oclAsType(Expression) + * else + * null + * endif + */ + Object result = null; + if (owner instanceof WhileLoopActionUsage self) { + var parameter = self.inputParameter(3); + if (parameter instanceof Expression expression) { + result = expression; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/WhileLoopActionUsage_whileArgument_SettingDelegate.java b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/WhileLoopActionUsage_whileArgument_SettingDelegate.java new file mode 100644 index 000000000..aec148b2f --- /dev/null +++ b/unified/org.omg.sysml.logic/src/main/java/org/omg/sysml/logic/delegate/setting/WhileLoopActionUsage_whileArgument_SettingDelegate.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.logic.delegate.setting; + +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.omg.sysml.logic.delegate.AbstractSettingDelegate; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.WhileLoopActionUsage; + +/** + * Generated setting delegate for {@code WhileLoopActionUsage.whileArgument}. + */ +public class WhileLoopActionUsage_whileArgument_SettingDelegate extends AbstractSettingDelegate { + + public WhileLoopActionUsage_whileArgument_SettingDelegate(EStructuralFeature feature) { + super(feature); + } + + @Override + protected String delegateId() { + return "WhileLoopActionUsage.whileArgument"; + } + + /** + * @generated NOT + */ + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + /* + * OCL2.0 deriveWhileLoopActionUsageWhileArgument + * whileArgument = + * let parameter : Feature = inputParameter(1) in + * if parameter <> null and parameter.oclIsKindOf(Expression) then + * parameter.oclAsType(Expression) + * else + * null + * endif + */ + Object result = null; + if (owner instanceof WhileLoopActionUsage self) { + var parameter = self.inputParameter(1); + if (parameter instanceof Expression expression) { + result = expression; + } + } + return result; + } +} diff --git a/unified/org.omg.sysml.model.eclipse/.classpath b/unified/org.omg.sysml.model.eclipse/.classpath new file mode 100644 index 000000000..0a389560d --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/.classpath @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/unified/org.omg.sysml.model.eclipse/.project b/unified/org.omg.sysml.model.eclipse/.project new file mode 100644 index 000000000..534d208b3 --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/.project @@ -0,0 +1,20 @@ + + + org.omg.sysml.model.eclipse + + + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.m2e.core.maven2Builder + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/unified/org.omg.sysml.model.eclipse/.settings/org.eclipse.core.resources.prefs b/unified/org.omg.sysml.model.eclipse/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..99f26c020 --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/unified/org.omg.sysml.model.eclipse/.settings/org.eclipse.jdt.core.prefs b/unified/org.omg.sysml.model.eclipse/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..e9186c3e3 --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.source=21 diff --git a/unified/org.omg.sysml.model.eclipse/.settings/org.eclipse.m2e.core.prefs b/unified/org.omg.sysml.model.eclipse/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000..54212ae86 --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/unified/org.omg.sysml.model.eclipse/META-INF/MANIFEST.MF b/unified/org.omg.sysml.model.eclipse/META-INF/MANIFEST.MF new file mode 100644 index 000000000..ba3c5671d --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-21 +Bundle-Version: 0.1.0.qualifier +Bundle-SymbolicName: org.omg.sysml.model.eclipse;singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.ecore +Export-Package: org.omg.sysml.model.eclipse.delegate +Automatic-Module-Name: org.omg.sysml.model.eclipse diff --git a/unified/org.omg.sysml.model.eclipse/README.md b/unified/org.omg.sysml.model.eclipse/README.md new file mode 100644 index 000000000..896a1dd2d --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/README.md @@ -0,0 +1,13 @@ +# org.omg.sysml.model.eclipse + +## Purpose +- Isolates Eclipse-specific registrations for SysML delegate URIs. +- Enables IDE/runtime extension-point registration without adding Eclipse dependencies to core modules. + +## What This Module Provides +- `plugin.xml` and related descriptors for setting/invocation delegate registrations. +- Minimal Java support classes required by Eclipse plugin packaging. + +## Design Intent +- Optional integration module for Eclipse-based tooling. +- Keeps `org.omg.sysml.model` and `org.omg.sysml.logic` usable in standalone Maven/Java environments. diff --git a/unified/org.omg.sysml.model.eclipse/build.properties b/unified/org.omg.sysml.model.eclipse/build.properties new file mode 100644 index 000000000..f95769733 --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/build.properties @@ -0,0 +1,6 @@ +source.. = src/main/java/ +output.. = target/classes/ +bin.includes = META-INF/,\ + plugin.xml,\ + plugin.properties,\ + . diff --git a/unified/org.omg.sysml.model.eclipse/plugin.properties b/unified/org.omg.sysml.model.eclipse/plugin.properties new file mode 100644 index 000000000..3166d10d5 --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/plugin.properties @@ -0,0 +1,2 @@ +pluginName = org.omg.sysml.model.eclipse +providerName = Obeo diff --git a/unified/org.omg.sysml.model.eclipse/plugin.xml b/unified/org.omg.sysml.model.eclipse/plugin.xml new file mode 100644 index 000000000..1440fc5f9 --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/plugin.xml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/unified/org.omg.sysml.model.eclipse/pom.xml b/unified/org.omg.sysml.model.eclipse/pom.xml new file mode 100644 index 000000000..8c4c01e76 --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/pom.xml @@ -0,0 +1,44 @@ + + + 4.0.0 + + + org.omg.sysml + org.omg.sysml.unified.parent + 0.1.0-SNAPSHOT + ../pom.xml + + + org.omg.sysml.model.eclipse + org.omg.sysml.model.eclipse + + + + org.eclipse.emf + org.eclipse.emf.common + + + org.eclipse.emf + org.eclipse.emf.ecore + + + + + + + . + + plugin.xml + build.properties + META-INF/MANIFEST.MF + plugin.properties + + + + src/main/resources + + + + diff --git a/unified/org.omg.sysml.model.eclipse/src/main/java/org/omg/sysml/model/eclipse/delegate/EclipseSysMLInvocationDelegateFactory.java b/unified/org.omg.sysml.model.eclipse/src/main/java/org/omg/sysml/model/eclipse/delegate/EclipseSysMLInvocationDelegateFactory.java new file mode 100644 index 000000000..ae0ab0744 --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/src/main/java/org/omg/sysml/model/eclipse/delegate/EclipseSysMLInvocationDelegateFactory.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.eclipse.delegate; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.util.BasicInvocationDelegate; + +/** + * Eclipse design-time invocation delegate factory for the SysML delegate URI. + * + *

This factory exists to register the SysML delegate URI in Eclipse extension registries, so + * GenModel/Ecore editors can resolve {@code invocationDelegates} declarations. + */ +public class EclipseSysMLInvocationDelegateFactory implements EOperation.Internal.InvocationDelegate.Factory { + + @Override + public EOperation.Internal.InvocationDelegate createInvocationDelegate(EOperation eOperation) { + return new BasicInvocationDelegate(eOperation) { + @Override + public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException { + return eOperation.isMany() ? ECollections.emptyEList() : null; + } + }; + } +} diff --git a/unified/org.omg.sysml.model.eclipse/src/main/java/org/omg/sysml/model/eclipse/delegate/EclipseSysMLSettingDelegateFactory.java b/unified/org.omg.sysml.model.eclipse/src/main/java/org/omg/sysml/model/eclipse/delegate/EclipseSysMLSettingDelegateFactory.java new file mode 100644 index 000000000..d7738568d --- /dev/null +++ b/unified/org.omg.sysml.model.eclipse/src/main/java/org/omg/sysml/model/eclipse/delegate/EclipseSysMLSettingDelegateFactory.java @@ -0,0 +1,50 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.eclipse.delegate; + +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.util.BasicSettingDelegate; + +/** + * Eclipse design-time setting delegate factory for the SysML delegate URI. + * + *

This factory exists to register the SysML delegate URI in Eclipse extension registries, so + * GenModel/Ecore editors can resolve {@code settingDelegates} declarations. + */ +public class EclipseSysMLSettingDelegateFactory implements EStructuralFeature.Internal.SettingDelegate.Factory { + + @Override + public EStructuralFeature.Internal.SettingDelegate createSettingDelegate(EStructuralFeature eStructuralFeature) { + return new BasicSettingDelegate.Stateless(eStructuralFeature) { + @Override + protected Object get(InternalEObject owner, boolean resolve, boolean coreType) { + return eStructuralFeature.isMany() ? ECollections.emptyEList() : null; + } + + @Override + protected boolean isSet(InternalEObject owner) { + return false; + } + }; + } +} diff --git a/unified/org.omg.sysml.model.tests/.classpath b/unified/org.omg.sysml.model.tests/.classpath new file mode 100644 index 000000000..50a0d3c0a --- /dev/null +++ b/unified/org.omg.sysml.model.tests/.classpath @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/unified/org.omg.sysml.model.tests/.project b/unified/org.omg.sysml.model.tests/.project new file mode 100644 index 000000000..758a09488 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/.project @@ -0,0 +1,20 @@ + + + org.omg.sysml.model.tests + + + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.m2e.core.maven2Builder + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/unified/org.omg.sysml.model.tests/.settings/org.eclipse.core.resources.prefs b/unified/org.omg.sysml.model.tests/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..99f26c020 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/unified/org.omg.sysml.model.tests/.settings/org.eclipse.jdt.core.prefs b/unified/org.omg.sysml.model.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..e9186c3e3 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.source=21 diff --git a/unified/org.omg.sysml.model.tests/.settings/org.eclipse.m2e.core.prefs b/unified/org.omg.sysml.model.tests/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000..54212ae86 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/unified/org.omg.sysml.model.tests/README.md b/unified/org.omg.sysml.model.tests/README.md new file mode 100644 index 000000000..7466dbe77 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/README.md @@ -0,0 +1,15 @@ +# org.omg.sysml.model.tests + +This module contains automated tests dedicated to `org.omg.sysml.model`. + +Current scope: +- metamodel integrity checks on the generated SysML Ecore package +- structural invariants for classifiers, features, and operations +- critical metamodel contract checks used by downstream logic delegates +- XMI serialization round-trip checks with semantic link validation after reload +- serialization robustness checks for partial/incomplete graphs and dangling proxies +- compatibility snapshot checks on metamodel signatures (package/classifier/feature/operation/enum literals) + +Execution: +- this module is part of the unified reactor build +- run all tests from `unified` with `mvn clean verify` diff --git a/unified/org.omg.sysml.model.tests/pom.xml b/unified/org.omg.sysml.model.tests/pom.xml new file mode 100644 index 000000000..34535a3a8 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/pom.xml @@ -0,0 +1,44 @@ + + + 4.0.0 + + + org.omg.sysml + org.omg.sysml.unified.parent + 0.1.0-SNAPSHOT + ../pom.xml + + + org.omg.sysml.model.tests + org.omg.sysml.model.tests + + + + org.omg.sysml + org.omg.sysml.model + ${project.version} + test + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + diff --git a/unified/org.omg.sysml.model.tests/src/main/java/.gitkeep b/unified/org.omg.sysml.model.tests/src/main/java/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/CompatibilitySnapshotTest.java b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/CompatibilitySnapshotTest.java new file mode 100644 index 000000000..4846b9d8a --- /dev/null +++ b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/CompatibilitySnapshotTest.java @@ -0,0 +1,225 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.sysml; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Comparator; +import java.util.stream.Collectors; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.junit.jupiter.api.Test; + +/** + * Compatibility snapshot tests for the generated SysML metamodel. + * + *

What it validates: + *

    + *
  • metamodel package identity remains stable;
  • + *
  • classifier inventory and IDs do not change unexpectedly;
  • + *
  • declared feature/operation/enum literal signatures remain stable across generations.
  • + *
+ */ +public class CompatibilitySnapshotTest { + + private static final String EXPECTED_SNAPSHOT_SHA256 = "dc64746eb7fea1216624f1a9772eb142af9487b69a15a04b65fcd81ace7759c2"; + + @Test + public void metamodelCompatibilitySnapshotRemainsStable() throws IOException { + var snapshot = buildSnapshot(); + writeSnapshotForDiagnostics(snapshot); + var actual = sha256(snapshot); + assertEquals( + EXPECTED_SNAPSHOT_SHA256, + actual, + "Metamodel compatibility snapshot changed. " + + "Review target/compatibility/metamodel-compatibility-snapshot.txt and update " + + "EXPECTED_SNAPSHOT_SHA256 only if the change is intentional."); + } + + /** + * Builds a deterministic textual snapshot of the SysML metamodel. + * + * @return serialized metamodel signature + */ + private String buildSnapshot() { + var pkg = SysMLPackage.eINSTANCE; + var builder = new StringBuilder(); + builder.append("package|") + .append(pkg.getName()).append('|') + .append(pkg.getNsPrefix()).append('|') + .append(pkg.getNsURI()).append('\n'); + + var classifiers = pkg.getEClassifiers().stream() + .sorted(Comparator.comparing(EClassifier::getName)) + .toList(); + for (var classifier : classifiers) { + builder.append("classifier|") + .append(classifier.getName()).append('|') + .append(classifier.getClassifierID()).append('|') + .append(classifier.getClass().getSimpleName()).append('\n'); + + if (classifier instanceof EClass eClass) { + appendClassSnapshot(builder, eClass); + } else if (classifier instanceof EEnum eEnum) { + appendEnumSnapshot(builder, eEnum); + } + } + return builder.toString(); + } + + /** + * Appends a deterministic snapshot block for one EClass. + * + * @param builder target snapshot buffer + * @param eClass source metaclass + */ + private void appendClassSnapshot(StringBuilder builder, EClass eClass) { + var superTypes = eClass.getESuperTypes().stream() + .map(EClassifier::getName) + .sorted() + .collect(Collectors.joining(",")); + builder.append("class|") + .append(eClass.getName()).append('|') + .append("abstract=").append(eClass.isAbstract()).append('|') + .append("interface=").append(eClass.isInterface()).append('|') + .append("supers=").append(superTypes).append('\n'); + + var features = eClass.getEStructuralFeatures().stream() + .sorted(Comparator.comparing(EStructuralFeature::getName)) + .toList(); + for (var feature : features) { + if (feature instanceof EReference reference) { + builder.append("feature|") + .append(eClass.getName()).append('|') + .append("ref|") + .append(reference.getName()).append('|') + .append(typeName(reference.getEType())).append('|') + .append("lb=").append(reference.getLowerBound()).append('|') + .append("ub=").append(reference.getUpperBound()).append('|') + .append("containment=").append(reference.isContainment()).append('|') + .append("resolve=").append(reference.isResolveProxies()).append('|') + .append("derived=").append(reference.isDerived()).append('|') + .append("transient=").append(reference.isTransient()).append('|') + .append("volatile=").append(reference.isVolatile()).append('\n'); + } else if (feature instanceof EAttribute attribute) { + builder.append("feature|") + .append(eClass.getName()).append('|') + .append("attr|") + .append(attribute.getName()).append('|') + .append(typeName(attribute.getEType())).append('|') + .append("lb=").append(attribute.getLowerBound()).append('|') + .append("ub=").append(attribute.getUpperBound()).append('|') + .append("derived=").append(attribute.isDerived()).append('|') + .append("transient=").append(attribute.isTransient()).append('|') + .append("volatile=").append(attribute.isVolatile()).append('\n'); + } + } + + var operations = eClass.getEOperations().stream() + .sorted(Comparator.comparing(op -> op.getName() + "#" + op.getEParameters().size())) + .toList(); + for (var operation : operations) { + var parameters = operation.getEParameters().stream() + .map(parameter -> parameter.getName() + ":" + typeName(parameter.getEType())) + .collect(Collectors.joining(",")); + builder.append("operation|") + .append(eClass.getName()).append('|') + .append(operation.getName()).append('|') + .append(typeName(operation.getEType())).append('|') + .append("params=").append(parameters).append('\n'); + } + } + + /** + * Appends a deterministic snapshot block for one EEnum and its literals. + * + * @param builder target snapshot buffer + * @param eEnum source enum + */ + private void appendEnumSnapshot(StringBuilder builder, EEnum eEnum) { + var literals = eEnum.getELiterals().stream() + .sorted(Comparator.comparingInt(literal -> literal.getValue())) + .toList(); + for (var literal : literals) { + builder.append("enumLiteral|") + .append(eEnum.getName()).append('|') + .append(literal.getName()).append('|') + .append(literal.getValue()).append('|') + .append(literal.getLiteral()).append('\n'); + } + } + + /** + * Writes the generated snapshot in the Maven target directory for diagnostics. + * + * @param snapshot snapshot content to persist + * @throws IOException if writing fails + */ + private void writeSnapshotForDiagnostics(String snapshot) throws IOException { + var directory = Path.of("target/compatibility"); + Files.createDirectories(directory); + var file = directory.resolve("metamodel-compatibility-snapshot.txt"); + Files.writeString(file, snapshot, StandardCharsets.UTF_8); + } + + /** + * Computes the SHA-256 digest of a text payload. + * + * @param content input text + * @return lowercase hexadecimal SHA-256 value + */ + private String sha256(String content) { + MessageDigest digest; + try { + digest = MessageDigest.getInstance("SHA-256"); + } catch (NoSuchAlgorithmException e) { + throw new IllegalStateException("SHA-256 digest is not available", e); + } + var hash = digest.digest(content.getBytes(StandardCharsets.UTF_8)); + var hex = new StringBuilder(hash.length * 2); + for (var b : hash) { + hex.append(String.format("%02x", b)); + } + return hex.toString(); + } + + /** + * Returns a safe type name token for snapshot serialization. + * + * @param type Ecore type + * @return type name or {@code } when type is absent + */ + private String typeName(EClassifier type) { + return type == null ? "" : type.getName(); + } +} diff --git a/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/ContainmentAndOwnershipSemanticsTest.java b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/ContainmentAndOwnershipSemanticsTest.java new file mode 100644 index 000000000..aa8d37248 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/ContainmentAndOwnershipSemanticsTest.java @@ -0,0 +1,87 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.sysml; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +/** + * Semantics tests for core containment and ownership links in handcrafted SysML instances. + * + *

What it validates: + *

    + *
  • an owning membership consistently links owner, owned relationship, and owned element;
  • + *
  • moving a contained element between owning memberships updates derived owner views;
  • + *
  • removing a contained element clears ownership links and derived owned-element views.
  • + *
+ */ +public class ContainmentAndOwnershipSemanticsTest { + + @Test + public void owningMembershipCreatesConsistentOwnerAndOwnedElementLinks() { + var owner = SysMLFactory.eINSTANCE.createPackage(); + var child = SysMLFactory.eINSTANCE.createComment(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + + owningMembership.setOwningRelatedElement(owner); + owningMembership.getOwnedRelatedElement().add(child); + + assertTrue(owner.getOwnedRelationship().contains(owningMembership)); + assertTrue(owningMembership.getOwnedRelatedElement().contains(child)); + assertSame(owningMembership, child.getOwningRelationship()); + } + + @Test + public void movingOwnedElementBetweenOwningMembershipsUpdatesDerivedOwnership() { + var ownerA = SysMLFactory.eINSTANCE.createPackage(); + var ownerB = SysMLFactory.eINSTANCE.createPackage(); + var child = SysMLFactory.eINSTANCE.createComment(); + var membershipA = SysMLFactory.eINSTANCE.createOwningMembership(); + var membershipB = SysMLFactory.eINSTANCE.createOwningMembership(); + + membershipA.setOwningRelatedElement(ownerA); + membershipA.getOwnedRelatedElement().add(child); + membershipB.setOwningRelatedElement(ownerB); + membershipB.getOwnedRelatedElement().add(child); + + assertFalse(membershipA.getOwnedRelatedElement().contains(child)); + assertTrue(membershipB.getOwnedRelatedElement().contains(child)); + assertSame(membershipB, child.getOwningRelationship()); + } + + @Test + public void removingOwnedRelatedElementDetachesOwnership() { + var owner = SysMLFactory.eINSTANCE.createPackage(); + var child = SysMLFactory.eINSTANCE.createComment(); + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + + owningMembership.setOwningRelatedElement(owner); + owningMembership.getOwnedRelatedElement().add(child); + owningMembership.getOwnedRelatedElement().remove(child); + + assertFalse(owningMembership.getOwnedRelatedElement().contains(child)); + assertNull(child.getOwningRelationship()); + } +} diff --git a/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/CrossReferenceIntegrityTest.java b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/CrossReferenceIntegrityTest.java new file mode 100644 index 000000000..72e840c01 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/CrossReferenceIntegrityTest.java @@ -0,0 +1,79 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.sysml; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +/** + * Cross-reference integrity tests for core relationship ownership links. + * + *

What it validates: + *

    + *
  • setting {@code owningRelatedElement} updates the owner-side {@code ownedRelationship};
  • + *
  • moving a relationship between owners updates both opposite sides;
  • + *
  • moving an owned related element between relationships updates {@code owningRelationship}.
  • + *
+ */ +public class CrossReferenceIntegrityTest { + + @Test + public void settingOwningRelatedElementUpdatesOwnerOwnedRelationshipOpposite() { + var owner = SysMLFactory.eINSTANCE.createPackage(); + var membership = SysMLFactory.eINSTANCE.createMembership(); + + membership.setOwningRelatedElement(owner); + + assertSame(owner, membership.getOwningRelatedElement()); + assertTrue(owner.getOwnedRelationship().contains(membership)); + } + + @Test + public void movingRelationshipBetweenOwnersKeepsOppositesConsistent() { + var ownerA = SysMLFactory.eINSTANCE.createPackage(); + var ownerB = SysMLFactory.eINSTANCE.createPackage(); + var membership = SysMLFactory.eINSTANCE.createMembership(); + + membership.setOwningRelatedElement(ownerA); + membership.setOwningRelatedElement(ownerB); + + assertFalse(ownerA.getOwnedRelationship().contains(membership)); + assertTrue(ownerB.getOwnedRelationship().contains(membership)); + assertSame(ownerB, membership.getOwningRelatedElement()); + } + + @Test + public void movingOwnedRelatedElementBetweenRelationshipsUpdatesOwningRelationship() { + var relationshipA = SysMLFactory.eINSTANCE.createOwningMembership(); + var relationshipB = SysMLFactory.eINSTANCE.createOwningMembership(); + var child = SysMLFactory.eINSTANCE.createComment(); + + relationshipA.getOwnedRelatedElement().add(child); + relationshipB.getOwnedRelatedElement().add(child); + + assertFalse(relationshipA.getOwnedRelatedElement().contains(child)); + assertTrue(relationshipB.getOwnedRelatedElement().contains(child)); + assertSame(relationshipB, child.getOwningRelationship()); + } +} diff --git a/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/MetamodelIntegrityTest.java b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/MetamodelIntegrityTest.java new file mode 100644 index 000000000..8a3049e7d --- /dev/null +++ b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/MetamodelIntegrityTest.java @@ -0,0 +1,215 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.sysml; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.HashSet; +import java.util.Set; +import java.util.stream.Collectors; + +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.util.Diagnostician; +import org.junit.jupiter.api.Test; + +/** + * Integrity tests for the generated SysML metamodel. + * + *

What it validates: + *

    + *
  • package identity and EMF diagnostic validity;
  • + *
  • classifier uniqueness and non-empty classifier registry;
  • + *
  • structural feature bounds, containment/proxy semantics, and opposite consistency;
  • + *
  • operation signature uniqueness and return type presence;
  • + *
  • critical {@code Element} feature contracts;
  • + *
  • critical cross-class metamodel contracts.
  • + *
+ */ +public class MetamodelIntegrityTest { + + @Test + public void packageIdentityAndDiagnosticsAreValid() { + var pkg = SysMLPackage.eINSTANCE; + + assertNotNull(pkg); + assertEquals("sysml", pkg.getName()); + assertEquals("sysml", pkg.getNsPrefix()); + assertEquals("https://www.omg.org/spec/SysML/20250201", pkg.getNsURI()); + + var diagnostic = Diagnostician.INSTANCE.validate(pkg); + assertEquals(Diagnostic.OK, diagnostic.getSeverity(), diagnostic::toString); + } + + @Test + public void classifiersAreUniqueAndNotEmpty() { + var pkg = SysMLPackage.eINSTANCE; + assertFalse(pkg.getEClassifiers().isEmpty()); + + var names = new HashSet(); + var ids = new HashSet(); + for (EClassifier classifier : pkg.getEClassifiers()) { + assertNotNull(classifier.getName()); + assertFalse(classifier.getName().isBlank()); + assertTrue(names.add(classifier.getName()), "Duplicate classifier name: " + classifier.getName()); + assertTrue(ids.add(classifier.getClassifierID()), "Duplicate classifier ID: " + classifier.getClassifierID()); + } + } + + @Test + public void structuralFeaturesHaveConsistentBoundsAndOpposites() { + var pkg = SysMLPackage.eINSTANCE; + + for (EClassifier classifier : pkg.getEClassifiers()) { + if (!(classifier instanceof EClass eClass)) { + continue; + } + var featureNames = new HashSet(); + for (EStructuralFeature feature : eClass.getEStructuralFeatures()) { + assertTrue(featureNames.add(feature.getName()), + "Duplicate feature name in " + eClass.getName() + ": " + feature.getName()); + + assertTrue(feature.getLowerBound() >= 0, + "Negative lower bound for " + eClass.getName() + "." + feature.getName()); + assertTrue(feature.getUpperBound() == -1 || feature.getUpperBound() >= feature.getLowerBound(), + "Invalid bounds for " + eClass.getName() + "." + feature.getName()); + + if (feature instanceof EReference reference) { + if (reference.isContainment()) { + assertFalse(reference.isResolveProxies(), + "Containment must not resolve proxies: " + eClass.getName() + "." + feature.getName()); + } + var opposite = reference.getEOpposite(); + if (opposite != null) { + assertEquals(reference, opposite.getEOpposite(), + "Opposite mismatch for " + eClass.getName() + "." + feature.getName()); + } + } + } + } + } + + @Test + public void operationSignaturesAreUniqueWithinClasses() { + var pkg = SysMLPackage.eINSTANCE; + + for (EClassifier classifier : pkg.getEClassifiers()) { + if (!(classifier instanceof EClass eClass)) { + continue; + } + Set signatures = new HashSet<>(); + for (EOperation operation : eClass.getEOperations()) { + assertNotNull(operation.getEType(), eClass.getName() + "::" + operation.getName() + " has no return type"); + var parameterTypes = operation.getEParameters().stream() + .map(param -> param.getEType().getName()) + .collect(Collectors.joining(",")); + var signature = operation.getName() + "(" + parameterTypes + ")"; + assertTrue(signatures.add(signature), + "Duplicate operation signature in " + eClass.getName() + ": " + signature); + } + } + } + + @Test + public void criticalElementFeaturesKeepExpectedShape() { + var pkg = SysMLPackage.eINSTANCE; + var element = pkg.getElement(); + assertNotNull(element); + + var name = pkg.getElement_Name(); + assertAttribute(name, "name", EcorePackage.eINSTANCE.getEString(), true, true, true, 0, 1); + + var qualifiedName = pkg.getElement_QualifiedName(); + assertAttribute(qualifiedName, "qualifiedName", EcorePackage.eINSTANCE.getEString(), true, true, true, 0, 1); + + var ownedRelationship = pkg.getElement_OwnedRelationship(); + assertReference(ownedRelationship, "ownedRelationship", pkg.getRelationship(), false, false, false, 0, -1); + assertTrue(ownedRelationship.isContainment()); + } + + @Test + public void criticalCrossClassContractsRemainStable() { + var pkg = SysMLPackage.eINSTANCE; + + assertTrue(pkg.getRelationship().getESuperTypes().contains(pkg.getElement()), + "Relationship must inherit from Element"); + assertTrue(pkg.getType().getESuperTypes().contains(pkg.getNamespace()), + "Type must inherit from Namespace"); + + var typeOwnedSpecialization = pkg.getType_OwnedSpecialization(); + assertReference(typeOwnedSpecialization, "ownedSpecialization", pkg.getSpecialization(), true, true, true, 0, -1); + + var featureFeaturingType = pkg.getFeature_FeaturingType(); + assertReference(featureFeaturingType, "featuringType", pkg.getType(), true, true, true, 0, -1); + + var isTriggerAction = pkg.getAcceptActionUsage__IsTriggerAction(); + assertEquals(EcorePackage.eINSTANCE.getEBoolean(), isTriggerAction.getEType()); + assertEquals(0, isTriggerAction.getEParameters().size()); + } + + private void assertAttribute( + EAttribute attribute, + String expectedName, + EDataType expectedType, + boolean expectedDerived, + boolean expectedTransient, + boolean expectedVolatile, + int expectedLower, + int expectedUpper) { + assertNotNull(attribute); + assertEquals(expectedName, attribute.getName()); + assertEquals(expectedType, attribute.getEAttributeType()); + assertEquals(expectedDerived, attribute.isDerived()); + assertEquals(expectedTransient, attribute.isTransient()); + assertEquals(expectedVolatile, attribute.isVolatile()); + assertEquals(expectedLower, attribute.getLowerBound()); + assertEquals(expectedUpper, attribute.getUpperBound()); + } + + private void assertReference( + EReference reference, + String expectedName, + EClass expectedType, + boolean expectedDerived, + boolean expectedTransient, + boolean expectedVolatile, + int expectedLower, + int expectedUpper) { + assertNotNull(reference); + assertEquals(expectedName, reference.getName()); + assertEquals(expectedType, reference.getEReferenceType()); + assertEquals(expectedDerived, reference.isDerived()); + assertEquals(expectedTransient, reference.isTransient()); + assertEquals(expectedVolatile, reference.isVolatile()); + assertEquals(expectedLower, reference.getLowerBound()); + assertEquals(expectedUpper, reference.getUpperBound()); + } +} diff --git a/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/MutationStabilityTest.java b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/MutationStabilityTest.java new file mode 100644 index 000000000..26ff0ead3 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/MutationStabilityTest.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.sysml; + +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +/** + * Mutation stability tests for core containment and opposite links. + */ +public class MutationStabilityTest { + + @Test + public void removingRelationshipFromOwnerClearsOwningRelatedElement() { + var owner = SysMLFactory.eINSTANCE.createPackage(); + var membership = SysMLFactory.eINSTANCE.createMembership(); + owner.getOwnedRelationship().add(membership); + + owner.getOwnedRelationship().remove(membership); + + assertNull(membership.getOwningRelatedElement()); + } + + @Test + public void removingOwnedRelatedElementClearsOwningRelationship() { + var relationship = SysMLFactory.eINSTANCE.createOwningMembership(); + var child = SysMLFactory.eINSTANCE.createComment(); + relationship.getOwnedRelatedElement().add(child); + + relationship.getOwnedRelatedElement().remove(child); + + assertNull(child.getOwningRelationship()); + } + + @Test + public void reattachingRelationshipAfterDetachKeepsGraphConsistent() { + var ownerA = SysMLFactory.eINSTANCE.createPackage(); + var ownerB = SysMLFactory.eINSTANCE.createPackage(); + var membership = SysMLFactory.eINSTANCE.createMembership(); + ownerA.getOwnedRelationship().add(membership); + ownerA.getOwnedRelationship().remove(membership); + + ownerB.getOwnedRelationship().add(membership); + + assertSame(ownerB, membership.getOwningRelatedElement()); + assertTrue(ownerB.getOwnedRelationship().contains(membership)); + } +} diff --git a/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SerializationRobustnessTest.java b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SerializationRobustnessTest.java new file mode 100644 index 000000000..8b60124dd --- /dev/null +++ b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SerializationRobustnessTest.java @@ -0,0 +1,140 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.sysml; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.XMLResource; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +/** + * Serialization robustness tests for partial or incomplete SysML instance graphs. + * + *

What this test covers: + *

    + *
  • round-trip persistence of dangling proxy cross-references;
  • + *
  • save/load stability with partially initialized root elements;
  • + *
  • save/load stability with incomplete containment relationships.
  • + *
+ */ +public class SerializationRobustnessTest { + + @TempDir + Path tempDir; + + @Test + public void danglingProxyReferenceIsPreservedAcrossRoundTrip() throws IOException { + var source = tempDir.resolve("dangling-proxy.xmi"); + var set = createResourceSet(); + var resource = set.createResource(URI.createFileURI(source.toString())); + + var membership = SysMLFactory.eINSTANCE.createMembership(); + membership.setElementId("membership-with-proxy"); + var proxyElement = SysMLFactory.eINSTANCE.createComment(); + URI proxyUri = URI.createURI("missing-model.xmi#//@ownedElement.0"); + ((InternalEObject) proxyElement).eSetProxyURI(proxyUri); + membership.setMemberElement(proxyElement); + resource.getContents().add(membership); + resource.save(saveOptions()); + + var reloadedSet = createResourceSet(); + var reloadedResource = reloadedSet.getResource(URI.createFileURI(source.toString()), true); + var reloadedMembership = (Membership) reloadedResource.getContents().getFirst(); + var reloadedMemberElement = reloadedMembership.getMemberElement(); + var reloadedProxyUri = ((InternalEObject) reloadedMemberElement).eProxyURI(); + + assertNotNull(reloadedMemberElement); + assertTrue(reloadedMemberElement.eIsProxy()); + assertEquals(proxyUri.fragment(), reloadedProxyUri.fragment()); + assertTrue(reloadedProxyUri.trimFragment().toString().endsWith("missing-model.xmi")); + } + + @Test + public void partiallyInitializedMembershipRootCanBeSerializedAndReloaded() throws IOException { + var source = tempDir.resolve("partial-membership.xmi"); + var set = createResourceSet(); + var resource = set.createResource(URI.createFileURI(source.toString())); + + var membership = SysMLFactory.eINSTANCE.createMembership(); + membership.setElementId("partial-membership"); + resource.getContents().add(membership); + resource.save(saveOptions()); + + var reloadedSet = createResourceSet(); + var reloadedResource = reloadedSet.getResource(URI.createFileURI(source.toString()), true); + assertEquals(1, reloadedResource.getContents().size()); + var reloadedMembership = (Membership) reloadedResource.getContents().getFirst(); + assertEquals("partial-membership", reloadedMembership.getElementId()); + } + + @Test + public void incompleteOwningMembershipContainmentCanBeSerializedAndReloaded() throws IOException { + var source = tempDir.resolve("incomplete-owning-membership.xmi"); + var set = createResourceSet(); + var resource = set.createResource(URI.createFileURI(source.toString())); + + var owningMembership = SysMLFactory.eINSTANCE.createOwningMembership(); + owningMembership.setElementId("orphan-owning-membership"); + resource.getContents().add(owningMembership); + resource.save(saveOptions()); + + var reloadedSet = createResourceSet(); + var reloadedResource = reloadedSet.getResource(URI.createFileURI(source.toString()), true); + assertEquals(1, reloadedResource.getContents().size()); + var reloadedOwningMembership = (OwningMembership) reloadedResource.getContents().getFirst(); + assertEquals("orphan-owning-membership", reloadedOwningMembership.getElementId()); + assertTrue(reloadedOwningMembership.getOwnedRelatedElement().isEmpty()); + } + + private ResourceSet createResourceSet() { + var resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry() + .getExtensionToFactoryMap() + .put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); + resourceSet.getResourceFactoryRegistry() + .getExtensionToFactoryMap() + .put("xmi", new XMIResourceFactoryImpl()); + resourceSet.getPackageRegistry().put(SysMLPackage.eNS_URI, SysMLPackage.eINSTANCE); + return resourceSet; + } + + private Map saveOptions() { + Map options = new HashMap<>(); + options.put(XMLResource.OPTION_ENCODING, "UTF-8"); + options.put(XMLResource.OPTION_FORMATTED, Boolean.TRUE); + options.put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); + return options; + } +} diff --git a/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SerializationRoundTripTest.java b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SerializationRoundTripTest.java new file mode 100644 index 000000000..a1dfeafb7 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SerializationRoundTripTest.java @@ -0,0 +1,180 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.sysml; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.XMLResource; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +/** + * Serialization round-trip tests for SysML model instances. + * + *

What this test covers: + *

    + *
  • deterministic save/load/save behavior on representative SysML instance graphs;
  • + *
  • stable XMI output across round-trips;
  • + *
  • preservation of containment and cross-reference semantics after reload.
  • + *
+ */ +public class SerializationRoundTripTest { + + @TempDir + Path tempDir; + + @Test + public void saveLoadSaveRoundTripIsStableForReferenceAndContainmentGraph() throws IOException { + Path first = tempDir.resolve("fixture-first.xmi"); + Path second = tempDir.resolve("fixture-second.xmi"); + + ResourceSet initialSet = createResourceSet(); + Resource initialResource = initialSet.createResource(URI.createFileURI(first.toString())); + createFixtureGraph(initialResource); + initialResource.save(saveOptions()); + + ResourceSet reloadedSet = createResourceSet(); + Resource reloadedResource = reloadedSet.getResource(URI.createFileURI(first.toString()), true); + assertNotNull(reloadedResource); + assertEquals(4, reloadedResource.getContents().size(), "Unexpected number of root elements after reload"); + assertSemanticLinksAfterReload(reloadedResource); + + ResourceSet secondSet = createResourceSet(); + Resource secondResource = secondSet.getResource(URI.createFileURI(first.toString()), true); + secondResource.setURI(URI.createFileURI(second.toString())); + secondResource.save(saveOptions()); + + String firstContent = Files.readString(first, StandardCharsets.UTF_8).replace("\r\n", "\n"); + String secondContent = Files.readString(second, StandardCharsets.UTF_8).replace("\r\n", "\n"); + assertEquals(firstContent, secondContent, "Round-trip serialization must be deterministic"); + } + + private ResourceSet createResourceSet() { + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry() + .getExtensionToFactoryMap() + .put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); + resourceSet.getResourceFactoryRegistry() + .getExtensionToFactoryMap() + .put("xmi", new XMIResourceFactoryImpl()); + resourceSet.getPackageRegistry().put(SysMLPackage.eNS_URI, SysMLPackage.eINSTANCE); + return resourceSet; + } + + private Map saveOptions() { + Map options = new HashMap<>(); + options.put(XMLResource.OPTION_ENCODING, "UTF-8"); + options.put(XMLResource.OPTION_FORMATTED, Boolean.TRUE); + options.put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); + return options; + } + + private void createFixtureGraph(Resource resource) { + SysMLFactory factory = SysMLFactory.eINSTANCE; + + Comment commentA = factory.createComment(); + commentA.setElementId("commentA"); + commentA.setBody("Body A"); + commentA.setLocale("en"); + commentA.setDeclaredName("CommentA"); + + Comment commentB = factory.createComment(); + commentB.setElementId("commentB"); + commentB.setBody("Body B"); + commentB.setLocale("en"); + commentB.setDeclaredName("CommentB"); + + Comment commentNested = factory.createComment(); + commentNested.setElementId("commentNested"); + commentNested.setBody("Nested Body"); + commentNested.setLocale("fr"); + commentNested.setDeclaredShortName("CN"); + + Dependency dependency = factory.createDependency(); + dependency.setElementId("dependencyAB"); + dependency.getClient().add(commentA); + dependency.getSupplier().add(commentB); + dependency.getOwnedRelatedElement().add(commentNested); + + Annotation annotation = factory.createAnnotation(); + annotation.setElementId("annotationOnA"); + annotation.setAnnotatedElement(commentA); + + resource.getContents().add(commentA); + resource.getContents().add(commentB); + resource.getContents().add(dependency); + resource.getContents().add(annotation); + } + + private void assertSemanticLinksAfterReload(Resource resource) { + Comment commentA = null; + Comment commentB = null; + Dependency dependency = null; + Annotation annotation = null; + + for (var root : resource.getContents()) { + if (root instanceof Comment comment && "commentA".equals(comment.getElementId())) { + commentA = comment; + } else if (root instanceof Comment comment && "commentB".equals(comment.getElementId())) { + commentB = comment; + } else if (root instanceof Dependency dep && "dependencyAB".equals(dep.getElementId())) { + dependency = dep; + } else if (root instanceof Annotation ann && "annotationOnA".equals(ann.getElementId())) { + annotation = ann; + } + } + + assertNotNull(commentA); + assertNotNull(commentB); + assertNotNull(dependency); + assertNotNull(annotation); + + assertEquals(1, dependency.getClient().size()); + assertEquals(1, dependency.getSupplier().size()); + assertSame(commentA, dependency.getClient().getFirst()); + assertSame(commentB, dependency.getSupplier().getFirst()); + assertEquals(1, dependency.getSource().size()); + assertEquals(1, dependency.getTarget().size()); + assertSame(commentA, dependency.getSource().getFirst()); + assertSame(commentB, dependency.getTarget().getFirst()); + + assertEquals(1, dependency.getOwnedRelatedElement().size()); + assertTrue(dependency.getOwnedRelatedElement().getFirst() instanceof Comment); + assertEquals("commentNested", ((Comment) dependency.getOwnedRelatedElement().getFirst()).getElementId()); + + assertSame(commentA, annotation.getAnnotatedElement()); + } +} diff --git a/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SerializationRoundTripVariantsTest.java b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SerializationRoundTripVariantsTest.java new file mode 100644 index 000000000..838327f0d --- /dev/null +++ b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SerializationRoundTripVariantsTest.java @@ -0,0 +1,129 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.sysml; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.XMLResource; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +/** + * Additional round-trip variants for handcrafted SysML model shapes. + */ +public class SerializationRoundTripVariantsTest { + + @TempDir + Path tempDir; + + @Test + public void singleRootCommentRoundTripIsStable() throws IOException { + var source = tempDir.resolve("single-root-source.xmi"); + var copy = tempDir.resolve("single-root-copy.xmi"); + + var initialSet = createResourceSet(); + var initialResource = initialSet.createResource(URI.createFileURI(source.toString())); + var comment = SysMLFactory.eINSTANCE.createComment(); + comment.setElementId("single-root"); + comment.setDeclaredName("SingleRoot"); + comment.setBody("Body"); + initialResource.getContents().add(comment); + initialResource.save(saveOptions()); + + var reloadedSet = createResourceSet(); + var reloaded = reloadedSet.getResource(URI.createFileURI(source.toString()), true); + assertEquals(1, reloaded.getContents().size()); + assertEquals(comment.getElementId(), ((Comment) reloaded.getContents().getFirst()).getElementId()); + + var secondSet = createResourceSet(); + var second = secondSet.getResource(URI.createFileURI(source.toString()), true); + second.setURI(URI.createFileURI(copy.toString())); + second.save(saveOptions()); + + var firstContent = Files.readString(source, StandardCharsets.UTF_8).replace("\r\n", "\n"); + var secondContent = Files.readString(copy, StandardCharsets.UTF_8).replace("\r\n", "\n"); + assertEquals(firstContent, secondContent); + } + + @Test + public void owningMembershipContainmentRoundTripPreservesLinks() throws IOException { + var source = tempDir.resolve("containment-source.xmi"); + + var initialSet = createResourceSet(); + var initialResource = initialSet.createResource(URI.createFileURI(source.toString())); + var owner = SysMLFactory.eINSTANCE.createPackage(); + owner.setElementId("owner"); + var relationship = SysMLFactory.eINSTANCE.createOwningMembership(); + relationship.setElementId("rel"); + var child = SysMLFactory.eINSTANCE.createComment(); + child.setElementId("child"); + owner.getOwnedRelationship().add(relationship); + relationship.getOwnedRelatedElement().add(child); + initialResource.getContents().add(owner); + initialResource.save(saveOptions()); + + var reloadedSet = createResourceSet(); + var reloaded = reloadedSet.getResource(URI.createFileURI(source.toString()), true); + assertEquals(1, reloaded.getContents().size()); + var reloadedOwner = (Package) reloaded.getContents().getFirst(); + assertEquals(1, reloadedOwner.getOwnedRelationship().size()); + var reloadedRelationship = reloadedOwner.getOwnedRelationship().getFirst(); + assertNotNull(reloadedRelationship); + assertEquals(1, reloadedRelationship.getOwnedRelatedElement().size()); + var reloadedChild = reloadedRelationship.getOwnedRelatedElement().getFirst(); + assertNotNull(reloadedChild); + assertSame(reloadedRelationship, reloadedChild.getOwningRelationship()); + } + + private ResourceSet createResourceSet() { + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry() + .getExtensionToFactoryMap() + .put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); + resourceSet.getResourceFactoryRegistry() + .getExtensionToFactoryMap() + .put("xmi", new XMIResourceFactoryImpl()); + resourceSet.getPackageRegistry().put(SysMLPackage.eNS_URI, SysMLPackage.eINSTANCE); + return resourceSet; + } + + private Map saveOptions() { + Map options = new HashMap<>(); + options.put(XMLResource.OPTION_ENCODING, "UTF-8"); + options.put(XMLResource.OPTION_FORMATTED, Boolean.TRUE); + options.put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); + return options; + } +} diff --git a/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SubsetRedefineIntegrityTest.java b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SubsetRedefineIntegrityTest.java new file mode 100644 index 000000000..eebb18b17 --- /dev/null +++ b/unified/org.omg.sysml.model.tests/src/test/java/org/omg/sysml/model/sysml/SubsetRedefineIntegrityTest.java @@ -0,0 +1,95 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.sysml; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.eclipse.emf.ecore.EReference; +import org.junit.jupiter.api.Test; + +/** + * Metamodel integrity tests for subset/redefine edge contracts. + * + *

What it validates: + *

    + *
  • selected references keep both {@code redefines} and {@code subsets} annotations;
  • + *
  • selected subset/redefine references keep derived/transient/volatile semantics;
  • + *
  • selected subset/redefine references keep stable opposite-reference contracts.
  • + *
+ */ +public class SubsetRedefineIntegrityTest { + + @Test + public void membershipOwningNamespaceKeepsSubsetAndRedefineContract() { + var reference = SysMLPackage.eINSTANCE.getMembership_MembershipOwningNamespace(); + + this.assertSubsetRedefineDerivedReference(reference); + assertEquals(1, reference.getLowerBound()); + assertEquals(SysMLPackage.eINSTANCE.getNamespace(), reference.getEReferenceType()); + } + + @Test + public void importOwningNamespaceKeepsSubsetAndRedefineContract() { + var reference = SysMLPackage.eINSTANCE.getImport_ImportOwningNamespace(); + + this.assertSubsetRedefineDerivedReference(reference); + assertEquals(1, reference.getLowerBound()); + assertEquals(SysMLPackage.eINSTANCE.getNamespace(), reference.getEReferenceType()); + } + + @Test + public void featureTypingOwningFeatureKeepsSubsetAndRedefineContract() { + var reference = SysMLPackage.eINSTANCE.getFeatureTyping_OwningFeature(); + + this.assertSubsetRedefineDerivedReference(reference); + assertEquals(0, reference.getLowerBound()); + assertEquals(SysMLPackage.eINSTANCE.getFeature(), reference.getEReferenceType()); + } + + @Test + public void subsetRedefineOppositesRemainConsistent() { + this.assertOppositeConsistency( + SysMLPackage.eINSTANCE.getMembership_MembershipOwningNamespace(), + SysMLPackage.eINSTANCE.getNamespace_OwnedMembership()); + this.assertOppositeConsistency( + SysMLPackage.eINSTANCE.getImport_ImportOwningNamespace(), + SysMLPackage.eINSTANCE.getNamespace_OwnedImport()); + this.assertOppositeConsistency( + SysMLPackage.eINSTANCE.getFeatureTyping_OwningFeature(), + SysMLPackage.eINSTANCE.getFeature_OwnedTyping()); + } + + private void assertSubsetRedefineDerivedReference(EReference reference) { + assertNotNull(reference.getEAnnotation("redefines")); + assertNotNull(reference.getEAnnotation("subsets")); + assertTrue(reference.isDerived()); + assertTrue(reference.isTransient()); + assertTrue(reference.isVolatile()); + } + + private void assertOppositeConsistency(EReference reference, EReference expectedOpposite) { + assertSame(expectedOpposite, reference.getEOpposite()); + assertSame(reference, expectedOpposite.getEOpposite()); + } +} diff --git a/unified/org.omg.sysml.model.tools/.classpath b/unified/org.omg.sysml.model.tools/.classpath new file mode 100644 index 000000000..c9463ff0d --- /dev/null +++ b/unified/org.omg.sysml.model.tools/.classpath @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/unified/org.omg.sysml.model.tools/.project b/unified/org.omg.sysml.model.tools/.project new file mode 100644 index 000000000..f6c0c5ad6 --- /dev/null +++ b/unified/org.omg.sysml.model.tools/.project @@ -0,0 +1,20 @@ + + + org.omg.sysml.model.tools + + + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.m2e.core.maven2Builder + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/unified/org.omg.sysml.model.tools/.settings/org.eclipse.core.resources.prefs b/unified/org.omg.sysml.model.tools/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..99f26c020 --- /dev/null +++ b/unified/org.omg.sysml.model.tools/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/unified/org.omg.sysml.model.tools/.settings/org.eclipse.jdt.core.prefs b/unified/org.omg.sysml.model.tools/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..e9186c3e3 --- /dev/null +++ b/unified/org.omg.sysml.model.tools/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.source=21 diff --git a/unified/org.omg.sysml.model.tools/.settings/org.eclipse.m2e.core.prefs b/unified/org.omg.sysml.model.tools/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000..54212ae86 --- /dev/null +++ b/unified/org.omg.sysml.model.tools/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/unified/org.omg.sysml.model.tools/OCL_EXPRESSION_FINDINGS.md b/unified/org.omg.sysml.model.tools/OCL_EXPRESSION_FINDINGS.md new file mode 100644 index 000000000..c982808a7 --- /dev/null +++ b/unified/org.omg.sysml.model.tools/OCL_EXPRESSION_FINDINGS.md @@ -0,0 +1,52 @@ +# OCL Expression Findings (from `SysML_xmi.uml`) + +This document lists inconsistencies, errors, and unusual patterns observed while extracting OCL expressions for delegate generation. + +## Confirmed textual errors in OCL bodies + +1. Typo in property name `featureMemberhsip` (likely `featureMembership`) +- `deriveViewpointDefinitionViewpointStakeholder` at lines 14533-14535 +- `deriveViewpointUsageViewpointStakeholder` at lines 14804-14806 + +2. Typo in variable name `refrencedFeature` (likely `referencedFeature`) +- `deriveVewRenderingMembershipReferencedRendering` body at line 15110 +- Note: + - inconsistent with variable declaration at lines 15106-15107. + +## Rule naming / spelling issues + +1. Rule name typo: `deriveVewRenderingMembershipReferencedRendering` +- Rule declaration at line 15099 +- Expected spelling likely: `deriveViewRenderingMembershipReferencedRendering`. +- Impact: + - reduces traceability between rule names and target members; + - makes generated artifacts look inconsistent. + +## Semantic inconsistency between prose and OCL + +1. `deriveFeatureOwnedTyping` comment/body mismatch +- Rule at lines 3134-3141 +- Prose says owned typings come from `ownedSpecializations` (line 3136), + but OCL uses `ownedGeneralization` (line 3140): + - `ownedTyping = ownedGeneralization->selectByKind(FeatureTyping)` + +## OCL patterns that are valid but easy to misread + +1. `OrderedSet{self}` in `deriveFeatureType` +- Lines 3149-3153 +- Includes `self` intentionally in the seed set before closure. +- Note: + - easy to misread as accidental self-inclusion. + +## Traceability / maintainability issues in operation rules + +1. Many operation-level rules use generic names like `unnamed1` +- Example: `AcceptActionUsage::isTriggerAction` body condition uses `ownedRule name="unnamed1"` at lines 8346-8352. +- Impact: + - weak traceability from OCL source to generated delegate methods; + - harder review/debug when comparing generated comments with UML rules. + +## Out-of-scope but notable quality issue near OCL rules + +1. Mixed language labeling in constraints +- Example at lines 7372-7373: language is `English`, but body is OCL. diff --git a/unified/org.omg.sysml.model.tools/README.md b/unified/org.omg.sysml.model.tools/README.md new file mode 100644 index 000000000..2a292da46 --- /dev/null +++ b/unified/org.omg.sysml.model.tools/README.md @@ -0,0 +1,102 @@ +# org.omg.sysml.model.tools + +This module contains standalone Java generators used by the `unified` modules. + +## Purpose +- Contains standalone Java generation tools used by the unified build workflow. + +## What This Module Provides +- `GenerateModelFromGenModel`: reloads `SysML.genmodel` and generates EMF model code. +- `GenerateModelRedefinesFromEcore`: second-phase metamodel generator that applies `redefines` overrides in generated `*Impl` classes. +- `GenerateDelegatesFromEcore`: generates delegate classes for derived features and operations from `SysML.ecore`. +- `GenerateAdaptersFromEcore`: generates one adapter class per EClass from `SysML.ecore`. + +## Metamodel Two-Phase Generation +Metamodel generation is intentionally split in two phases: + +1. `GenerateModelFromGenModel` + Generates the baseline EMF metamodel Java code from `SysML.genmodel`. +2. `GenerateModelRedefinesFromEcore` + Applies redefines-based getter overrides in generated metamodel implementation classes. + +This two-phase flow must be run from Maven profiles, not manually from Eclipse/STS generation actions. + +## Delegate Generator Naming +`GenerateDelegatesFromEcore` generates delegate classes in `org.omg.sysml.logic` with ordinal-free names: + +- Setting delegates: `Class_Feature_SettingDelegate` +- Invocation delegates: `Class_Operation_InvocationDelegate` + +Output packages: +- Setting delegates: `org.omg.sysml.logic.delegate.setting` +- Invocation delegates: `org.omg.sysml.logic.delegate.invocation` + +Notes: +- No parameter type token suffixes are used in invocation delegate class names. +- No `_F` or `_O` suffixes are used. +- For derived settings without an OCL derive rule, generated `get(...)` methods include a + subsets-based fallback built from `EAnnotation(source="subsets")` references. +- For derived settings without an OCL derive rule, generated `get(...)` methods also include a + redefines-based fallback built from `EAnnotation(source="redefines")` references. +- When a subsets annotation exists but cannot be safely auto-generated (for example derived + subset source or cardinality mismatch), a placeholder `get(...)` is still generated with an + in-method comment explaining why it is not handled and what requires manual implementation. +- When a redefines annotation exists but cannot be safely auto-generated (for example self + reference, derived source recursion risk, type mismatch), unsupported sources are documented in + generated comments and fallback remains manual when no safe source is available. + +## Adapter Generator +`GenerateAdaptersFromEcore` generates adapters in `org.omg.sysml.logic`: + +- Package: `org.omg.sysml.logic.adapter` +- Base class: `AbstractSysMLAdapter` +- Per-EClass class naming: `Adapter` + +Determinism guarantees: +- input EClasses are sorted by name before generation; +- existing `*Adapter.java` files are cleaned before regeneration; +- generated content is template-based and stable for identical Ecore input. + +## Test Strategy +Quality for adapter generation is validated in `org.omg.sysml.logic.tests` with: + +- coverage tests ensuring there is exactly one generated adapter class per EClass in `SysML.ecore`; +- runtime shape tests ensuring each generated adapter class is loadable, instantiable, and extends `AbstractSysMLAdapter`. + +## Design Intent +- Build-time utilities only; not part of application runtime. +- Centralizes reproducible generation steps for model and delegate code. + +## Typical Usage +- Run `GenerateModelFromGenModel` before generating model code updates. +- Run `GenerateDelegatesFromEcore` after metamodel changes affecting derived features/operations. + +## Maven Profiles +Generator executions are opt-in. A standard build does not run generators. + +- Default build (no generation): + `mvn clean verify` + +- Metamodel generator only: + `mvn clean verify -Pgenerate-metamodel` + +- Delegate generator only: + `mvn clean verify -Pgenerate-delegates` + +- Adapter generator only: + `mvn clean verify -Pgenerate-adapters` + +- All generators (metamodel + delegates + adapters): + `mvn clean verify -Pgenerate-all` + +Profile behavior: +- `generate-metamodel` runs the two metamodel phases in order: + 1. `GenerateModelFromGenModel` + 2. `GenerateModelRedefinesFromEcore` +- `generate-delegates` runs `GenerateDelegatesFromEcore`. +- `generate-adapters` runs `GenerateAdaptersFromEcore`. +- `generate-all` runs the three generators in this order: + 1. metamodel phase 1 (`GenerateModelFromGenModel`) + 2. metamodel phase 2 (`GenerateModelRedefinesFromEcore`) + 3. delegates + 4. adapters diff --git a/unified/org.omg.sysml.model.tools/pom.xml b/unified/org.omg.sysml.model.tools/pom.xml new file mode 100644 index 000000000..6de29e38f --- /dev/null +++ b/unified/org.omg.sysml.model.tools/pom.xml @@ -0,0 +1,229 @@ + + + 4.0.0 + + + org.omg.sysml + org.omg.sysml.unified.parent + 0.1.0-SNAPSHOT + ../pom.xml + + + org.omg.sysml.model.tools + org.omg.sysml.model.tools + + + + org.eclipse.emf + org.eclipse.emf.common + + + org.eclipse.emf + org.eclipse.emf.ecore + + + org.eclipse.emf + org.eclipse.emf.ecore.xmi + + + org.eclipse.emf + org.eclipse.emf.codegen.ecore + + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.3.1 + + + attach-sources + + jar-no-fork + + + + + + + + + + generate-metamodel + + + + org.codehaus.mojo + exec-maven-plugin + 3.5.0 + + + generate-metamodel-code + process-classes + + java + + + org.omg.sysml.model.tools.GenerateModelFromGenModel + + ${project.basedir}/../org.omg.sysml.model/src/main/resources/model/SysML.genmodel + ${project.basedir}/../org.omg.sysml.model + + + + + generate-metamodel-redefines-code + process-classes + + java + + + org.omg.sysml.model.tools.GenerateModelRedefinesFromEcore + + ${project.basedir}/../org.omg.sysml.model/src/main/resources/model/SysML.ecore + ${project.basedir}/../org.omg.sysml.model + + + + + + + + + + + generate-delegates + + + + org.codehaus.mojo + exec-maven-plugin + 3.5.0 + + + generate-delegate-code + process-classes + + java + + + org.omg.sysml.model.tools.GenerateDelegatesFromEcore + + ${project.basedir}/../org.omg.sysml.model/src/main/resources/model/SysML.ecore + ${project.basedir}/../org.omg.sysml.logic + ${project.basedir}/src/main/resources/SysML_xmi.uml + + + + + + + + + + + generate-adapters + + + + org.codehaus.mojo + exec-maven-plugin + 3.5.0 + + + generate-adapter-code + process-classes + + java + + + org.omg.sysml.model.tools.GenerateAdaptersFromEcore + + ${project.basedir}/../org.omg.sysml.model/src/main/resources/model/SysML.ecore + ${project.basedir}/../org.omg.sysml.logic + + + + + + + + + + + generate-all + + + + org.codehaus.mojo + exec-maven-plugin + 3.5.0 + + + generate-all-metamodel-code + process-classes + + java + + + org.omg.sysml.model.tools.GenerateModelFromGenModel + + ${project.basedir}/../org.omg.sysml.model/src/main/resources/model/SysML.genmodel + ${project.basedir}/../org.omg.sysml.model + + + + + generate-all-metamodel-redefines-code + process-classes + + java + + + org.omg.sysml.model.tools.GenerateModelRedefinesFromEcore + + ${project.basedir}/../org.omg.sysml.model/src/main/resources/model/SysML.ecore + ${project.basedir}/../org.omg.sysml.model + + + + + generate-all-delegate-code + process-classes + + java + + + org.omg.sysml.model.tools.GenerateDelegatesFromEcore + + ${project.basedir}/../org.omg.sysml.model/src/main/resources/model/SysML.ecore + ${project.basedir}/../org.omg.sysml.logic + ${project.basedir}/src/main/resources/SysML_xmi.uml + + + + + generate-all-adapter-code + process-classes + + java + + + org.omg.sysml.model.tools.GenerateAdaptersFromEcore + + ${project.basedir}/../org.omg.sysml.model/src/main/resources/model/SysML.ecore + ${project.basedir}/../org.omg.sysml.logic + + + + + + + + + + diff --git a/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/DelegateFileSupport.java b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/DelegateFileSupport.java new file mode 100644 index 000000000..139ad582b --- /dev/null +++ b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/DelegateFileSupport.java @@ -0,0 +1,452 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.tools; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Handles generated delegate file cleanup and preservation of handwritten + * {@code @generated NOT} method bodies. + */ +public class DelegateFileSupport { + private final Pattern singleImportPattern = Pattern.compile("^import\\s+([a-zA-Z0-9_$.]+);$"); + + /** + * Writes generated Java content while preserving one existing {@code @generated NOT} method + * when present. + * + * @param path destination file path + * @param content full generated file content + * @param methodName method name to preserve ({@code get} or {@code dynamicInvoke}) + * @throws IOException if reading or writing fails + */ + public void write(Path path, String content, String methodName) throws IOException { + String finalContent = content; + if (Files.isRegularFile(path)) { + String existing = Files.readString(path, StandardCharsets.UTF_8); + Optional preservedMethod = extractGeneratedNotMethod(existing, methodName); + if (preservedMethod.isPresent()) { + finalContent = replaceGeneratedMethod(content, methodName, preservedMethod.get()); + finalContent = mergeMissingImports(finalContent, existing); + finalContent = mergeSupportMembers(finalContent, existing, methodName); + } + } + finalContent = pruneUnusedImports(finalContent); + finalContent = normalizeTrailingNewline(finalContent); + Files.writeString(path, finalContent, StandardCharsets.UTF_8); + } + + /** + * Normalizes end-of-file newlines to exactly one trailing line separator. + * + * @param content Java source content + * @return content ending with a single {@code \n} + */ + private String normalizeTrailingNewline(String content) { + String normalized = content.replaceAll("[\\t\\x0B\\f\\r\\n ]+\\z", ""); + return normalized + "\n"; + } + + /** + * Removes unused single-type imports from a Java source content. + * + *

Wildcard imports are preserved. This keeps regenerated delegates clean when preserved + * {@code @generated NOT} methods no longer require previously imported types. + * + * @param content Java source content + * @return content without unused import lines + */ + private String pruneUnusedImports(String content) { + String[] lines = content.split("\n", -1); + StringBuilder stripped = new StringBuilder(); + List importLines = new ArrayList<>(); + for (String line : lines) { + if (line.startsWith("import ")) { + importLines.add(line); + } else { + stripped.append(line).append('\n'); + } + } + + String nonImportContent = stripped.toString(); + var keptImports = new ArrayList(); + for (String importLine : importLines) { + String importedType = importedTypeName(importLine); + if (importedType == null) { + keptImports.add(importLine); + continue; + } + if (nonImportContent.matches("(?s).*\\b" + java.util.regex.Pattern.quote(importedType) + "\\b.*")) { + keptImports.add(importLine); + } + } + + var rebuilt = new StringBuilder(); + for (String line : lines) { + if (!line.startsWith("import ")) { + rebuilt.append(line).append('\n'); + continue; + } + if (keptImports.contains(line)) { + rebuilt.append(line).append('\n'); + } + } + return rebuilt.toString(); + } + + /** + * Extracts imported simple type name from one import line. + * + * @param importLine import declaration line + * @return simple type name, or {@code null} for wildcard/invalid imports + */ + private String importedTypeName(String importLine) { + String trimmed = importLine.trim(); + Matcher matcher = singleImportPattern.matcher(trimmed); + if (!matcher.matches()) { + return null; + } + String fqn = matcher.group(1); + if (fqn.endsWith(".*")) { + return null; + } + int lastDot = fqn.lastIndexOf('.'); + if (lastDot < 0 || lastDot == fqn.length() - 1) { + return null; + } + return fqn.substring(lastDot + 1); + } + + /** + * Deletes previously generated delegate files in a directory based on suffix matching. + * + * @param dir directory containing generated delegates + * @param suffix generated file suffix to remove + * @param methodName method name to protect when {@code @generated NOT} is present + * @throws IOException if directory listing fails + */ + public void cleanDelegateFiles(Path dir, String suffix, String methodName) throws IOException { + if (!Files.exists(dir)) { + return; + } + try (var stream = Files.list(dir)) { + var candidates = stream.filter(Files::isRegularFile) + .filter(p -> p.getFileName().toString().endsWith(suffix)) + .toList(); + for (Path candidate : candidates) { + if (!isGeneratedNotProtected(candidate, methodName)) { + Files.delete(candidate); + } + } + } + } + + /** + * Detects whether a delegate file contains a handwritten override protected by + * {@code @generated NOT}. + * + * @param path delegate Java file + * @param methodName overridden method name ({@code get} or {@code dynamicInvoke}) + * @return {@code true} when the file should be preserved + */ + private boolean isGeneratedNotProtected(Path path, String methodName) { + if (!Files.isRegularFile(path)) { + return false; + } + try { + String content = Files.readString(path, StandardCharsets.UTF_8); + return extractGeneratedNotMethod(content, methodName).isPresent(); + } catch (IOException e) { + throw new RuntimeException("Failed to inspect delegate file: " + path, e); + } + } + + /** + * Extracts a delegate method block when it is marked with {@code @generated NOT}. + * + * @param content Java source content + * @param methodName overridden method name ({@code get} or {@code dynamicInvoke}) + * @return method block to preserve, including annotations/comments + */ + private Optional extractGeneratedNotMethod(String content, String methodName) { + int methodSignatureIndex = methodSignatureIndex(content, methodName); + if (methodSignatureIndex < 0) { + return Optional.empty(); + } + int methodStart = methodBlockStart(content, methodSignatureIndex); + int bodyStart = content.indexOf('{', methodSignatureIndex); + if (bodyStart < 0) { + return Optional.empty(); + } + int bodyEnd = matchingBraceIndex(content, bodyStart); + if (bodyEnd < 0) { + return Optional.empty(); + } + int end = bodyEnd + 1; + if (end < content.length() && content.charAt(end) == '\n') { + end++; + } + String methodBlock = content.substring(methodStart, end); + if (!methodBlock.contains("@generated NOT")) { + return Optional.empty(); + } + return Optional.of(methodBlock); + } + + /** + * Replaces the generated method block in fresh content with a preserved custom method block. + * + * @param generatedContent newly generated Java source + * @param methodName overridden method name ({@code get} or {@code dynamicInvoke}) + * @param preservedMethod method block to inject + * @return merged Java source content + */ + private String replaceGeneratedMethod(String generatedContent, String methodName, String preservedMethod) { + int methodSignatureIndex = methodSignatureIndex(generatedContent, methodName); + if (methodSignatureIndex < 0) { + int classClose = generatedContent.lastIndexOf('}'); + if (classClose < 0) { + return generatedContent; + } + return generatedContent.substring(0, classClose) + + "\n" + + preservedMethod + + generatedContent.substring(classClose); + } + int methodStart = methodBlockStart(generatedContent, methodSignatureIndex); + int bodyStart = generatedContent.indexOf('{', methodSignatureIndex); + if (bodyStart < 0) { + return generatedContent; + } + int bodyEnd = matchingBraceIndex(generatedContent, bodyStart); + if (bodyEnd < 0) { + return generatedContent; + } + int methodEnd = bodyEnd + 1; + if (methodEnd < generatedContent.length() && generatedContent.charAt(methodEnd) == '\n') { + methodEnd++; + } + return generatedContent.substring(0, methodStart) + preservedMethod + generatedContent.substring(methodEnd); + } + + /** + * Merges import statements from existing content into newly generated content when needed. + * + * @param generatedContent newly generated Java source + * @param existingContent existing Java source containing preserved logic + * @return generated source enriched with missing imports from existing source + */ + private String mergeMissingImports(String generatedContent, String existingContent) { + var generatedImports = importLines(generatedContent); + var existingImports = importLines(existingContent); + + var missingImports = new ArrayList(); + for (String importLine : existingImports) { + if (!generatedImports.contains(importLine)) { + missingImports.add(importLine); + } + } + if (missingImports.isEmpty()) { + return generatedContent; + } + + int lastImportStart = generatedContent.lastIndexOf("\nimport "); + if (lastImportStart >= 0) { + int insertAt = generatedContent.indexOf('\n', lastImportStart + 1); + if (insertAt < 0) { + insertAt = generatedContent.length(); + } + return generatedContent.substring(0, insertAt + 1) + + String.join("\n", missingImports) + + "\n" + + generatedContent.substring(insertAt + 1); + } + + int packageEnd = generatedContent.indexOf(';'); + if (packageEnd < 0) { + return generatedContent; + } + int insertAt = packageEnd + 1; + return generatedContent.substring(0, insertAt) + + "\n\n" + + String.join("\n", missingImports) + + generatedContent.substring(insertAt); + } + + /** + * Extracts all import lines from a Java source content. + * + * @param content Java source content + * @return import lines preserving declaration order + */ + private List importLines(String content) { + var imports = new ArrayList(); + for (String line : content.split("\n")) { + if (line.startsWith("import ")) { + imports.add(line); + } + } + return imports; + } + + /** + * Merges non-method helper members around a preserved {@code @generated NOT} method. + * + * @param generatedContent newly generated Java source + * @param existingContent existing Java source containing preserved logic + * @param methodName overridden method name ({@code get} or {@code dynamicInvoke}) + * @return generated source enriched with helper members from existing source + */ + private String mergeSupportMembers(String generatedContent, String existingContent, String methodName) { + int existingMethodSig = methodSignatureIndex(existingContent, methodName); + if (existingMethodSig < 0) { + return generatedContent; + } + int existingMethodStart = methodBlockStart(existingContent, existingMethodSig); + int existingBodyStart = existingContent.indexOf('{', existingMethodSig); + int existingBodyEnd = existingBodyStart >= 0 ? matchingBraceIndex(existingContent, existingBodyStart) : -1; + if (existingBodyEnd < 0) { + return generatedContent; + } + int existingMethodEnd = existingBodyEnd + 1; + if (existingMethodEnd < existingContent.length() && existingContent.charAt(existingMethodEnd) == '\n') { + existingMethodEnd++; + } + + int existingClassOpen = existingContent.indexOf('{', existingContent.indexOf("class ")); + int existingClassClose = existingContent.lastIndexOf('}'); + int generatedClassOpen = generatedContent.indexOf('{', generatedContent.indexOf("class ")); + int generatedClassClose = generatedContent.lastIndexOf('}'); + if (existingClassOpen < 0 || existingClassClose < 0 || generatedClassOpen < 0 || generatedClassClose < 0) { + return generatedContent; + } + + String result = generatedContent; + + String existingPrefix = existingContent.substring(existingClassOpen + 1, existingMethodStart); + var prefixLines = new ArrayList(); + for (String line : existingPrefix.split("\n")) { + String trimmed = line.strip(); + if (trimmed.startsWith("private ") && trimmed.endsWith(";")) { + prefixLines.add(line.stripTrailing()); + } + } + if (!prefixLines.isEmpty()) { + var insert = new StringBuilder(); + for (String line : prefixLines) { + if (!result.contains(line + "\n")) { + insert.append('\n').append(line).append('\n'); + } + } + if (!insert.isEmpty()) { + int insertAt = result.indexOf('\n', generatedClassOpen + 1); + if (insertAt < 0) { + insertAt = generatedClassOpen + 1; + } + result = result.substring(0, insertAt + 1) + insert + result.substring(insertAt + 1); + } + } + + String existingSuffix = existingContent.substring(existingMethodEnd, existingClassClose).strip(); + if (!existingSuffix.isEmpty() && !result.contains(existingSuffix)) { + int currentClassClose = result.lastIndexOf('}'); + if (currentClassClose > 0) { + result = result.substring(0, currentClassClose) + + "\n\n" + + existingSuffix + + "\n" + + result.substring(currentClassClose); + } + } + return result; + } + + /** + * Finds the signature index of the generated delegate method. + * + * @param content Java source content + * @param methodName overridden method name + * @return signature index, or {@code -1} when absent + */ + private int methodSignatureIndex(String content, String methodName) { + if ("get".equals(methodName)) { + return content.indexOf("protected Object get("); + } + if ("dynamicInvoke".equals(methodName)) { + return content.indexOf("public Object dynamicInvoke("); + } + return content.indexOf(methodName + "("); + } + + /** + * Finds the start index of a method block, including leading annotation/comment when present. + * + * @param content Java source content + * @param methodSignatureIndex index of method signature + * @return block start index + */ + private int methodBlockStart(String content, int methodSignatureIndex) { + int start = methodSignatureIndex; + int overrideLine = content.lastIndexOf("\n @Override", methodSignatureIndex); + if (overrideLine >= 0) { + start = overrideLine + 1; + int javadocLine = content.lastIndexOf("\n /**", start); + if (javadocLine >= 0) { + int javadocEnd = content.indexOf("*/", javadocLine); + if (javadocEnd >= 0 && javadocEnd < start && content.substring(javadocEnd + 2, start).isBlank()) { + start = javadocLine + 1; + } + } + } + return start; + } + + /** + * Finds the matching closing brace for a block starting at {@code openingBraceIndex}. + * + * @param content Java source content + * @param openingBraceIndex index of opening brace + * @return index of matching closing brace, or {@code -1} when not found + */ + private int matchingBraceIndex(String content, int openingBraceIndex) { + int depth = 0; + for (int i = openingBraceIndex; i < content.length(); i++) { + char ch = content.charAt(i); + if (ch == '{') { + depth++; + } else if (ch == '}') { + depth--; + if (depth == 0) { + return i; + } + } + } + return -1; + } +} diff --git a/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/DeriveRule.java b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/DeriveRule.java new file mode 100644 index 000000000..70e58de0c --- /dev/null +++ b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/DeriveRule.java @@ -0,0 +1,34 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.tools; + +/** + * Derive rule metadata extracted from UML owned rules. + * + * @param ruleName UML rule name + * @param memberName target member name (feature or operation) + * @param oclBody OCL expression body + */ +record DeriveRule( + String ruleName, + String memberName, + String oclBody) { +} diff --git a/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateAdaptersFromEcore.java b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateAdaptersFromEcore.java new file mode 100644 index 000000000..69db7cbcf --- /dev/null +++ b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateAdaptersFromEcore.java @@ -0,0 +1,424 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.tools; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +/** + * Generates one adapter class per SysML EClass in {@code org.omg.sysml.logic.adapter}. + * + *

The generation is deterministic: + *

    + *
  • classes are sorted by name;
  • + *
  • all adapter files are regenerated from the same Ecore input;
  • + *
  • obsolete generated adapter files are removed before generation.
  • + *
+ * + *

Usage: + *

{@code
+ * java org.omg.sysml.model.tools.GenerateAdaptersFromEcore \
+ *    
+ * }
+ */ +public final class GenerateAdaptersFromEcore { + + private final String ECORE_EXTENSION = "ecore"; + private final String ADAPTER_SUFFIX = "Adapter.java"; + private final Path ADAPTER_PACKAGE_PATH = Path.of("src/main/java/org/omg/sysml/logic/adapter"); + + private final String COPYRIGHT = """ + /******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ + """; + + /** + * Utility constructor. + */ + private GenerateAdaptersFromEcore() { + } + + /** + * Program entry point. + * + * @param args command-line arguments + * @throws IOException if generation fails + */ + public static void main(String[] args) throws IOException { + new GenerateAdaptersFromEcore().generate(args); + } + + /** + * Generates adapter sources from the provided Ecore model. + * + * @param args command-line arguments + * @throws IOException if file access or generation fails + */ + private void generate(String[] args) throws IOException { + if (args.length != 2) { + throw new IllegalArgumentException( + "Usage: GenerateAdaptersFromEcore "); + } + + var ecoreFile = new File(args[0]).getAbsoluteFile(); + var logicModule = new File(args[1]).getAbsoluteFile().toPath(); + var outputDir = logicModule.resolve(ADAPTER_PACKAGE_PATH); + + var classes = loadAllClasses(ecoreFile); + classes.sort(Comparator.comparing(EClass::getName)); + validateClassNameUniqueness(classes); + + cleanGeneratedFiles(outputDir, ADAPTER_SUFFIX); + Files.createDirectories(outputDir); + write(outputDir.resolve("AbstractSysMLAdapter.java"), abstractAdapterClass()); + write(outputDir.resolve("SysMLLogicAdapterFactory.java"), adapterFactoryClass(classes)); + write(outputDir.resolve("SysMLAdapters.java"), adaptersServiceClass()); + + for (var eClass : classes) { + var className = sanitize(eClass.getName()); + write(outputDir.resolve(className + "Adapter.java"), adapterClass(className, eClass)); + } + } + + /** + * Loads all EClasses from the input Ecore file. + * + * @param ecoreFile Ecore model file + * @return discovered EClasses + */ + private List loadAllClasses(File ecoreFile) { + var resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(ECORE_EXTENSION, new XMIResourceFactoryImpl()); + Resource resource = resourceSet.getResource(URI.createFileURI(ecoreFile.getPath()), true); + + List allClasses = new ArrayList<>(); + for (EObject root : resource.getContents()) { + if (root instanceof EPackage ePackage) { + collectClasses(ePackage, allClasses); + } + } + return allClasses; + } + + /** + * Recursively collects EClasses from an EPackage hierarchy. + * + * @param ePackage package to inspect + * @param target list receiving classes + */ + private void collectClasses(EPackage ePackage, List target) { + for (EClassifier classifier : ePackage.getEClassifiers()) { + if (classifier instanceof EClass eClass) { + target.add(eClass); + } + } + for (EPackage sub : ePackage.getESubpackages()) { + collectClasses(sub, target); + } + } + + /** + * Validates that sanitized class names are unique. + * + * @param classes discovered EClasses + */ + private void validateClassNameUniqueness(List classes) { + Set seenNames = new HashSet<>(); + for (var eClass : classes) { + var className = sanitize(eClass.getName()); + if (!seenNames.add(className)) { + throw new IllegalStateException("Duplicate EClass name found for adapter generation: " + className); + } + } + } + + /** + * Deletes previously generated source files matching a suffix in the output directory. + * + * @param outputDir output directory + * @param suffix file suffix to delete + * @throws IOException if deletion fails + */ + private void cleanGeneratedFiles(Path outputDir, String suffix) throws IOException { + if (!Files.isDirectory(outputDir)) { + return; + } + try (var stream = Files.list(outputDir)) { + for (Path file : stream.toList()) { + var name = file.getFileName().toString(); + if (name.endsWith(suffix)) { + Files.deleteIfExists(file); + } + } + } + } + + /** + * Builds the source code for the abstract adapter base type. + * + * @return Java source content + */ + private String abstractAdapterClass() { + return COPYRIGHT + + "package org.omg.sysml.logic.adapter;\n\n" + + "import java.util.Optional;\n\n" + + "import org.eclipse.emf.common.notify.Notifier;\n" + + "import org.eclipse.emf.common.notify.impl.AdapterImpl;\n\n" + + "/**\n" + + " * Base type for generated SysML element adapters.\n" + + " *\n" + + " * @param adapted SysML element type\n" + + " */\n" + + "public abstract class AbstractSysMLAdapter extends AdapterImpl {\n\n" + + " private final Class adaptedType;\n\n" + + " protected AbstractSysMLAdapter(Class adaptedType) {\n" + + " this.adaptedType = adaptedType;\n" + + " }\n\n" + + " public final Class adaptedType() {\n" + + " return adaptedType;\n" + + " }\n\n" + + " @Override\n" + + " public boolean isAdapterForType(Object type) {\n" + + " return type == adaptedType;\n" + + " }\n\n" + + " @Override\n" + + " public void setTarget(Notifier newTarget) {\n" + + " super.setTarget(newTarget);\n" + + " }\n\n" + + " public final Optional adaptedTarget() {\n" + + " var target = getTarget();\n" + + " if (adaptedType.isInstance(target)) {\n" + + " return Optional.of(adaptedType.cast(target));\n" + + " }\n" + + " return Optional.empty();\n" + + " }\n" + + "}\n"; + } + + /** + * Builds the source code for one generated adapter class. + * + * @param className generated class name + * @param eClass source metaclass + * @return Java source content + */ + private String adapterClass(String className, EClass eClass) { + return COPYRIGHT + + "package org.omg.sysml.logic.adapter;\n\n" + + "import org.omg.sysml.model.sysml." + className + ";\n\n" + + "/**\n" + + " * Generated adapter for {@link " + className + "}.\n" + + " */\n" + + "public class " + className + "Adapter extends AbstractSysMLAdapter<" + className + "> {\n\n" + + " public " + className + "Adapter() {\n" + + " super(" + className + ".class);\n" + + " }\n" + + "}\n"; + } + + /** + * Builds the source code for the generated adapter factory. + * + * @param classes source metaclasses + * @return Java source content + */ + private String adapterFactoryClass(List classes) { + var switchCases = new StringBuilder(); + var createMethods = new StringBuilder(); + for (var eClass : classes) { + var className = sanitize(eClass.getName()); + switchCases.append(" @Override\n") + .append(" public org.eclipse.emf.common.notify.Adapter case") + .append(className) + .append("(org.omg.sysml.model.sysml.") + .append(className) + .append(" object) {\n") + .append(" return create") + .append(className) + .append("Adapter();\n") + .append(" }\n"); + createMethods.append("\n") + .append(" public org.eclipse.emf.common.notify.Adapter create") + .append(className) + .append("Adapter() {\n") + .append(" return new ") + .append(className) + .append("Adapter();\n") + .append(" }\n"); + } + + return COPYRIGHT + + "package org.omg.sysml.logic.adapter;\n\n" + + "import org.eclipse.emf.common.notify.Adapter;\n" + + "import org.eclipse.emf.common.notify.Notifier;\n" + + "import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;\n" + + "import org.eclipse.emf.ecore.EObject;\n" + + "import org.omg.sysml.model.sysml.SysMLPackage;\n" + + "import org.omg.sysml.model.sysml.util.SysMLSwitch;\n\n" + + "/**\n" + + " * Generated adapter factory for SysML logic adapters.\n" + + " */\n" + + "public class SysMLLogicAdapterFactory extends AdapterFactoryImpl {\n\n" + + " private final SysMLSwitch modelSwitch = new SysMLSwitch<>() {\n" + + switchCases + + " @Override\n" + + " public Adapter defaultCase(EObject object) {\n" + + " return null;\n" + + " }\n" + + " };\n\n" + + " @Override\n" + + " public boolean isFactoryForType(Object object) {\n" + + " if (object == SysMLPackage.eINSTANCE) {\n" + + " return true;\n" + + " }\n" + + " if (object instanceof EObject eObject) {\n" + + " return eObject.eClass().getEPackage() == SysMLPackage.eINSTANCE;\n" + + " }\n" + + " return false;\n" + + " }\n\n" + + " @Override\n" + + " public Adapter createAdapter(Notifier target) {\n" + + " if (target instanceof EObject eObject) {\n" + + " return modelSwitch.doSwitch(eObject);\n" + + " }\n" + + " return null;\n" + + " }\n" + + createMethods + + "}\n"; + } + + /** + * Builds the source code for the runtime adapter access service. + * + * @return Java source content + */ + private String adaptersServiceClass() { + return COPYRIGHT + + "package org.omg.sysml.logic.adapter;\n\n" + + "import java.util.Optional;\n\n" + + "import org.eclipse.emf.ecore.EObject;\n\n" + + "/**\n" + + " * Runtime adapter access service for SysML model elements.\n" + + " */\n" + + "public class SysMLAdapters {\n\n" + + " private final SysMLLogicAdapterFactory adapterFactory;\n\n" + + " public SysMLAdapters(SysMLLogicAdapterFactory adapterFactory) {\n" + + " this.adapterFactory = adapterFactory;\n" + + " }\n\n" + + " public > Optional find(EObject element, Class adapterClass) {\n" + + " for (var adapter : element.eAdapters()) {\n" + + " if (adapterClass.isInstance(adapter)) {\n" + + " return Optional.of(adapterClass.cast(adapter));\n" + + " }\n" + + " }\n" + + " return Optional.empty();\n" + + " }\n\n" + + " public > A adapt(EObject element, Class adapterClass) {\n" + + " var existing = find(element, adapterClass);\n" + + " if (existing.isPresent()) {\n" + + " return existing.orElseThrow();\n" + + " }\n" + + "\n" + + " var created = adapterFactory.createAdapter(element);\n" + + " if (created == null || !adapterClass.isInstance(created)) {\n" + + " var createdType = created == null ? \"null\" : created.getClass().getName();\n" + + " throw new IllegalStateException(\n" + + " \"Cannot adapt \" + element.eClass().getName() + \" with \" + adapterClass.getName()\n" + + " + \"; factory produced \" + createdType);\n" + + " }\n" + + "\n" + + " element.eAdapters().add(created);\n" + + " return adapterClass.cast(created);\n" + + " }\n" + + "}\n"; + } + + /** + * Writes generated content to a file using UTF-8. + * + * @param path target file path + * @param content source content + * @throws IOException if write fails + */ + private void write(Path path, String content) throws IOException { + Files.writeString(path, content, StandardCharsets.UTF_8); + } + + /** + * Converts an identifier into a Java-safe token. + * + * @param identifier source identifier + * @return sanitized identifier + */ + private String sanitize(String identifier) { + StringBuilder result = new StringBuilder(identifier.length()); + for (int i = 0; i < identifier.length(); i++) { + char c = identifier.charAt(i); + if (Character.isLetterOrDigit(c) || c == '_') { + result.append(c); + } else { + result.append('_'); + } + } + if (result.isEmpty()) { + return "_"; + } + if (!Character.isJavaIdentifierStart(result.charAt(0))) { + result.insert(0, '_'); + } + return result.toString(); + } +} diff --git a/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateDelegatesFromEcore.java b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateDelegatesFromEcore.java new file mode 100644 index 000000000..943546df6 --- /dev/null +++ b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateDelegatesFromEcore.java @@ -0,0 +1,1828 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.tools; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.regex.Pattern; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +/** + * Generates Java delegate classes for all derived structural features and operations found in a + * SysML Ecore metamodel. + * + *

The generator scans all {@link EClass} instances in the provided {@code .ecore} file and + * creates: + *

    + *
  • setting delegates for each derived {@link EStructuralFeature} declared in UML + * {@code ownedAttribute};
  • + *
  • invocation delegates for each declared {@link EOperation} declared in UML + * {@code ownedOperation}.
  • + *
+ * + *

Generated classes are written to the logic module: + *

    + *
  • {@code org.omg.sysml.logic.delegate.setting}
  • + *
  • {@code org.omg.sysml.logic.delegate.invocation}
  • + *
+ * + *

Invocation and setting delegates are generated from declarations found in the SysML UML source + * model ({@code SysML_xmi.uml}) for each concept. This allows generating subclass delegates even + * when a corresponding member is inherited in Ecore. + * + *

For derived structural features that do not have a derive OCL rule, the generator emits a + * fallback setting implementation from Ecore {@code subsets} and {@code redefines} annotations + * when available. Sources are filtered through safety constraints (for example self-reference, + * derived source recursion risk, type incompatibility) and unsupported sources are documented in + * generated comments. If no safe source remains, a placeholder {@code get(...)} is generated with + * an explicit comment explaining why manual implementation is still required. + * + *

Usage: + *

{@code
+ * java org.omg.sysml.model.tools.GenerateDelegatesFromEcore \
+ *     [path-to-SysML_xmi.uml]
+ * }
+ * + *

Arguments: + *

    + *
  • arg0: absolute or relative path to the {@code .ecore} file;
  • + *
  • arg1: absolute or relative path to the logic module root directory (the directory + * containing {@code src/main/java}).
  • + *
  • arg2 (optional): absolute or relative path to {@code SysML_xmi.uml}. If omitted, the + * generator attempts to resolve it from the repository layout.
  • + *
+ */ +public final class GenerateDelegatesFromEcore { + + private final String ECORE_EXTENSION = "ecore"; + private final DelegateFileSupport delegateFileSupport = new DelegateFileSupport(); + private final UmlDeclarationSupport umlDeclarationSupport = new UmlDeclarationSupport(); + + private final String COPYRIGHT = """ + /******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ + """; + + /** + * Prevents instantiation of this utility class. + */ + private GenerateDelegatesFromEcore() { + } + + /** + * Entry point that generates invocation and setting delegates from the given Ecore/UML inputs. + * + * @param args command-line arguments: {@code [uml-file]} + * @throws Exception if parsing, model loading, or file generation fails + */ + public static void main(String[] args) throws Exception { + new GenerateDelegatesFromEcore().generate(args); + } + + /** + * Generates invocation and setting delegates from the given Ecore/UML inputs. + * + * @param args command-line arguments: {@code [uml-file]} + * @throws Exception if parsing, model loading, or file generation fails + */ + private void generate(String[] args) throws Exception { + if (args.length < 2 || args.length > 3) { + throw new IllegalArgumentException( + "Usage: GenerateDelegatesFromEcore [uml-file]"); + } + + File ecoreFile = new File(args[0]).getAbsoluteFile(); + Path logicModule = new File(args[1]).getAbsoluteFile().toPath(); + File umlFile = args.length == 3 + ? new File(args[2]).getAbsoluteFile() + : umlDeclarationSupport.resolveDefaultUmlFile(ecoreFile).toFile(); + if (!umlFile.isFile()) { + throw new IllegalArgumentException("Cannot locate SysML UML source file: " + umlFile.getAbsolutePath()); + } + + Path invocationDir = logicModule.resolve("src/main/java/org/omg/sysml/logic/delegate/invocation"); + Path settingDir = logicModule.resolve("src/main/java/org/omg/sysml/logic/delegate/setting"); + + delegateFileSupport.cleanDelegateFiles(invocationDir, "_InvocationDelegate.java", "dynamicInvoke"); + delegateFileSupport.cleanDelegateFiles(settingDir, "_SettingDelegate.java", "get"); + Files.createDirectories(settingDir); + Files.createDirectories(invocationDir); + + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(ECORE_EXTENSION, new XMIResourceFactoryImpl()); + Resource resource = resourceSet.getResource(URI.createFileURI(ecoreFile.getPath()), true); + UMLElementDeclarations umlDeclarations = umlDeclarationSupport.parseUmlDeclarations(umlFile.toPath()); + + List allClasses = new ArrayList<>(); + for (EObject root : resource.getContents()) { + if (root instanceof EPackage ePackage) { + collectClasses(ePackage, allClasses); + } + } + + allClasses.sort(Comparator.comparing(EClass::getName)); + + for (EClass eClass : allClasses) { + Set declaredFeatureNames = umlDeclarations.featuresByClass().getOrDefault(eClass.getName(), Set.of()); + List sortedFeatureNames = declaredFeatureNames.stream().sorted().toList(); + for (String featureName : sortedFeatureNames) { + EStructuralFeature feature = resolveFeatureForDeclaredName(eClass, featureName); + if (feature == null) { + throw new IllegalStateException( + "No EStructuralFeature found for UML declaration: " + eClass.getName() + "." + featureName); + } + if (!feature.isDerived()) { + continue; + } + String className = classToken(eClass) + "_" + featureToken(feature) + "_SettingDelegate"; + DeriveRule deriveRule = deriveRuleForFeature(umlDeclarations, eClass, feature); + String featureComment = umlDeclarations.attributeCommentsByClass() + .getOrDefault(eClass.getName(), Map.of()) + .get(feature.getName()); + Path output = settingDir.resolve(className + ".java"); + delegateFileSupport.write(output, settingClass(className, eClass, feature, deriveRule, featureComment), "get"); + } + + Set declaredOperationNames = umlDeclarations.operationsByClass().getOrDefault(eClass.getName(), Set.of()); + if (declaredOperationNames.isEmpty()) { + continue; + } + + List sortedOperationNames = declaredOperationNames.stream().sorted().toList(); + for (String operationName : sortedOperationNames) { + EOperation operation = resolveOperationForDeclaredName(eClass, operationName); + if (operation == null) { + throw new IllegalStateException( + "No EOperation found for UML declaration: " + eClass.getName() + "::" + operationName); + } + String className = classToken(eClass) + "_" + operationToken(operation) + "_InvocationDelegate"; + DeriveRule deriveRule = umlDeclarations + .deriveRulesByClass() + .getOrDefault(eClass.getName(), Map.of()) + .get(operation.getName()); + Path output = invocationDir.resolve(className + ".java"); + delegateFileSupport.write(output, invocationClass(className, eClass, operation, deriveRule), "dynamicInvoke"); + } + } + } + + /** + * Resolves the derive rule for a structural feature. + * + *

Primary lookup uses exact member-name mapping. As a fallback, this method accepts derive + * rule names that still belong to the same class but use an abbreviated class segment, as long + * as the rule name ends with the feature name (for example + * {@code deriveAssignmentUsageTargetArgument} for + * {@code AssignmentActionUsage.targetArgument}). + * + * @param umlDeclarations parsed UML declarations + * @param eClass owning class + * @param feature structural feature + * @return matching derive rule, or {@code null} when none is found + */ + private DeriveRule deriveRuleForFeature(UMLElementDeclarations umlDeclarations, EClass eClass, EStructuralFeature feature) { + var classRules = umlDeclarations.deriveRulesByClass().getOrDefault(eClass.getName(), Map.of()); + var directMatch = classRules.get(feature.getName()); + if (directMatch != null) { + return directMatch; + } + + var suffixMatch = deriveRuleWithMatchingSuffix(classRules, feature.getName()); + if (suffixMatch != null) { + return suffixMatch; + } + + for (var superType : eClass.getEAllSuperTypes()) { + var superRules = umlDeclarations.deriveRulesByClass().getOrDefault(superType.getName(), Map.of()); + var superDirect = superRules.get(feature.getName()); + if (superDirect != null) { + return superDirect; + } + var superSuffix = deriveRuleWithMatchingSuffix(superRules, feature.getName()); + if (superSuffix != null) { + return superSuffix; + } + } + return null; + } + + /** + * Finds a derive rule by matching the rule name suffix with the target feature name. + * + * @param classRules derive rules for one class + * @param featureName target feature name + * @return matching rule, or {@code null} + */ + private DeriveRule deriveRuleWithMatchingSuffix(Map classRules, String featureName) { + var expectedSuffix = upperCamel(featureName); + for (var candidate : classRules.values()) { + if (candidate.ruleName() != null && candidate.ruleName().endsWith(expectedSuffix)) { + return candidate; + } + } + return null; + } + + /** + * Converts a lower camel-case identifier to upper camel-case. + * + * @param text identifier to convert + * @return converted identifier + */ + private String upperCamel(String text) { + if (text == null || text.isBlank()) { + return ""; + } + return Character.toUpperCase(text.charAt(0)) + text.substring(1); + } + + /** + * Recursively collects all {@link EClass} instances from a package hierarchy. + * + * @param ePackage package to scan + * @param target mutable list receiving discovered classes + */ + private void collectClasses(EPackage ePackage, List target) { + for (EClassifier classifier : ePackage.getEClassifiers()) { + if (classifier instanceof EClass eClass) { + target.add(eClass); + } + } + for (EPackage sub : ePackage.getESubpackages()) { + collectClasses(sub, target); + } + } + + /** + * Builds the Java source code for one generated setting delegate class. + * + * @param className generated Java class name + * @param eClass owning metaclass + * @param feature target derived feature + * @param deriveRule optional derive rule carrying OCL text + * @return full Java source content + */ + private String settingClass( + String className, + EClass eClass, + EStructuralFeature feature, + DeriveRule deriveRule, + String featureComment) { + var settingMethod = resolveSettingMethod(eClass, feature, deriveRule, featureComment); + String imports = "import org.eclipse.emf.ecore.EStructuralFeature;\n" + settingMethod.imports(); + String deriveMethod = settingMethod.method(); + return COPYRIGHT + + "package org.omg.sysml.logic.delegate.setting;\n\n" + + imports + + "import org.omg.sysml.logic.delegate.AbstractSettingDelegate;\n\n" + + "/**\n" + + " * Generated setting delegate for {@code " + eClass.getName() + "." + feature.getName() + "}.\n" + + " */\n" + + "public class " + className + " extends AbstractSettingDelegate {\n\n" + + " public " + className + "(EStructuralFeature feature) {\n" + + " super(feature);\n" + + " }\n\n" + + " @Override\n" + + " protected String delegateId() {\n" + + " return \"" + eClass.getName() + "." + feature.getName() + "\";\n" + + " }\n" + + deriveMethod + + "}\n"; + } + + /** + * Resolves the generated {@code get(...)} method and corresponding imports for a setting + * delegate. + * + * @param eClass owning metaclass + * @param feature target derived feature + * @param deriveRule optional OCL derive rule + * @param featureComment optional UML ownedAttribute comment body + * @return generated method descriptor + */ + private SettingMethodSpec resolveSettingMethod( + EClass eClass, + EStructuralFeature feature, + DeriveRule deriveRule, + String featureComment) { + if (deriveRule != null) { + return new SettingMethodSpec(importsForSettingMethod(false, false, Set.of()), oclSettingMethod(deriveRule)); + } + + var subsetsMethod = subsetsMethod(eClass, feature); + if (subsetsMethod.isPresent()) { + return new SettingMethodSpec( + importsForSettingMethod(true, feature.isMany(), typeImportsForComposedSetting(feature)), + subsetsMethod.get()); + } + var subsetsAnnotation = feature.getEAnnotation("subsets"); + if (subsetsAnnotation != null) { + var narrativeMethod = narrativeCommentMethod(eClass, feature, featureComment); + if (narrativeMethod.isPresent()) { + return new SettingMethodSpec( + importsForSettingMethod(true, feature.isMany(), typeImportsForComposedSetting(feature)), + narrativeMethod.get()); + } + return new SettingMethodSpec( + importsForSettingMethod(false, false, Set.of()), + unsupportedSubsetsMethod(eClass, feature, subsetsAnnotation)); + } + + var redefinesMethod = redefinesMethod(eClass, feature); + if (redefinesMethod.isPresent()) { + return new SettingMethodSpec( + importsForSettingMethod(true, feature.isMany(), typeImportsForComposedSetting(feature)), + redefinesMethod.get()); + } + var redefinesAnnotation = feature.getEAnnotation("redefines"); + if (redefinesAnnotation != null) { + var narrativeMethod = narrativeCommentMethod(eClass, feature, featureComment); + if (narrativeMethod.isPresent()) { + return new SettingMethodSpec( + importsForSettingMethod(true, feature.isMany(), typeImportsForComposedSetting(feature)), + narrativeMethod.get()); + } + return new SettingMethodSpec( + importsForSettingMethod(false, false, Set.of()), + unsupportedRedefinesMethod(eClass, feature, redefinesAnnotation)); + } + + var narrativeMethod = narrativeCommentMethod(eClass, feature, featureComment); + if (narrativeMethod.isPresent()) { + return new SettingMethodSpec( + importsForSettingMethod(true, feature.isMany(), typeImportsForComposedSetting(feature)), + narrativeMethod.get()); + } + + return new SettingMethodSpec(importsForSettingMethod(false, false, Set.of()), unsupportedDefaultMethod(feature)); + } + + /** + * Builds a generated setting body by inferring source features from the UML ownedAttribute + * natural-language comment. + * + * @param eClass owning metaclass + * @param feature derived feature being generated + * @param featureComment UML comment body text attached to the ownedAttribute + * @return generated method source when one or more safe source candidates were inferred + */ + private Optional narrativeCommentMethod(EClass eClass, EStructuralFeature feature, String featureComment) { + if (featureComment == null || featureComment.isBlank()) { + return Optional.empty(); + } + var sources = inferredCommentSources(eClass, feature, featureComment); + if (sources.isEmpty()) { + return Optional.empty(); + } + return Optional.of(composedSettingMethod(feature, sources, narrativeComment(feature, sources, featureComment))); + } + + /** + * Infers source features mentioned in a UML natural-language ownedAttribute comment. + * + * @param eClass owning metaclass + * @param feature target derived feature + * @param featureComment UML comment body text + * @return inferred source features in usage order + */ + private List inferredCommentSources( + EClass eClass, + EStructuralFeature feature, + String featureComment) { + var normalizedComment = normalizeCommentBody(featureComment); + boolean typeDrivenComment = normalizedComment.contains(" type ") || normalizedComment.contains(" types "); + var scoredCandidates = new ArrayList(); + for (var candidate : eClass.getEAllStructuralFeatures()) { + if (candidate == feature) { + continue; + } + if (typeDrivenComment && !"type".equals(candidate.getName())) { + continue; + } + if (candidate.isDerived() && isDirectRedefinesSource(feature, candidate)) { + continue; + } + if (!hasPotentiallyCompatibleType(feature, candidate)) { + continue; + } + if (formsDirectSourceCycle(feature, candidate)) { + continue; + } + int mentionIndex = mentionIndex(normalizedComment, candidate.getName()); + if (mentionIndex < 0) { + continue; + } + scoredCandidates.add(new CommentFeatureCandidate(candidate, mentionIndex)); + } + + if (scoredCandidates.isEmpty()) { + var fallbackTypeFeature = fallbackTypeSource(eClass, feature, normalizedComment); + fallbackTypeFeature.ifPresent(source -> scoredCandidates.add(new CommentFeatureCandidate(source, Integer.MAX_VALUE))); + } + + scoredCandidates.sort(Comparator + .comparingInt(CommentFeatureCandidate::mentionIndex) + .thenComparing(candidate -> candidate.feature().isDerived()) + .thenComparing(candidate -> candidate.feature().getName())); + var unique = new LinkedHashSet(); + for (var candidate : scoredCandidates) { + unique.add(candidate.feature()); + } + return new ArrayList<>(unique); + } + + /** + * Returns a {@code type} source fallback when the comment indicates type-based semantics. + * + * @param eClass owning metaclass + * @param feature target derived feature + * @param normalizedComment normalized lowercase comment body + * @return resolved {@code type} source feature, when applicable + */ + private Optional fallbackTypeSource( + EClass eClass, + EStructuralFeature feature, + String normalizedComment) { + if (!normalizedComment.contains(" type ") && !normalizedComment.contains(" types ")) { + return Optional.empty(); + } + for (var candidate : eClass.getEAllStructuralFeatures()) { + if (!"type".equals(candidate.getName())) { + continue; + } + if (!hasPotentiallyCompatibleType(feature, candidate)) { + continue; + } + if (formsDirectSourceCycle(feature, candidate)) { + continue; + } + return Optional.of(candidate); + } + return Optional.empty(); + } + + /** + * Formats a method-local comment for natural-language fallback generation. + * + * @param feature target derived feature being generated + * @param inferredSources inferred source features + * @param featureComment original UML ownedAttribute comment body + * @return formatted Java block comment + */ + private String narrativeComment( + EStructuralFeature feature, + List inferredSources, + String featureComment) { + var sb = new StringBuilder(); + sb.append(" /*\n"); + sb.append(" * inferred fallback for ") + .append(feature.getEContainingClass().getName()) + .append('.') + .append(feature.getName()) + .append('\n'); + for (var source : inferredSources) { + sb.append(" * inferred source ") + .append(source.getEContainingClass().getName()) + .append('.') + .append(source.getName()) + .append('\n'); + } + for (String line : cleanedCommentLines(featureComment)) { + sb.append(" * ").append(line).append('\n'); + } + sb.append(" */\n"); + return sb.toString(); + } + + /** + * Normalizes a UML comment body for case-insensitive feature-name matching. + * + * @param featureComment raw UML comment body text + * @return normalized body text with collapsed spaces and HTML removed + */ + private String normalizeCommentBody(String featureComment) { + return " " + stripHtmlTags(featureComment).toLowerCase().replaceAll("\\s+", " ").trim() + " "; + } + + /** + * Produces cleaned display lines from a UML comment body. + * + * @param featureComment raw UML comment body + * @return non-empty display lines + */ + private List cleanedCommentLines(String featureComment) { + var lines = stripHtmlTags(featureComment).replace("\r\n", "\n").replace('\r', '\n').split("\n"); + var cleaned = new ArrayList(); + for (var line : lines) { + var value = line.strip(); + if (!value.isEmpty()) { + cleaned.add(value); + } + } + return cleaned; + } + + /** + * Removes HTML-like tags from UML documentation text. + * + * @param text raw text possibly containing escaped HTML tags + * @return text without tags + */ + private String stripHtmlTags(String text) { + return text + .replace("<", "<") + .replace(">", ">") + .replace("&", "&") + .replaceAll("<[^>]+>", " "); + } + + /** + * Returns the first mention index of a feature name in a normalized comment. + * + * @param normalizedComment normalized lowercase comment body + * @param featureName structural feature name + * @return first match index, or {@code -1} when absent + */ + private int mentionIndex(String normalizedComment, String featureName) { + var singularPattern = Pattern.compile("\\b" + Pattern.quote(featureName.toLowerCase()) + "\\b"); + var singularMatcher = singularPattern.matcher(normalizedComment); + int singular = singularMatcher.find() ? singularMatcher.start() : -1; + + var pluralPattern = Pattern.compile("\\b" + Pattern.quote(pluralize(featureName.toLowerCase())) + "\\b"); + var pluralMatcher = pluralPattern.matcher(normalizedComment); + int plural = pluralMatcher.find() ? pluralMatcher.start() : -1; + + if (singular < 0) { + return plural; + } + if (plural < 0) { + return singular; + } + return Math.min(singular, plural); + } + + /** + * Builds a simple plural form for feature-name token matching. + * + * @param token singular token + * @return plural token + */ + private String pluralize(String token) { + if (token.endsWith("y") && token.length() > 1) { + return token.substring(0, token.length() - 1) + "ies"; + } + return token + "s"; + } + + /** + * Returns whether a source feature directly references the target in subsets/redefines metadata. + * + * @param targetFeature target derived feature + * @param sourceFeature source feature candidate + * @return {@code true} when using this source would form a direct feedback cycle + */ + private boolean formsDirectSourceCycle(EStructuralFeature targetFeature, EStructuralFeature sourceFeature) { + return annotationReferencesFeature(sourceFeature.getEAnnotation("subsets"), targetFeature) + || annotationReferencesFeature(sourceFeature.getEAnnotation("redefines"), targetFeature); + } + + /** + * Returns whether a candidate is explicitly listed as a direct {@code redefines} source for a + * target feature. + * + * @param targetFeature target derived feature + * @param sourceFeature source candidate + * @return {@code true} when the target directly redefines the source + */ + private boolean isDirectRedefinesSource(EStructuralFeature targetFeature, EStructuralFeature sourceFeature) { + var redefines = targetFeature.getEAnnotation("redefines"); + if (redefines == null) { + return false; + } + for (var reference : referencedStructuralFeatures(targetFeature.getEContainingClass(), redefines)) { + if (reference == sourceFeature) { + return true; + } + } + return false; + } + + /** + * Checks whether an annotation references a specific structural feature. + * + * @param annotation source annotation + * @param targetFeature target feature + * @return {@code true} when the annotation references the target feature + */ + private boolean annotationReferencesFeature(EAnnotation annotation, EStructuralFeature targetFeature) { + if (annotation == null) { + return false; + } + for (EObject reference : annotation.getReferences()) { + if (reference == targetFeature) { + return true; + } + } + return false; + } + + /** + * Builds import lines required for one generated setting method. + * + * @param needsSysMLPackage whether the method body references {@code SysMLPackage} + * @param needsBasicEList whether the method body references {@code BasicEList} + * @return import block, including trailing newline when non-empty + */ + private String importsForSettingMethod( + boolean needsSysMLPackage, + boolean needsBasicEList, + Set extraImports) { + var allImports = new LinkedHashSet(); + allImports.add("org.eclipse.emf.ecore.InternalEObject"); + if (needsSysMLPackage) { + allImports.add("org.omg.sysml.model.sysml.SysMLPackage"); + } + if (needsBasicEList) { + allImports.add("org.eclipse.emf.common.util.BasicEList"); + } + allImports.addAll(extraImports); + var imports = new StringBuilder(); + for (var importName : allImports) { + imports.append("import ").append(importName).append(";\n"); + } + return imports.toString(); + } + + /** + * Returns additional Java imports required for composed setting generation for one feature. + * + * @param feature target derived feature + * @return set of required type imports + */ + private Set typeImportsForComposedSetting(EStructuralFeature feature) { + var typeReference = boxedInstanceType(feature); + if (typeReference.importFqn() == null) { + return Set.of(); + } + return Set.of(typeReference.importFqn()); + } + + /** + * Builds the generated {@code get(...)} method when an OCL derive rule exists. + * + * @param deriveRule derive rule carrying OCL body + * @return generated method source + */ + private String oclSettingMethod(DeriveRule deriveRule) { + return "\n" + + " @Override\n" + + " protected Object get(InternalEObject owner, boolean resolve, boolean coreType) {\n" + + oclComment(deriveRule) + + " return super.get(owner, resolve, coreType);\n" + + " }\n"; + } + + /** + * Builds a generated placeholder method when no derive/subsets/redefines source can be found. + * + * @param feature derived feature being generated + * @return generated {@code get(...)} method source with explanatory comments + */ + private String unsupportedDefaultMethod(EStructuralFeature feature) { + StringBuilder method = new StringBuilder(); + method.append('\n') + .append(" @Override\n") + .append(" protected Object get(InternalEObject owner, boolean resolve, boolean coreType) {\n") + .append(" /*\n") + .append(" * fallback not generated from derive/subsets/redefines metadata for ") + .append(feature.getEContainingClass().getName()) + .append('.') + .append(feature.getName()) + .append('\n') + .append(" * TODO manual implementation: provide explicit semantics for this derived feature.\n") + .append(" */\n") + .append(" return super.get(owner, resolve, coreType);\n") + .append(" }\n"); + return method.toString(); + } + + /** + * Builds a generated setting body from the {@code redefines} annotation when no derive rule is + * declared in UML. + * + * @param eClass owning metaclass + * @param feature derived feature being generated + * @return generated {@code get(...)} method source, when applicable + */ + private Optional redefinesMethod(EClass eClass, EStructuralFeature feature) { + EAnnotation redefinesAnnotation = feature.getEAnnotation("redefines"); + if (redefinesAnnotation == null) { + return Optional.empty(); + } + + var allSources = new ArrayList(); + allSources.addAll(referencedStructuralFeatures(eClass, redefinesAnnotation)); + var redefineSources = new ArrayList(); + var unsupportedSources = new ArrayList(); + for (EStructuralFeature redefineSource : allSources) { + var expandedSources = expandDerivedSourceCandidates( + feature, redefineSource, new LinkedHashSet<>()); + if (expandedSources.isEmpty()) { + unsupportedSources.add(redefineSource); + continue; + } + redefineSources.addAll(expandedSources); + } + if (redefineSources.isEmpty()) { + return Optional.empty(); + } + + redefineSources = new ArrayList<>(new LinkedHashSet<>(redefineSources)); + return Optional.of(composedSettingMethod( + feature, + redefineSources, + redefinesComment(feature, redefineSources, unsupportedSources, allSources))); + } + + /** + * Expands one source candidate to safe terminal sources by following redefines/subsets chains + * when intermediate features are derived. + * + * @param targetFeature target derived feature being generated + * @param sourceCandidate source feature candidate + * @param visited recursion guard set + * @return compatible source candidates to use in fallback generation + */ + private List expandDerivedSourceCandidates( + EStructuralFeature targetFeature, + EStructuralFeature sourceCandidate, + Set visited) { + if (sourceCandidate == targetFeature) { + return List.of(); + } + if (!visited.add(sourceCandidate)) { + return List.of(); + } + if (!sourceCandidate.isDerived()) { + if (hasPotentiallyCompatibleType(targetFeature, sourceCandidate) + && !formsDirectSourceCycle(targetFeature, sourceCandidate)) { + return List.of(sourceCandidate); + } + return List.of(); + } + + if (!supportsDerivedRedefinesSource(targetFeature, sourceCandidate)) { + return List.of(); + } + + var resolved = new LinkedHashSet(); + var redefines = sourceCandidate.getEAnnotation("redefines"); + if (redefines != null) { + for (var nested : referencedStructuralFeatures(sourceCandidate.getEContainingClass(), redefines)) { + resolved.addAll(expandDerivedSourceCandidates(targetFeature, nested, new LinkedHashSet<>(visited))); + } + } + var subsets = sourceCandidate.getEAnnotation("subsets"); + if (subsets != null) { + for (var nested : referencedStructuralFeatures(sourceCandidate.getEContainingClass(), subsets)) { + resolved.addAll(expandDerivedSourceCandidates(targetFeature, nested, new LinkedHashSet<>(visited))); + } + } + if (resolved.isEmpty() + && hasPotentiallyCompatibleType(targetFeature, sourceCandidate) + && !formsDirectSourceCycle(targetFeature, sourceCandidate)) { + resolved.add(sourceCandidate); + } + return new ArrayList<>(resolved); + } + + /** + * Returns whether a derived redefines source is safe enough for automatic fallback generation. + * + * @param targetFeature target derived feature being generated + * @param redefineSource derived redefines source under evaluation + * @return {@code true} when the source can be auto-generated safely + */ + private boolean supportsDerivedRedefinesSource( + EStructuralFeature targetFeature, + EStructuralFeature redefineSource) { + if (formsDirectSourceCycle(targetFeature, redefineSource)) { + return false; + } + return redefineSource != targetFeature; + } + + /** + * Builds a generated setting body from the {@code subsets} annotation when no derive rule is + * declared in UML. + * + * @param eClass owning metaclass + * @param feature derived feature being generated + * @return generated {@code get(...)} method source, when applicable + */ + private Optional subsetsMethod(EClass eClass, EStructuralFeature feature) { + EAnnotation subsetsAnnotation = feature.getEAnnotation("subsets"); + if (subsetsAnnotation == null) { + return Optional.empty(); + } + var subsetSources = new ArrayList(); + var unsupportedSources = new ArrayList(); + var allSources = new ArrayList(); + allSources.addAll(referencedStructuralFeatures(eClass, subsetsAnnotation)); + + for (EStructuralFeature subsetSource : allSources) { + if (subsetSource == feature) { + unsupportedSources.add(subsetSource); + continue; + } + if (subsetSource.isDerived() && !supportsDerivedSubsetSource(feature, subsetSource)) { + unsupportedSources.add(subsetSource); + continue; + } + if (!hasPotentiallyCompatibleType(feature, subsetSource)) { + unsupportedSources.add(subsetSource); + continue; + } + subsetSources.add(subsetSource); + } + if (subsetSources.isEmpty()) { + return Optional.empty(); + } + + return Optional.of(composedSettingMethod( + feature, + subsetSources, + subsetsComment(feature, subsetSources, unsupportedSources, allSources))); + } + + /** + * Returns whether a derived subset source is safe enough for automatic fallback generation. + * + *

Supported shape: no direct subsets back-reference to the target feature. + * + * @param targetFeature target derived feature being generated + * @param subsetSource derived subset source under evaluation + * @return {@code true} when this derived subset source can be auto-generated safely + */ + private boolean supportsDerivedSubsetSource( + EStructuralFeature targetFeature, + EStructuralFeature subsetSource) { + if (subsetSource.getEContainingClass() == targetFeature.getEContainingClass()) { + return supportsSameClassDerivedSubsetSource(targetFeature, subsetSource); + } + EAnnotation sourceSubsets = subsetSource.getEAnnotation("subsets"); + if (sourceSubsets == null) { + return true; + } + for (EObject sourceReference : sourceSubsets.getReferences()) { + if (sourceReference == targetFeature) { + return false; + } + } + return true; + } + + /** + * Returns whether a same-class derived subset source can be validated safely. + * + *

The only supported shape is a single-valued target and source where the target has an + * opposite reference that can confirm membership of the owner. + * + * @param targetFeature target derived feature being generated + * @param subsetSource same-class derived subset source under evaluation + * @return {@code true} when guarded generation is supported + */ + private boolean supportsSameClassDerivedSubsetSource( + EStructuralFeature targetFeature, + EStructuralFeature subsetSource) { + if (targetFeature.isMany() || subsetSource.isMany()) { + return false; + } + String sourceName = subsetSource.getName(); + String targetName = targetFeature.getName(); + String sourceSuffix = Character.toUpperCase(sourceName.charAt(0)) + sourceName.substring(1); + if (!sourceName.startsWith("owning") || !targetName.endsWith(sourceSuffix)) { + return false; + } + return oppositeReference(targetFeature) != null; + } + + /** + * Builds a generated placeholder method for subsets annotations that are not auto-translated. + * + * @param feature derived feature being generated + * @param subsetsAnnotation subsets annotation attached to the feature + * @return generated {@code get(...)} method source with explanatory comments + */ + private String unsupportedSubsetsMethod(EClass eClass, EStructuralFeature feature, EAnnotation subsetsAnnotation) { + return unsupportedMethod(unsupportedSubsetsComment(eClass, feature, subsetsAnnotation)); + } + + /** + * Builds a generated placeholder method for redefines annotations that are not auto-translated. + * + * @param feature derived feature being generated + * @param redefinesAnnotation redefines annotation attached to the feature + * @return generated {@code get(...)} method source with explanatory comments + */ + private String unsupportedRedefinesMethod(EClass eClass, EStructuralFeature feature, EAnnotation redefinesAnnotation) { + return unsupportedMethod(unsupportedRedefinesComment(eClass, feature, redefinesAnnotation)); + } + + /** + * Builds a generated setting method using a source list and a precomputed comment block. + * + * @param feature target derived feature + * @param sources compatible source features + * @param commentBlock method-local explanatory comment + * @return generated method source + */ + private String composedSettingMethod( + EStructuralFeature feature, + List sources, + String commentBlock) { + var targetType = boxedInstanceType(feature); + String targetTypeName = targetType.simpleName(); + StringBuilder method = new StringBuilder(); + method.append('\n') + .append(" @Override\n") + .append(" protected Object get(InternalEObject owner, boolean resolve, boolean coreType) {\n") + .append(commentBlock); + if (feature.isMany()) { + method.append(" var values = new BasicEList();\n"); + for (EStructuralFeature source : sources) { + method.append(appendManySourceContribution(source, targetTypeName)); + } + method.append(" Object resolvedValue = values;\n") + .append(" if (values.isEmpty()) {\n") + .append(" resolvedValue = super.get(owner, resolve, coreType);\n") + .append(" }\n"); + } else { + method.append(" Object resolvedValue = null;\n"); + for (int i = 0; i < sources.size(); i++) { + method.append(appendSingleSourceContribution( + feature, + sources.get(i), + targetTypeName, + isObjectType(targetTypeName), + i > 0, + i, + sources.size())); + } + method.append(" if (resolvedValue == null) {\n") + .append(" resolvedValue = super.get(owner, resolve, coreType);\n") + .append(" }\n"); + } + method.append(" return resolvedValue;\n") + .append(" }\n"); + return method.toString(); + } + + /** + * Builds a generated placeholder method that only delegates to the base fallback. + * + * @param commentBlock explanatory comment to place at the top of the method body + * @return generated method source + */ + private String unsupportedMethod(String commentBlock) { + StringBuilder method = new StringBuilder(); + method.append('\n') + .append(" @Override\n") + .append(" protected Object get(InternalEObject owner, boolean resolve, boolean coreType) {\n") + .append(commentBlock) + .append(" var result = super.get(owner, resolve, coreType);\n") + .append(" return result;\n") + .append(" }\n"); + return method.toString(); + } + + /** + * Formats a method-local comment explaining why subsets fallback was not auto-generated. + * + * @param feature derived feature being generated + * @param subsetsAnnotation subsets annotation attached to the feature + * @return formatted Java block comment + */ + private String unsupportedSubsetsComment(EClass eClass, EStructuralFeature feature, EAnnotation subsetsAnnotation) { + StringBuilder sb = new StringBuilder(); + var allSources = referencedStructuralFeatures(eClass, subsetsAnnotation); + sb.append(" /*\n"); + sb.append(" * subsets fallback not generated for ") + .append(feature.getEContainingClass().getName()) + .append('.') + .append(feature.getName()) + .append('\n'); + for (EStructuralFeature subsetSource : allSources) { + sb.append(" * subsets ") + .append(subsetSource.getEContainingClass().getName()) + .append('.') + .append(subsetSource.getName()); + var reasons = unsupportedReasons(feature, subsetSource, allSources); + if (!reasons.isEmpty()) { + sb.append(" (").append(String.join(", ", reasons)).append(")"); + } + sb.append('\n'); + } + sb.append(" * TODO manual implementation: translate the semantics for this derived feature\n"); + sb.append(" * while handling recursive paths, type filtering, and/or cardinality differences.\n"); + sb.append(" */\n"); + return sb.toString(); + } + + /** + * Returns human-readable reasons why a subset source is not part of safe auto-generation. + * + * @param feature target derived feature + * @param subsetSource subset source candidate + * @return list of rejection reasons + */ + private List unsupportedReasons( + EStructuralFeature feature, + EStructuralFeature subsetSource, + List allSources) { + var reasons = new ArrayList(); + if (subsetSource == feature) { + reasons.add("self-reference"); + } + if (subsetSource.isDerived() + && !supportsDerivedSubsetSource(feature, subsetSource)) { + reasons.add("derived source"); + } + if (subsetSource.isMany() != feature.isMany()) { + reasons.add("cardinality mismatch"); + } + return reasons; + } + + /** + * Formats a method-local comment for subsets fallback generation. + * + * @param feature derived feature being generated + * @param subsetSources subset source features declared by annotation + * @return formatted Java block comment + */ + private String subsetsComment( + EStructuralFeature feature, + List subsetSources, + List unsupportedSubsetSources, + List allSources) { + StringBuilder sb = new StringBuilder(); + sb.append(" /*\n"); + sb.append(" * subsets fallback for ").append(feature.getEContainingClass().getName()).append('.') + .append(feature.getName()).append('\n'); + for (EStructuralFeature subsetSource : subsetSources) { + sb.append(" * subsets ") + .append(subsetSource.getEContainingClass().getName()) + .append('.') + .append(subsetSource.getName()) + .append('\n'); + } + for (EStructuralFeature unsupportedSource : unsupportedSubsetSources) { + sb.append(" * subsets ") + .append(unsupportedSource.getEContainingClass().getName()) + .append('.') + .append(unsupportedSource.getName()) + .append(" (ignored: ") + .append(String.join(", ", unsupportedReasons(feature, unsupportedSource, allSources))) + .append(")\n"); + } + sb.append(" */\n"); + return sb.toString(); + } + + /** + * Formats a method-local comment for redefines fallback generation. + * + * @param feature derived feature being generated + * @param redefineSources redefine source features declared by annotation + * @return formatted Java block comment + */ + private String redefinesComment( + EStructuralFeature feature, + List redefineSources, + List unsupportedRedefineSources, + List allSources) { + StringBuilder sb = new StringBuilder(); + sb.append(" /*\n"); + sb.append(" * redefines fallback for ").append(feature.getEContainingClass().getName()).append('.') + .append(feature.getName()).append('\n'); + for (EStructuralFeature redefineSource : redefineSources) { + sb.append(" * redefines ") + .append(redefineSource.getEContainingClass().getName()) + .append('.') + .append(redefineSource.getName()) + .append('\n'); + } + for (EStructuralFeature unsupportedSource : unsupportedRedefineSources) { + sb.append(" * redefines ") + .append(unsupportedSource.getEContainingClass().getName()) + .append('.') + .append(unsupportedSource.getName()) + .append(" (ignored: ") + .append(String.join(", ", unsupportedRedefinesReasons(feature, unsupportedSource, allSources))) + .append(")\n"); + } + sb.append(" */\n"); + return sb.toString(); + } + + /** + * Formats a method-local comment explaining why redefines fallback was not auto-generated. + * + * @param feature derived feature being generated + * @param redefinesAnnotation redefines annotation attached to the feature + * @return formatted Java block comment + */ + private String unsupportedRedefinesComment(EClass eClass, EStructuralFeature feature, EAnnotation redefinesAnnotation) { + StringBuilder sb = new StringBuilder(); + var allSources = referencedStructuralFeatures(eClass, redefinesAnnotation); + sb.append(" /*\n"); + sb.append(" * redefines fallback not generated for ") + .append(feature.getEContainingClass().getName()) + .append('.') + .append(feature.getName()) + .append('\n'); + for (EStructuralFeature redefineSource : allSources) { + sb.append(" * redefines ") + .append(redefineSource.getEContainingClass().getName()) + .append('.') + .append(redefineSource.getName()); + var reasons = unsupportedRedefinesReasons(feature, redefineSource, allSources); + if (!reasons.isEmpty()) { + sb.append(" (").append(String.join(", ", reasons)).append(")"); + } + sb.append('\n'); + } + sb.append(" * TODO manual implementation: translate the semantics for this derived feature\n"); + sb.append(" * while handling recursive paths and/or multi-step ownership traversal.\n"); + sb.append(" */\n"); + return sb.toString(); + } + + /** + * Returns human-readable reasons why a redefines source is not part of safe auto-generation. + * + * @param feature target derived feature + * @param redefineSource redefines source candidate + * @return list of rejection reasons + */ + private List unsupportedRedefinesReasons( + EStructuralFeature feature, + EStructuralFeature redefineSource, + List allSources) { + var reasons = new ArrayList(); + if (redefineSource == feature) { + reasons.add("self-reference"); + } + if (redefineSource.isDerived() && !supportsDerivedRedefinesSource(feature, redefineSource)) { + reasons.add("derived source"); + } + if (redefineSource.isMany() != feature.isMany()) { + reasons.add("cardinality mismatch"); + } + if (!hasPotentiallyCompatibleType(feature, redefineSource)) { + reasons.add("type mismatch"); + } + return reasons; + } + + /** + * Extracts {@link EStructuralFeature} references from an annotation. + * + * @param annotation annotation that may contain structural feature references + * @return referenced structural features in declaration order + */ + private List referencedStructuralFeatures(EClass contextClass, EAnnotation annotation) { + var referencedFeatures = new LinkedHashSet(); + for (EObject reference : annotation.getReferences()) { + if (reference instanceof EStructuralFeature structuralFeature) { + referencedFeatures.add(structuralFeature); + } + } + if (!referencedFeatures.isEmpty()) { + return new ArrayList<>(referencedFeatures); + } + + for (String value : annotation.getDetails().values()) { + for (String token : value.split("\\s+")) { + EStructuralFeature resolved = resolveStructuralFeatureToken(contextClass, token); + if (resolved != null) { + referencedFeatures.add(resolved); + } + } + } + return new ArrayList<>(referencedFeatures); + } + + /** + * Resolves a textual feature token (for example {@code #//Class/feature}) into an Ecore + * structural feature. + * + * @param contextClass class used to resolve package hierarchy + * @param token textual token from annotation details + * @return resolved structural feature, or {@code null} when unresolved + */ + private EStructuralFeature resolveStructuralFeatureToken(EClass contextClass, String token) { + if (token == null || !token.startsWith("#//")) { + return null; + } + int slash = token.indexOf('/', 3); + if (slash < 0 || slash == token.length() - 1) { + return null; + } + String className = token.substring(3, slash); + String featureName = token.substring(slash + 1); + EClass targetClass = resolveEClass(contextClass.getEPackage(), className); + if (targetClass == null) { + return null; + } + for (EStructuralFeature candidate : targetClass.getEAllStructuralFeatures()) { + if (featureName.equals(candidate.getName())) { + return candidate; + } + } + return null; + } + + /** + * Resolves one class by name inside a package tree. + * + * @param rootPackage package root + * @param className target class name + * @return resolved class, or {@code null} when absent + */ + private EClass resolveEClass(EPackage rootPackage, String className) { + EPackage current = rootPackage; + while (current.getESuperPackage() != null) { + current = current.getESuperPackage(); + } + return resolveEClassInSubtree(current, className); + } + + /** + * Recursively resolves one class by name in a package subtree. + * + * @param ePackage current package + * @param className target class name + * @return resolved class, or {@code null} + */ + private EClass resolveEClassInSubtree(EPackage ePackage, String className) { + EClassifier classifier = ePackage.getEClassifier(className); + if (classifier instanceof EClass eClass) { + return eClass; + } + for (EPackage sub : ePackage.getESubpackages()) { + EClass resolved = resolveEClassInSubtree(sub, className); + if (resolved != null) { + return resolved; + } + } + return null; + } + + /** + * Validates whether a source feature can potentially contribute to a target feature type. + * + * @param targetFeature derived feature receiving values + * @param sourceFeature source feature declared in subsets/redefines + * @return {@code true} when runtime filtering can safely handle source values + */ + private boolean hasPotentiallyCompatibleType(EStructuralFeature targetFeature, EStructuralFeature sourceFeature) { + if (targetFeature.getEType() == sourceFeature.getEType()) { + return true; + } + if (targetFeature.getEType() instanceof EClass targetClass && sourceFeature.getEType() instanceof EClass sourceClass) { + return targetClass.isSuperTypeOf(sourceClass) || sourceClass.isSuperTypeOf(targetClass); + } + return false; + } + + /** + * Appends source contribution code for a multi-valued target derived feature. + * + * @param source subset source feature + * @param targetTypeName boxed Java type name expected for elements + * @return generated Java code fragment + */ + private String appendManySourceContribution(EStructuralFeature source, String targetTypeName) { + String sourceLiteral = ecoreFeatureLiteral(source); + String candidateGuard = isObjectType(targetTypeName) + ? " if (candidate != null) {\n" + : " if (candidate instanceof " + targetTypeName + ") {\n"; + String sourceValueGuard = isObjectType(targetTypeName) + ? " } else if (sourceValue != null) {\n" + : " } else if (sourceValue instanceof " + targetTypeName + ") {\n"; + return "" + + " var sourceValue = owner.eGet(" + sourceLiteral + ", resolve);\n" + + " if (sourceValue instanceof Iterable iterable) {\n" + + " for (var candidate : iterable) {\n" + + candidateGuard + + " values.add(candidate);\n" + + " }\n" + + " }\n" + + sourceValueGuard + + " values.add(sourceValue);\n" + + " }\n"; + } + + /** + * Appends source contribution code for a single-valued target derived feature. + * + * @param source subset source feature + * @param targetTypeName boxed Java type name expected for the value + * @return generated Java code fragment + */ + private String appendSingleSourceContribution( + EStructuralFeature targetFeature, + EStructuralFeature source, + String targetTypeName, + boolean objectType, + boolean guardedByNullCheck, + int sourceIndex, + int sourceCount) { + String sourceLiteral = ecoreFeatureLiteral(source); + String statementIndent = guardedByNullCheck ? " " : " "; + String nestedIndent = guardedByNullCheck ? " " : " "; + String candidateVar = sourceCount == 1 ? "candidate" : "candidate" + sourceIndex; + StringBuilder contribution = new StringBuilder(); + if (guardedByNullCheck) { + contribution.append(" if (resolvedValue == null) {\n"); + } + contribution.append(statementIndent).append("var ").append(candidateVar).append(" = owner.eGet(") + .append(sourceLiteral) + .append(", resolve);\n"); + if (source.isMany()) { + contribution.append(statementIndent).append("if (").append(candidateVar).append(" instanceof Iterable iterable) {\n") + .append(statementIndent).append(" for (var item : iterable) {\n") + .append(statementIndent) + .append(objectType + ? " if (item != null) {\n" + : " if (item instanceof " + targetTypeName + ") {\n") + .append(statementIndent).append(" resolvedValue = item;\n") + .append(statementIndent).append(" break;\n") + .append(statementIndent).append(" }\n") + .append(statementIndent).append(" }\n") + .append(statementIndent).append("} else ") + .append(objectType + ? "if (" + candidateVar + " != null) {\n" + : "if (" + candidateVar + " instanceof " + targetTypeName + ") {\n") + .append(nestedIndent).append("resolvedValue = ").append(candidateVar).append(";\n") + .append(statementIndent).append("}\n"); + } else { + if (requiresOppositeMembershipGuard(targetFeature, source)) { + String oppositeLiteral = ecoreFeatureLiteral(oppositeReference(targetFeature)); + String guardedAssignmentIndent = statementIndent + " "; + contribution.append(statementIndent).append("if (").append(candidateVar) + .append(" instanceof org.eclipse.emf.ecore.EObject candidateObject) {\n") + .append(statementIndent).append(" var oppositeValue = candidateObject.eGet(") + .append(oppositeLiteral) + .append(", resolve);\n") + .append(statementIndent).append(" var ownerMatchesOpposite = false;\n") + .append(statementIndent).append(" if (oppositeValue instanceof Iterable iterable) {\n") + .append(statementIndent).append(" for (var oppositeItem : iterable) {\n") + .append(statementIndent).append(" if (oppositeItem == owner) {\n") + .append(statementIndent).append(" ownerMatchesOpposite = true;\n") + .append(statementIndent).append(" break;\n") + .append(statementIndent).append(" }\n") + .append(statementIndent).append(" }\n") + .append(statementIndent).append(" } else if (oppositeValue == owner) {\n") + .append(statementIndent).append(" ownerMatchesOpposite = true;\n") + .append(statementIndent).append(" }\n") + .append(statementIndent).append(" if (ownerMatchesOpposite") + .append(objectType ? " && " + candidateVar + " != null" + : " && " + candidateVar + " instanceof " + targetTypeName) + .append(") {\n") + .append(guardedAssignmentIndent).append("resolvedValue = ").append(candidateVar).append(";\n") + .append(statementIndent).append(" }\n") + .append(statementIndent).append("}\n"); + } else { + contribution.append(statementIndent) + .append(objectType + ? "if (" + candidateVar + " != null) {\n" + : "if (" + candidateVar + " instanceof " + targetTypeName + ") {\n") + .append(nestedIndent).append("resolvedValue = ").append(candidateVar).append(";\n") + .append(statementIndent).append("}\n"); + } + } + if (guardedByNullCheck) { + contribution.append(" }\n"); + } + return contribution.toString(); + } + + /** + * Returns whether assignment from one source to a single-valued target requires validating the + * target opposite membership. + * + * @param targetFeature target derived feature being generated + * @param source source feature candidate + * @return {@code true} when opposite-membership guard must be generated + */ + private boolean requiresOppositeMembershipGuard(EStructuralFeature targetFeature, EStructuralFeature source) { + return source.isDerived() + && source.getEContainingClass() == targetFeature.getEContainingClass() + && oppositeReference(targetFeature) != null + && !targetFeature.isMany() + && !source.isMany(); + } + + /** + * Returns the opposite reference of the given feature when available. + * + * @param feature structural feature + * @return opposite reference, or {@code null} when absent/not applicable + */ + private EReference oppositeReference(EStructuralFeature feature) { + if (feature instanceof EReference reference) { + return reference.getEOpposite(); + } + return null; + } + + /** + * Resolves the SysMLPackage feature-literal call expression for a structural feature. + * + * @param feature feature to reference + * @return Java expression resolving the Ecore feature literal + */ + private String ecoreFeatureLiteral(EStructuralFeature feature) { + return "SysMLPackage.eINSTANCE.get" + + feature.getEContainingClass().getName() + + "_" + + capitalize(feature.getName()) + + "()"; + } + + /** + * Returns the boxed Java instance class name for a feature EType. + * + * @param feature structural feature whose EType is analyzed + * @return boxed Java class name used in generated {@code instanceof} checks + */ + private TypeReference boxedInstanceType(EStructuralFeature feature) { + String instanceClassName = feature.getEType().getInstanceClassName(); + if (instanceClassName == null || instanceClassName.isBlank()) { + if (feature.getEType() instanceof EClass eClassType) { + return new TypeReference( + eClassType.getName(), + "org.omg.sysml.model.sysml." + eClassType.getName()); + } + return new TypeReference("Object", null); + } + return switch (instanceClassName) { + case "boolean" -> new TypeReference("Boolean", null); + case "byte" -> new TypeReference("Byte", null); + case "char" -> new TypeReference("Character", null); + case "short" -> new TypeReference("Short", null); + case "int" -> new TypeReference("Integer", null); + case "long" -> new TypeReference("Long", null); + case "float" -> new TypeReference("Float", null); + case "double" -> new TypeReference("Double", null); + default -> toTypeReference(instanceClassName); + }; + } + + /** + * Creates a simple-name type reference from a fully qualified class name. + * + * @param className fully qualified (or simple) class name + * @return type reference with optional import + */ + private TypeReference toTypeReference(String className) { + int separator = className.lastIndexOf('.'); + if (separator < 0) { + return new TypeReference(className, null); + } + String simpleName = className.substring(separator + 1); + if (className.startsWith("java.lang.")) { + return new TypeReference(simpleName, null); + } + return new TypeReference(simpleName, className); + } + + /** + * Checks if a boxed type name represents {@link Object}. + * + * @param typeName boxed Java type name + * @return {@code true} when the type is {@code java.lang.Object} + */ + private boolean isObjectType(String typeName) { + return "Object".equals(typeName); + } + + /** + * Capitalizes the first character of a token. + * + * @param value token to capitalize + * @return token with first character in upper case + */ + private String capitalize(String value) { + if (value == null || value.isEmpty()) { + return value; + } + return Character.toUpperCase(value.charAt(0)) + value.substring(1); + } + + /** + * Builds the Java source code for one generated invocation delegate class. + * + * @param className generated Java class name + * @param eClass owning metaclass + * @param operation target operation + * @param deriveRule optional derive rule carrying OCL text + * @return full Java source content + */ + private String invocationClass( + String className, + EClass eClass, + EOperation operation, + DeriveRule deriveRule) { + String deriveMethod = ""; + String imports = "import org.eclipse.emf.ecore.EOperation;\n"; + if (deriveRule != null) { + imports += "import java.lang.reflect.InvocationTargetException;\n" + + "import org.eclipse.emf.common.util.EList;\n" + + "import org.eclipse.emf.ecore.InternalEObject;\n"; + deriveMethod = "\n" + + " @Override\n" + + " public Object dynamicInvoke(InternalEObject target, EList arguments) throws InvocationTargetException {\n" + + oclComment(deriveRule) + + " return super.dynamicInvoke(target, arguments);\n" + + " }\n"; + } + return COPYRIGHT + + "package org.omg.sysml.logic.delegate.invocation;\n\n" + + imports + + "import org.omg.sysml.logic.delegate.AbstractInvocationDelegate;\n\n" + + "/**\n" + + " * Generated invocation delegate for {@code " + eClass.getName() + "::" + operation.getName() + "}.\n" + + " */\n" + + "public class " + className + " extends AbstractInvocationDelegate {\n\n" + + " public " + className + "(EOperation operation) {\n" + + " super(operation);\n" + + " }\n\n" + + " @Override\n" + + " protected String delegateId() {\n" + + " return \"" + eClass.getName() + "::" + operation.getName() + "\";\n" + + " }\n" + + deriveMethod + + "}\n"; + } + + /** + * Returns the sanitized token used as class fragment for an {@link EClass}. + * + * @param eClass class to tokenize + * @return Java-identifier-safe token + */ + private String classToken(EClass eClass) { + return sanitize(eClass.getName()); + } + + /** + * Returns the sanitized token used as class fragment for a structural feature. + * + * @param feature feature to tokenize + * @return Java-identifier-safe token + */ + private String featureToken(EStructuralFeature feature) { + return sanitize(feature.getName()); + } + + /** + * Returns the sanitized token used as class fragment for an operation. + * + * @param operation operation to tokenize + * @return Java-identifier-safe token + */ + private String operationToken(EOperation operation) { + return sanitize(operation.getName()); + } + + /** + * Resolves the effective Ecore feature for a UML-declared feature name on a class. + * + *

If no declared member exists directly on the class, the closest inherited match is used. + * + * @param eClass class being generated + * @param featureName UML-declared feature name + * @return matching Ecore feature, or {@code null} when no match exists + */ + private EStructuralFeature resolveFeatureForDeclaredName(EClass eClass, String featureName) { + List candidates = new ArrayList<>(); + EList allFeatures = eClass.getEAllStructuralFeatures(); + for (EStructuralFeature feature : allFeatures) { + if (featureName.equals(feature.getName())) { + candidates.add(feature); + } + } + if (candidates.isEmpty()) { + return null; + } + for (EStructuralFeature candidate : candidates) { + if (candidate.getEContainingClass() == eClass) { + return candidate; + } + } + candidates.sort(Comparator.comparingInt(feature -> inheritanceDistance(eClass, feature.getEContainingClass()))); + return candidates.getFirst(); + } + + /** + * Resolves the effective Ecore operation for a UML-declared operation name on a class. + * + *

If no declared member exists directly on the class, the closest inherited match is used. + * + * @param eClass class being generated + * @param operationName UML-declared operation name + * @return matching Ecore operation, or {@code null} when no match exists + */ + private EOperation resolveOperationForDeclaredName(EClass eClass, String operationName) { + List candidates = new ArrayList<>(); + EList allOperations = eClass.getEAllOperations(); + for (EOperation operation : allOperations) { + if (operationName.equals(operation.getName())) { + candidates.add(operation); + } + } + if (candidates.isEmpty()) { + return null; + } + for (EOperation candidate : candidates) { + if (candidate.getEContainingClass() == eClass) { + return candidate; + } + } + candidates.sort(Comparator.comparingInt(op -> inheritanceDistance(eClass, op.getEContainingClass()))); + return candidates.getFirst(); + } + + /** + * Computes shortest inheritance distance from one class to another through supertypes. + * + * @param fromClass starting class + * @param targetClass target superclass candidate + * @return number of supertype hops, or {@link Integer#MAX_VALUE} if unreachable + */ + private int inheritanceDistance(EClass fromClass, EClass targetClass) { + if (fromClass == targetClass) { + return 0; + } + List frontier = new ArrayList<>(); + Set visited = new HashSet<>(); + frontier.add(fromClass); + visited.add(fromClass); + int distance = 0; + while (!frontier.isEmpty()) { + List next = new ArrayList<>(); + for (EClass current : frontier) { + if (current == targetClass) { + return distance; + } + for (EClass superType : current.getESuperTypes()) { + if (visited.add(superType)) { + next.add(superType); + } + } + } + frontier = next; + distance++; + } + return Integer.MAX_VALUE; + } + + /** + * Builds a Java block comment containing derive rule name and OCL expression. + * + * @param deriveRule derive rule metadata + * @return formatted method-local comment string + */ + private String oclComment(DeriveRule deriveRule) { + String safeBody = deriveRule.oclBody().replace("\r\n", "\n").replace("*/", "* /"); + StringBuilder sb = new StringBuilder(); + sb.append(" /*\n"); + sb.append(" * OCL2.0 ").append(deriveRule.ruleName()).append('\n'); + if (!safeBody.isBlank()) { + for (String line : safeBody.split("\n", -1)) { + sb.append(" * ").append(line).append('\n'); + } + } + sb.append(" */\n"); + return sb.toString(); + } + + /** + * Carries generated setting method source along with its required import block. + * + * @param imports method-level required imports + * @param method generated {@code get(...)} method source + */ + private record SettingMethodSpec( + String imports, + String method) { + } + + /** + * Describes a Java type usage with simple name and optional import. + * + * @param simpleName simple class name used in generated code + * @param importFqn fully qualified class name to import, or {@code null} + */ + private record TypeReference( + String simpleName, + String importFqn) { + } + + /** + * Carries one inferred feature candidate with its source-text mention index. + * + * @param feature inferred source feature + * @param mentionIndex mention index in the normalized comment text + */ + private record CommentFeatureCandidate( + EStructuralFeature feature, + int mentionIndex) { + } + + /** + * Converts arbitrary text to a Java-identifier-safe token. + * + * @param value input value + * @return sanitized token + */ + private String sanitize(String value) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < value.length(); i++) { + char ch = value.charAt(i); + if (Character.isLetterOrDigit(ch)) { + sb.append(ch); + } else { + sb.append('_'); + } + } + if (sb.isEmpty() || !Character.isJavaIdentifierStart(sb.charAt(0))) { + sb.insert(0, '_'); + } + return sb.toString(); + } + +} diff --git a/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateModelFromGenModel.java b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateModelFromGenModel.java new file mode 100644 index 000000000..d86a068f8 --- /dev/null +++ b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateModelFromGenModel.java @@ -0,0 +1,238 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.tools; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +import org.eclipse.emf.codegen.ecore.generator.Generator; +import org.eclipse.emf.codegen.ecore.generator.GeneratorAdapterFactory; +import org.eclipse.emf.codegen.ecore.genmodel.GenModel; +import org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage; +import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; +import org.eclipse.emf.codegen.ecore.genmodel.generator.GenModelGeneratorAdapterFactory; +import org.eclipse.emf.codegen.ecore.genmodel.generator.GenBaseGeneratorAdapter; +import org.eclipse.emf.common.util.BasicMonitor; +import org.eclipse.emf.common.util.Diagnostic; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; + +/** + * Generates EMF Java model code from a SysML {@code .genmodel} in standalone mode. + * + *

This tool loads the provided GenModel, resolves referenced Ecore resources, configures + * generation settings (including model output directory and copyright header), then triggers EMF + * code generation for all contained GenPackages. + * + *

Usage: + *

{@code
+ * java org.omg.sysml.model.tools.GenerateModelFromGenModel \
+ *    
+ * }
+ * + *

Arguments: + *

    + *
  • arg0: absolute or relative path to the {@code .genmodel} file;
  • + *
  • arg1: absolute or relative path to the model module root directory (the directory + * containing {@code src/main/java} and {@code src/main/resources/model/}).
  • + *
+ */ +public final class GenerateModelFromGenModel { + + private final String USAGE = "Usage: GenerateModelFromGenModel "; + private final String ECORE_EXTENSION = "ecore"; + private final String GENMODEL_EXTENSION = "genmodel"; + private final String MODEL_DIRECTORY = "/org.omg.sysml.model/src/main/java"; + private final String SYSML_ECORE_FILENAME = "SysML.ecore"; + + private final String COPYRIGHT = """ + SysML 2 Pilot Implementation + Copyright (c) 2026 Obeo + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . + + @license LGPL-3.0-or-later + """; + + /** + * Prevents direct instantiation outside this class. + */ + private GenerateModelFromGenModel() { + } + + public static void main(String[] args) { + new GenerateModelFromGenModel().generate(args); + } + + /** + * Generates model code from the provided command-line arguments. + * + * @param args command-line arguments: + * {@code } + */ + private void generate(String[] args) { + if (args.length != 2) { + throw new IllegalArgumentException(USAGE); + } + + var genModelFile = new File(args[0]).getAbsoluteFile(); + var modelProjectDir = new File(args[1]).getAbsoluteFile(); + var resourceSet = createResourceSet(modelProjectDir); + + var ecoreSibling = new File(genModelFile.getParentFile(), SYSML_ECORE_FILENAME); + resourceSet.getResource(URI.createFileURI(ecoreSibling.getPath()), true); + var uri = URI.createFileURI(genModelFile.getPath()); + Resource resource = resourceSet.getResource(uri, true); + if (resource.getContents().isEmpty() || !(resource.getContents().get(0) instanceof GenModel genModel)) { + throw new IllegalStateException("No GenModel in " + genModelFile); + } + // Reload the GenModel resource from disk to ensure generation uses the latest saved state. + genModel = reloadGenModel(resourceSet, uri, genModelFile); + + EcoreUtil.resolveAll(resourceSet); + genModel.setModelDirectory(MODEL_DIRECTORY); + genModel.setCopyrightText(toEmfCopyrightText(COPYRIGHT)); + genModel.setCanGenerate(true); + + GeneratorAdapterFactory.Descriptor.DelegatingRegistry descriptorRegistry = + new GeneratorAdapterFactory.Descriptor.DelegatingRegistry(); + descriptorRegistry.addDescriptor(GenModelPackage.eNS_URI, GenModelGeneratorAdapterFactory.DESCRIPTOR); + + Generator generator = new Generator(descriptorRegistry); + generator.setInput(genModel); + for (GenPackage genPackage : genModel.getGenPackages()) { + Diagnostic diagnostic = generator.generate( + genPackage, + GenBaseGeneratorAdapter.MODEL_PROJECT_TYPE, + new BasicMonitor.Printing(System.out)); + if (diagnostic.getSeverity() >= Diagnostic.ERROR) { + throw new IllegalStateException("EMF generation failed: " + diagnostic.getMessage()); + } + } + deletePluginArtifacts(modelProjectDir.toPath()); + } + + /** + * Creates and configures a standalone EMF {@link ResourceSet} for SysML model generation. + * + * @param modelProjectDir model project directory + * @return configured resource set + */ + private ResourceSet createResourceSet(File modelProjectDir) { + var resourceSet = new ResourceSetImpl(); + resourceSet.getPackageRegistry().put(EcorePackage.eNS_URI, EcorePackage.eINSTANCE); + resourceSet.getPackageRegistry().put(GenModelPackage.eNS_URI, GenModelPackage.eINSTANCE); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(ECORE_EXTENSION, new XMIResourceFactoryImpl()); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(GENMODEL_EXTENSION, new XMIResourceFactoryImpl()); + resourceSet.getURIConverter().getURIMap().put( + URI.createURI("platform:/resource/org.omg.sysml.model/"), + URI.createFileURI(modelProjectDir.getPath() + "/")); + return resourceSet; + } + + /** + * Normalizes a block copyright text to EMF GenModel format. + * + * @param rawCopyright raw copyright text + * @return normalized text suitable for {@code GenModel#setCopyrightText} + */ + private String toEmfCopyrightText(String rawCopyright) { + String normalized = rawCopyright.stripTrailing().replace("\r\n", "\n"); + String[] lines = normalized.split("\n"); + StringBuilder out = new StringBuilder(); + for (String line : lines) { + String trimmed = line.strip(); + if (trimmed.startsWith("/*") || trimmed.endsWith("*/")) { + continue; + } + String normalizedLine = line; + if (trimmed.startsWith("*")) { + normalizedLine = trimmed.substring(1).stripLeading(); + } + if (out.length() > 0) { + out.append('\n'); + } + out.append(normalizedLine); + } + return out.toString(); + } + + /** + * Reloads the GenModel resource from disk to use the latest saved state. + * + * @param resourceSet EMF resource set containing the resource + * @param uri URI of the GenModel resource + * @param sourceFile source file for diagnostics + * @return reloaded {@link GenModel} + */ + private GenModel reloadGenModel(ResourceSet resourceSet, URI uri, File sourceFile) { + Resource resource = resourceSet.getResource(uri, false); + if (resource == null) { + throw new IllegalStateException("Cannot reload missing GenModel resource: " + sourceFile); + } + resource.unload(); + try { + resource.load(null); + } catch (IOException e) { + throw new IllegalStateException("Failed to reload GenModel resource: " + sourceFile, e); + } + if (resource.getContents().isEmpty() || !(resource.getContents().get(0) instanceof GenModel genModel)) { + throw new IllegalStateException("No GenModel in " + sourceFile + " after reload"); + } + return genModel; + } + + /** + * Deletes Eclipse plugin artifacts generated as side effects of EMF generation. + * + * @param modelProjectDir model project directory + */ + private void deletePluginArtifacts(Path modelProjectDir) { + try { + Files.deleteIfExists(modelProjectDir.resolve("plugin.xml")); + Files.deleteIfExists(modelProjectDir.resolve("plugin.properties")); + Files.deleteIfExists(modelProjectDir.resolve("build.properties")); + Files.deleteIfExists(modelProjectDir.resolve("META-INF").resolve("MANIFEST.MF")); + Files.deleteIfExists(modelProjectDir.resolve("META-INF")); + } catch (IOException e) { + throw new IllegalStateException("Failed to remove Eclipse plugin artifacts from " + modelProjectDir, e); + } + } + +} diff --git a/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateModelRedefinesFromEcore.java b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateModelRedefinesFromEcore.java new file mode 100644 index 000000000..95de4428c --- /dev/null +++ b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/GenerateModelRedefinesFromEcore.java @@ -0,0 +1,1143 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.tools; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedHashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EAnnotation; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +/** + * Applies second-phase generation for {@code redefines} annotations directly in generated + * metamodel {@code *Impl} classes. + * + *

This tool reads {@code redefines} annotations from SysML Ecore features and updates matching + * getter methods in {@code org.omg.sysml.model.sysml.impl.*Impl} classes. If a redefined getter is + * inherited (and therefore absent in the concrete class), it inserts an override method. + * + *

Usage: + *

{@code
+ * java org.omg.sysml.model.tools.GenerateModelRedefinesFromEcore \
+ *    
+ * }
+ */ +public final class GenerateModelRedefinesFromEcore { + + private final String MODEL_PACKAGE = "org.omg.sysml.model.sysml"; + private final String MODEL_CLASS_IMPORT = "import org.omg.sysml.model.sysml.Class;\n"; + private final String MODEL_PACKAGE_IMPORT = "import org.omg.sysml.model.sysml.Package;\n"; + private final String ELIST_SIMPLE_NAME = "EList"; + private final String ELIST_FQN = "org.eclipse.emf.common.util.EList"; + private final String BASIC_ELIST_SIMPLE_NAME = "BasicEList"; + private final String BASIC_ELIST_FQN = "org.eclipse.emf.common.util.BasicEList"; + private final String ECOLLECTIONS_SIMPLE_NAME = "ECollections"; + private final String ECOLLECTIONS_FQN = "org.eclipse.emf.common.util.ECollections"; + private final String TAB = "\t"; + + /** + * Utility constructor. + */ + private GenerateModelRedefinesFromEcore() { + } + + /** + * Program entry point. + * + * @param args command-line arguments + * @throws IOException if generation fails + */ + public static void main(String[] args) throws IOException { + new GenerateModelRedefinesFromEcore().generate(args); + } + + /** + * Applies redefines-based overrides in generated metamodel implementation classes. + * + * @param args command-line arguments + * @throws IOException if loading or writing fails + */ + private void generate(String[] args) throws IOException { + if (args.length != 2) { + throw new IllegalArgumentException( + "Usage: GenerateModelRedefinesFromEcore "); + } + + var ecoreFile = new File(args[0]).getAbsoluteFile(); + var modelModule = new File(args[1]).getAbsoluteFile().toPath(); + var implDir = modelModule.resolve("src/main/java/org/omg/sysml/model/sysml/impl"); + + var classes = this.loadAllClasses(ecoreFile); + classes.sort(Comparator.comparing(EClass::getName)); + for (var eClass : classes) { + this.processClass(eClass, implDir); + } + } + + /** + * Loads all EClasses from the Ecore file. + * + * @param ecoreFile Ecore file + * @return discovered EClasses + */ + private List loadAllClasses(File ecoreFile) { + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("ecore", new XMIResourceFactoryImpl()); + Resource resource = resourceSet.getResource(URI.createFileURI(ecoreFile.getPath()), true); + + List allClasses = new ArrayList<>(); + for (EObject root : resource.getContents()) { + if (root instanceof EPackage ePackage) { + this.collectClasses(ePackage, allClasses); + } + } + return allClasses; + } + + /** + * Recursively collects EClasses from a package hierarchy. + * + * @param ePackage package to inspect + * @param target output list + */ + private void collectClasses(EPackage ePackage, List target) { + for (EClassifier classifier : ePackage.getEClassifiers()) { + if (classifier instanceof EClass eClass) { + target.add(eClass); + } + } + for (EPackage sub : ePackage.getESubpackages()) { + this.collectClasses(sub, target); + } + } + + /** + * Applies redefine overrides for one EClass implementation file. + * + * @param eClass source EClass + * @param implDir implementation directory + * @throws IOException if reading or writing fails + */ + private void processClass(EClass eClass, Path implDir) throws IOException { + var redefines = this.redefinesByTargetFeature(eClass); + var operationOverrides = this.operationOverrides(eClass); + if (redefines.isEmpty() && operationOverrides.isEmpty()) { + return; + } + + var implPath = implDir.resolve(this.sanitize(eClass.getName()) + "Impl.java"); + if (!Files.isRegularFile(implPath)) { + return; + } + + String content = Files.readString(implPath, StandardCharsets.UTF_8); + content = this.removeConflictingModelImports(content); + var requiredImports = new LinkedHashSet(); + for (var entry : redefines.entrySet()) { + var redefinedFeature = entry.getKey(); + var redefiningFeature = entry.getValue(); + var methodName = this.accessorName(redefinedFeature); + requiredImports.addAll(this.requiredImports(redefinedFeature, redefiningFeature)); + var method = this.redefineMethod(redefinedFeature, redefiningFeature, true); + content = this.replaceOrInsertMethod(content, methodName, method, method); + } + for (var operationOverride : operationOverrides) { + requiredImports.addAll(operationOverride.requiredImports()); + content = this.replaceOrInsertOperationMethod(content, operationOverride); + } + content = this.ensureImports(content, requiredImports); + Files.writeString(implPath, content, StandardCharsets.UTF_8); + } + + /** + * Removes imports that collide with {@code java.lang.Class} and {@code java.lang.Package}. + * + * @param content Java source content + * @return updated content without conflicting model imports + */ + private String removeConflictingModelImports(String content) { + var cleaned = content.replace(MODEL_CLASS_IMPORT, ""); + cleaned = cleaned.replace(MODEL_PACKAGE_IMPORT, ""); + return cleaned; + } + + /** + * Builds mapping between a redefined feature and its redefining source in a class. + * + * @param eClass source class + * @return map of redefined feature to redefining feature + */ + private Map redefinesByTargetFeature(EClass eClass) { + var mapping = new LinkedHashMap(); + var features = new ArrayList(eClass.getEStructuralFeatures()); + features.sort(Comparator.comparing(EStructuralFeature::getName)); + for (var feature : features) { + for (var redefined : this.redefinedFeatures(feature)) { + var previous = mapping.putIfAbsent(redefined, feature); + if (previous != null && previous != feature) { + throw new IllegalStateException( + "Conflicting redefines for " + + eClass.getName() + + "." + + redefined.getName() + + " from " + + previous.getName() + + " and " + + feature.getName()); + } + } + } + return mapping; + } + + /** + * Resolves redefined features referenced by one feature annotation. + * + * @param feature redefining feature + * @return referenced redefined features + */ + private List redefinedFeatures(EStructuralFeature feature) { + var results = new ArrayList(); + for (EAnnotation annotation : feature.getEAnnotations()) { + if (!"redefines".equals(annotation.getSource())) { + continue; + } + for (EObject reference : annotation.getReferences()) { + if (reference instanceof EStructuralFeature redefinedFeature) { + results.add(redefinedFeature); + } + } + } + return results; + } + + /** + * Replaces an existing getter method or inserts it when missing. + * + * @param content class content + * @param methodName getter method name + * @param replacementMethod replacement source if method exists + * @param insertedMethod inserted source if method does not exist + * @return updated class content + */ + private String replaceOrInsertMethod(String content, String methodName, String replacementMethod, String insertedMethod) { + var span = this.findNoArgMethodSpan(content, methodName); + if (span != null) { + var replacement = replacementMethod; + if (!content.substring(0, span.start()).endsWith("\n\n")) { + replacement = "\n" + replacement; + } + return content.substring(0, span.start()) + replacement + content.substring(span.end()); + } + int classEnd = content.lastIndexOf("\n}"); + if (classEnd < 0) { + throw new IllegalStateException("Cannot find class closing brace while inserting generated method"); + } + return content.substring(0, classEnd) + insertedMethod + content.substring(classEnd); + } + + /** + * Replaces or inserts one generated operation override. + * + * @param content class content + * @param operationOverride operation override specification + * @return updated class content + */ + private String replaceOrInsertOperationMethod(String content, OperationOverride operationOverride) { + var span = this.findMethodSpan(content, operationOverride.methodName(), operationOverride.parameterPattern()); + if (span != null) { + var replacement = operationOverride.methodSource(); + if (!content.substring(0, span.start()).endsWith("\n\n")) { + replacement = "\n" + replacement; + } + return content.substring(0, span.start()) + replacement + content.substring(span.end()); + } + int classEnd = content.lastIndexOf("\n}"); + if (classEnd < 0) { + throw new IllegalStateException("Cannot find class closing brace while inserting generated operation method"); + } + return content.substring(0, classEnd) + operationOverride.methodSource() + content.substring(classEnd); + } + + /** + * Finds a no-arg method span by method name. + * + * @param content class content + * @param methodName getter method name + * @return method span, or {@code null} if not found + */ + private Span findNoArgMethodSpan(String content, String methodName) { + var regex = "\\bpublic\\s+[^\\(\\{;]+\\b" + Pattern.quote(methodName) + "\\s*\\(\\s*\\)\\s*\\{"; + return this.findMethodSpanByRegex(content, regex); + } + + /** + * Finds a method span by method name and parameter pattern. + * + * @param content class content + * @param methodName method name + * @param parameterPattern regex fragment matching method parameters + * @return method span, or {@code null} when not found + */ + private Span findMethodSpan(String content, String methodName, String parameterPattern) { + var regex = "\\bpublic\\s+[^\\(\\{;]+\\b" + Pattern.quote(methodName) + "\\s*\\(" + parameterPattern + "\\)\\s*\\{"; + return this.findMethodSpanByRegex(content, regex); + } + + /** + * Finds a method span using a full method-header regex. + * + * @param content class content + * @param methodHeaderRegex regex matching method header until opening brace + * @return method span, or {@code null} when not found + */ + private Span findMethodSpanByRegex(String content, String methodHeaderRegex) { + Matcher matcher = Pattern.compile(methodHeaderRegex).matcher(content); + if (!matcher.find()) { + return null; + } + int start = content.lastIndexOf('\n', matcher.start()) + 1; + while (start > 0) { + int previousLineEnd = start - 1; + int previousLineStart = content.lastIndexOf('\n', previousLineEnd - 1) + 1; + String previousLine = content.substring(previousLineStart, previousLineEnd).trim(); + if (previousLine.isEmpty() + || previousLine.startsWith("@") + || previousLine.startsWith("*") + || previousLine.startsWith("/**") + || previousLine.startsWith("*/")) { + start = previousLineStart; + } else { + break; + } + } + int braceStart = content.indexOf('{', matcher.end() - 1); + if (braceStart < 0) { + return null; + } + int depth = 0; + for (int i = braceStart; i < content.length(); i++) { + char c = content.charAt(i); + if (c == '{') { + depth++; + } else if (c == '}') { + depth--; + if (depth == 0) { + int end = i + 1; + while (end < content.length() && (content.charAt(end) == '\n' || content.charAt(end) == '\r')) { + end++; + } + return new Span(start, end); + } + } + } + return null; + } + + /** + * Returns generated operation overrides for one class. + * + * @param eClass source class + * @return operation overrides to apply + */ + private List operationOverrides(EClass eClass) { + return switch (eClass.getName()) { + case "ConjugatedPortDefinition" -> List.of(new OperationOverride( + "effectiveName", + "\\s*", + Set.of(), + this.conjugatedPortDefinitionEffectiveNameMethod())); + case "Relationship" -> List.of(new OperationOverride( + "path", + "\\s*", + Set.of(), + this.relationshipPathMethod())); + case "OwningMembership" -> List.of(new OperationOverride( + "path", + "\\s*", + Set.of(), + this.owningMembershipPathMethod())); + case "LibraryPackage" -> List.of(new OperationOverride( + "libraryNamespace", + "\\s*", + Set.of(MODEL_PACKAGE + ".Namespace"), + this.libraryPackageLibraryNamespaceMethod())); + case "FeatureReferenceExpression" -> List.of(new OperationOverride( + "modelLevelEvaluable", + "\\s*EList\\s+visited\\s*", + Set.of( + ELIST_FQN, + BASIC_ELIST_FQN, + MODEL_PACKAGE + ".Expression", + MODEL_PACKAGE + ".Feature", + MODEL_PACKAGE + ".FeatureValue", + MODEL_PACKAGE + ".Membership", + MODEL_PACKAGE + ".Metaclass", + MODEL_PACKAGE + ".MetadataFeature"), + this.featureReferenceExpressionModelLevelEvaluableMethod())); + case "InvocationExpression" -> List.of(new OperationOverride( + "modelLevelEvaluable", + "\\s*EList\\s+visited\\s*", + Set.of(ELIST_FQN, BASIC_ELIST_FQN, MODEL_PACKAGE + ".Feature"), + this.invocationExpressionModelLevelEvaluableMethod())); + case "LiteralExpression" -> List.of(new OperationOverride( + "evaluate", + "\\s*Element\\s+target\\s*", + Set.of(ELIST_FQN, BASIC_ELIST_FQN, MODEL_PACKAGE + ".Element"), + this.literalExpressionEvaluateMethod())); + case "CalculationUsage" -> List.of(new OperationOverride( + "modelLevelEvaluable", + "\\s*EList\\s+visited\\s*", + Set.of(ELIST_FQN, MODEL_PACKAGE + ".Feature"), + this.falseModelLevelEvaluableMethod())); + case "ConstraintUsage" -> List.of(new OperationOverride( + "modelLevelEvaluable", + "\\s*EList\\s+visited\\s*", + Set.of(ELIST_FQN, MODEL_PACKAGE + ".Feature"), + this.falseModelLevelEvaluableMethod())); + case "ReturnParameterMembership" -> List.of(new OperationOverride( + "parameterDirection", + "\\s*", + Set.of(MODEL_PACKAGE + ".FeatureDirectionKind"), + this.returnParameterMembershipParameterDirectionMethod())); + default -> List.of(); + }; + } + + /** + * Builds generated override for ConjugatedPortDefinition::effectiveName. + * + * @return method source + */ + private String conjugatedPortDefinitionEffectiveNameMethod() { + return this.operationMethod( + "String", + "effectiveName", + "", + """ + var originalPortDefinition = this.getOriginalPortDefinition(); + if (originalPortDefinition == null) { + return null; + } + var originalName = originalPortDefinition.getName(); + if (originalName == null) { + return null; + } + return "~" + originalName; + """); + } + + /** + * Builds generated override for Relationship::path. + * + * @return method source + */ + private String relationshipPathMethod() { + return this.operationMethod( + "String", + "path", + "", + """ + var owningRelationship = this.getOwningRelationship(); + var owningRelatedElement = this.getOwningRelatedElement(); + if (owningRelationship == null && owningRelatedElement != null) { + var index = owningRelatedElement.getOwnedRelationship().indexOf(this) + 1; + return owningRelatedElement.path() + "/" + Integer.toString(index); + } + var qualifiedName = this.getQualifiedName(); + if (qualifiedName != null) { + return qualifiedName; + } + if (owningRelationship != null) { + var index = owningRelationship.getOwnedRelatedElement().indexOf(this) + 1; + return owningRelationship.path() + "/" + Integer.toString(index); + } + return ""; + """); + } + + /** + * Builds generated override for OwningMembership::path. + * + * @return method source + */ + private String owningMembershipPathMethod() { + return this.operationMethod( + "String", + "path", + "", + """ + var ownedElement = this.getOwnedMemberElement(); + var qualifiedName = ownedElement == null ? null : ownedElement.getQualifiedName(); + if (qualifiedName != null) { + return qualifiedName + "/owningMembership"; + } + var owningRelationship = this.getOwningRelationship(); + var owningRelatedElement = this.getOwningRelatedElement(); + if (owningRelationship == null && owningRelatedElement != null) { + var index = owningRelatedElement.getOwnedRelationship().indexOf(this) + 1; + return owningRelatedElement.path() + "/" + Integer.toString(index); + } + var relationshipQualifiedName = this.getQualifiedName(); + if (relationshipQualifiedName != null) { + return relationshipQualifiedName; + } + if (owningRelationship != null) { + var index = owningRelationship.getOwnedRelatedElement().indexOf(this) + 1; + return owningRelationship.path() + "/" + Integer.toString(index); + } + return ""; + """); + } + + /** + * Builds generated override for LibraryPackage::libraryNamespace. + * + * @return method source + */ + private String libraryPackageLibraryNamespaceMethod() { + return this.operationMethod( + "Namespace", + "libraryNamespace", + "", + """ + return this; + """); + } + + /** + * Builds generated override for FeatureReferenceExpression::modelLevelEvaluable. + * + * @return method source + */ + private String featureReferenceExpressionModelLevelEvaluableMethod() { + return this.operationMethod( + "boolean", + "modelLevelEvaluable", + "EList visited", + """ + var safeVisited = visited == null ? new BasicEList() : visited; + var referent = this.getReferent(); + if (referent == null) { + return false; + } + var anythingSelfMembership = this.resolveGlobal("Anything::self"); + var isAnythingSelf = anythingSelfMembership != null && anythingSelfMembership.getMemberElement() == referent; + if (isAnythingSelf) { + return true; + } + if (safeVisited.contains(referent)) { + return false; + } + if (referent instanceof Expression expression) { + var nextVisited = new BasicEList(); + nextVisited.addAll(safeVisited); + nextVisited.add(referent); + if (expression.modelLevelEvaluable(nextVisited)) { + return true; + } + } + var owningType = referent.getOwningType(); + if (owningType instanceof Metaclass || owningType instanceof MetadataFeature) { + return true; + } + if (!referent.getFeaturingType().isEmpty()) { + return false; + } + Expression valuation = null; + for (Membership membership : referent.getOwnedMembership()) { + if (membership instanceof FeatureValue featureValue) { + valuation = featureValue.getValue(); + break; + } + } + if (valuation == null) { + return true; + } + var nextVisited = new BasicEList(); + nextVisited.addAll(safeVisited); + nextVisited.add(referent); + return valuation.modelLevelEvaluable(nextVisited); + """); + } + + /** + * Builds generated override for InvocationExpression::modelLevelEvaluable. + * + * @return method source + */ + private String invocationExpressionModelLevelEvaluableMethod() { + return this.operationMethod( + "boolean", + "modelLevelEvaluable", + "EList visited", + """ + var safeVisited = visited == null ? new BasicEList() : visited; + for (var argument : this.getArgument()) { + if (argument == null || !argument.modelLevelEvaluable(safeVisited)) { + return false; + } + } + var function = this.getFunction(); + return function != null && function.isIsModelLevelEvaluable(); + """); + } + + /** + * Builds generated override for LiteralExpression::evaluate. + * + * @return method source + */ + private String literalExpressionEvaluateMethod() { + return this.operationMethod( + "EList", + "evaluate", + "Element target", + """ + var result = new BasicEList(); + result.add(this); + return result; + """); + } + + /** + * Builds generated override for modelLevelEvaluable operations that always evaluate to false. + * + * @return method source + */ + private String falseModelLevelEvaluableMethod() { + return this.operationMethod( + "boolean", + "modelLevelEvaluable", + "EList visited", + """ + return false; + """); + } + + /** + * Builds generated override for ReturnParameterMembership::parameterDirection. + * + * @return method source + */ + private String returnParameterMembershipParameterDirectionMethod() { + return this.operationMethod( + "FeatureDirectionKind", + "parameterDirection", + "", + """ + return FeatureDirectionKind.OUT; + """); + } + + /** + * Creates one operation method source. + * + * @param returnType method return type + * @param methodName method name + * @param parameters method parameters + * @param body method body + * @return generated method source + */ + private String operationMethod(String returnType, String methodName, String parameters, String body) { + var method = new StringBuilder(); + method.append("\n") + .append(TAB) + .append("/**\n") + .append(TAB) + .append(" * \n") + .append(TAB) + .append(" * \n") + .append(TAB) + .append(" * @generated\n") + .append(TAB) + .append(" */\n") + .append(TAB) + .append("@Override\n") + .append(TAB) + .append("public ") + .append(returnType) + .append(" ") + .append(methodName) + .append("(") + .append(parameters) + .append(") {\n"); + for (var line : body.stripIndent().stripTrailing().split("\\R")) { + method.append(TAB).append(TAB).append(this.normalizeGeneratedBodyLine(line)).append("\n"); + } + method.append(TAB).append("}\n"); + return method.toString(); + } + + /** + * Normalizes generated method-body indentation to tabs. + * + * @param line source line + * @return line with leading indentation converted to tabs + */ + private String normalizeGeneratedBodyLine(String line) { + int index = 0; + int indentUnits = 0; + while (index < line.length()) { + char current = line.charAt(index); + if (current == '\t') { + indentUnits++; + index++; + continue; + } + if (current != ' ') { + break; + } + int spaces = 0; + while (index < line.length() && line.charAt(index) == ' ') { + spaces++; + index++; + } + indentUnits += (spaces + 3) / 4; + break; + } + return TAB.repeat(indentUnits) + line.substring(index); + } + + /** + * Builds method source overriding a redefined feature getter. + * + * @param redefinedFeature target redefined feature + * @param redefiningFeature source redefining feature + * @param withJavadoc whether to include generated Javadoc and {@code @Override} + * @return Java method source + */ + private String redefineMethod(EStructuralFeature redefinedFeature, EStructuralFeature redefiningFeature, + boolean withJavadoc) { + String methodName = this.accessorName(redefinedFeature); + String redefiningAccessor = this.accessorName(redefiningFeature); + String returnType = this.javaType(redefinedFeature); + String listItemType = this.listItemType(redefinedFeature); + String classLiteralType = this.classLiteralType(redefinedFeature); + + var method = new StringBuilder(); + method.append("\n"); + if (withJavadoc) { + method.append("\t/**\n") + .append("\t * \n") + .append("\t * \n") + .append("\t * @generated\n") + .append("\t */\n"); + method.append("\t@Override\n"); + } + method.append("\tpublic ") + .append(returnType) + .append(" ") + .append(methodName) + .append("() {\n") + .append("\t\tvar sourceValue = this.") + .append(redefiningAccessor) + .append("();\n") + .append("\t\tObject source = sourceValue;\n"); + + if (redefinedFeature.isMany()) { + method.append("\t\tvar result = new ") + .append(BASIC_ELIST_SIMPLE_NAME) + .append("<") + .append(listItemType) + .append(">();\n") + .append("\t\tif (source instanceof Iterable values) {\n") + .append("\t\t\tfor (var value : values) {\n") + .append("\t\t\t\tif (value instanceof ") + .append(classLiteralType) + .append(" typedValue) {\n") + .append("\t\t\t\t\tresult.add(typedValue);\n") + .append("\t\t\t\t}\n") + .append("\t\t\t}\n") + .append("\t\t} else if (sourceValue instanceof ") + .append(classLiteralType) + .append(" typedValue) {\n") + .append("\t\t\tresult.add(typedValue);\n") + .append("\t\t}\n") + .append("\t\treturn ") + .append(ECOLLECTIONS_SIMPLE_NAME) + .append(".unmodifiableEList(result);\n"); + } else { + String primitiveTarget = this.primitiveType(redefinedFeature); + String primitiveSource = this.primitiveType(redefiningFeature); + if (primitiveTarget != null && primitiveTarget.equals(primitiveSource) + && !redefiningFeature.isMany()) { + method.append("\t\treturn sourceValue;\n"); + } else { + method.append("\t\tif (source instanceof Iterable values) {\n") + .append("\t\t\tfor (var value : values) {\n") + .append("\t\t\t\tif (value instanceof ") + .append(classLiteralType) + .append(" typedValue) {\n") + .append("\t\t\t\t\treturn typedValue;\n") + .append("\t\t\t\t}\n") + .append("\t\t\t}\n") + .append("\t\t\treturn ") + .append(this.defaultValue(redefinedFeature)) + .append(";\n") + .append("\t\t}\n") + .append("\t\tif (sourceValue instanceof ") + .append(classLiteralType) + .append(" typedValue) {\n") + .append("\t\t\treturn typedValue;\n") + .append("\t\t}\n") + .append("\t\treturn ") + .append(this.defaultValue(redefinedFeature)) + .append(";\n"); + } + } + + method.append("\t}\n"); + return method.toString(); + } + + /** + * Returns getter accessor name for a feature. + * + * @param feature feature + * @return accessor name + */ + private String accessorName(EStructuralFeature feature) { + if (!feature.isMany() && this.isBoolean(feature)) { + return "is" + this.capitalize(feature.getName()); + } + return "get" + this.capitalize(feature.getName()); + } + + /** + * Returns Java method return type for a feature. + * + * @param feature feature + * @return Java type + */ + private String javaType(EStructuralFeature feature) { + if (feature.isMany()) { + return ELIST_SIMPLE_NAME + "<" + this.listItemType(feature) + ">"; + } + String primitive = this.primitiveType(feature); + if (primitive != null) { + return primitive; + } + return this.classLiteralType(feature); + } + + /** + * Returns Java list item type for a feature. + * + * @param feature feature + * @return Java list item type + */ + private String listItemType(EStructuralFeature feature) { + return this.classLiteralType(feature); + } + + /** + * Returns class literal type usable for {@code instanceof} checks. + * + * @param feature feature + * @return class literal type + */ + private String classLiteralType(EStructuralFeature feature) { + var eType = feature.getEType(); + var ePackage = eType.getEPackage(); + if (ePackage != null && "http://www.eclipse.org/emf/2002/Ecore".equals(ePackage.getNsURI())) { + return switch (eType.getName()) { + case "EBoolean" -> "java.lang.Boolean"; + case "EInt" -> "java.lang.Integer"; + case "ELong" -> "java.lang.Long"; + case "EDouble" -> "java.lang.Double"; + case "EFloat" -> "java.lang.Float"; + case "EString" -> "java.lang.String"; + default -> "java.lang.Object"; + }; + } + var typeName = this.sanitize(eType.getName()); + if ("Class".equals(typeName) || "Package".equals(typeName)) { + return MODEL_PACKAGE + "." + typeName; + } + return typeName; + } + + /** + * Returns primitive scalar type for supported Ecore scalar features. + * + * @param feature feature + * @return primitive type or {@code null} when non-primitive/reference + */ + private String primitiveType(EStructuralFeature feature) { + if (feature.isMany()) { + return null; + } + var eType = feature.getEType(); + var ePackage = eType.getEPackage(); + if (ePackage == null || !"http://www.eclipse.org/emf/2002/Ecore".equals(ePackage.getNsURI())) { + return null; + } + return switch (eType.getName()) { + case "EBoolean" -> "boolean"; + case "EInt" -> "int"; + case "ELong" -> "long"; + case "EDouble" -> "double"; + case "EFloat" -> "float"; + default -> null; + }; + } + + /** + * Returns Java default value literal for a feature return type. + * + * @param feature feature + * @return default value literal + */ + private String defaultValue(EStructuralFeature feature) { + String primitive = this.primitiveType(feature); + if (primitive == null) { + return "null"; + } + return switch (primitive) { + case "boolean" -> "false"; + case "int" -> "0"; + case "long" -> "0L"; + case "double" -> "0.0d"; + case "float" -> "0.0f"; + default -> "null"; + }; + } + + /** + * Returns true when the feature is a scalar EBoolean. + * + * @param feature feature + * @return true when feature type is EBoolean + */ + private boolean isBoolean(EStructuralFeature feature) { + var eType = feature.getEType(); + if (eType == null || eType.getEPackage() == null) { + return false; + } + return "http://www.eclipse.org/emf/2002/Ecore".equals(eType.getEPackage().getNsURI()) + && "EBoolean".equals(eType.getName()); + } + + /** + * Capitalizes identifier first character. + * + * @param value source value + * @return capitalized value + */ + private String capitalize(String value) { + if (value == null || value.isEmpty()) { + return value; + } + if (value.length() == 1) { + return value.toUpperCase(); + } + return Character.toUpperCase(value.charAt(0)) + value.substring(1); + } + + /** + * Sanitizes an identifier into a Java-safe token. + * + * @param identifier source identifier + * @return Java-safe identifier + */ + private String sanitize(String identifier) { + StringBuilder result = new StringBuilder(identifier.length()); + for (int i = 0; i < identifier.length(); i++) { + char c = identifier.charAt(i); + if (Character.isLetterOrDigit(c) || c == '_') { + result.append(c); + } else { + result.append('_'); + } + } + if (result.isEmpty()) { + return "_"; + } + if (!Character.isJavaIdentifierStart(result.charAt(0))) { + result.insert(0, '_'); + } + return result.toString(); + } + + /** + * Returns imports needed for one generated redefine method. + * + * @param redefinedFeature target redefined feature + * @param redefiningFeature source redefining feature + * @return required imports + */ + private Set requiredImports(EStructuralFeature redefinedFeature, EStructuralFeature redefiningFeature) { + var imports = new LinkedHashSet(); + if (redefinedFeature.isMany()) { + imports.add(ELIST_FQN); + imports.add(BASIC_ELIST_FQN); + imports.add(ECOLLECTIONS_FQN); + } + this.addModelTypeImport(imports, redefinedFeature); + this.addModelTypeImport(imports, redefiningFeature); + return imports; + } + + /** + * Adds model type import for one feature when applicable. + * + * @param imports target imports + * @param feature source feature + */ + private void addModelTypeImport(Set imports, EStructuralFeature feature) { + var eType = feature.getEType(); + if (eType == null || eType.getEPackage() == null) { + return; + } + if ("http://www.eclipse.org/emf/2002/Ecore".equals(eType.getEPackage().getNsURI())) { + return; + } + var typeName = this.sanitize(eType.getName()); + if ("Class".equals(typeName) || "Package".equals(typeName)) { + return; + } + imports.add(MODEL_PACKAGE + "." + typeName); + } + + /** + * Rebuilds the import block deterministically. + * + *

This preserves existing imports, adds required imports, removes conflicting imports and + * rewrites ordering/grouping with stable spacing. + * + * @param content Java source content + * @param requiredImports required imports + * @return updated content + */ + private String ensureImports(String content, Set requiredImports) { + Matcher packageMatcher = Pattern.compile("(?m)^package\\s+[^;]+;\\R").matcher(content); + if (!packageMatcher.find()) { + return content; + } + int packageEnd = packageMatcher.end(); + int classDocStart = content.indexOf("\n/**", packageEnd); + if (classDocStart < 0) { + return content; + } + + String headerBody = content.substring(packageEnd, classDocStart); + Matcher importMatcher = Pattern.compile("(?m)^import\\s+([^;]+);\\R").matcher(headerBody); + + var imports = new LinkedHashSet(); + while (importMatcher.find()) { + imports.add(importMatcher.group(1).trim()); + } + imports.addAll(requiredImports); + imports.remove("org.omg.sysml.model.sysml.Class"); + imports.remove("org.omg.sysml.model.sysml.Package"); + + var sortedImports = new ArrayList(imports); + sortedImports.sort((left, right) -> { + int groupOrder = Integer.compare(this.importGroup(left), this.importGroup(right)); + if (groupOrder != 0) { + return groupOrder; + } + return left.compareTo(right); + }); + + var rebuilt = new StringBuilder(); + rebuilt.append("\n"); + int previousGroup = -1; + for (var importName : sortedImports) { + int group = this.importGroup(importName); + if (previousGroup != -1 && previousGroup != group) { + rebuilt.append("\n"); + } + rebuilt.append("import ").append(importName).append(";\n"); + previousGroup = group; + } + + return content.substring(0, packageEnd) + rebuilt + content.substring(classDocStart); + } + + /** + * Returns import ordering group. + * + * @param importName fully-qualified import name + * @return group order + */ + private int importGroup(String importName) { + if (importName.startsWith("java.")) { + return 0; + } + if (importName.startsWith("javax.")) { + return 1; + } + if (importName.startsWith("org.eclipse.")) { + return 2; + } + if (importName.startsWith("org.omg.")) { + return 3; + } + return 4; + } + + /** + * Immutable text span. + * + * @param start start offset + * @param end end offset + */ + private record Span(int start, int end) { + } + + /** + * Immutable operation override descriptor. + * + * @param methodName method name + * @param parameterPattern regex pattern for method parameters + * @param requiredImports imports required by the generated method + * @param methodSource method source code + */ + private record OperationOverride( + String methodName, + String parameterPattern, + Set requiredImports, + String methodSource) { + } +} diff --git a/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/UMLElementDeclarations.java b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/UMLElementDeclarations.java new file mode 100644 index 000000000..b5375f166 --- /dev/null +++ b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/UMLElementDeclarations.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.tools; + +import java.util.Map; +import java.util.Set; + +/** + * Parsed UML declarations used for delegate generation. + * + * @param featuresByClass class-to-features mapping + * @param operationsByClass class-to-operations mapping + * @param deriveRulesByClass class-to-rule mapping indexed by member name + * @param attributeCommentsByClass class-to-attribute-comment mapping indexed by feature name + */ +record UMLElementDeclarations( + Map> featuresByClass, + Map> operationsByClass, + Map> deriveRulesByClass, + Map> attributeCommentsByClass) { +} diff --git a/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/UmlDeclarationSupport.java b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/UmlDeclarationSupport.java new file mode 100644 index 000000000..be157f7e2 --- /dev/null +++ b/unified/org.omg.sysml.model.tools/src/main/java/org/omg/sysml/model/tools/UmlDeclarationSupport.java @@ -0,0 +1,336 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + * + *******************************************************************************/ +package org.omg.sysml.model.tools; + +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; + +import javax.xml.parsers.DocumentBuilderFactory; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +/** + * Parses UML declarations and resolves default UML source paths for delegate generation. + */ +public class UmlDeclarationSupport { + + private final String OWNED_ATTRIBUTE = "ownedAttribute"; + private final String OWNED_OPERATION = "ownedOperation"; + private final String OWNED_RULE = "ownedRule"; + private final String SPECIFICATION = "specification"; + private final String LANGUAGE = "language"; + private final String BODY = "body"; + private final String PACKAGED_ELEMENT = "packagedElement"; + private final String UML_CLASS = "uml:Class"; + private final String XMI_TYPE = "xmi:type"; + + /** + * Parses UML class declarations and extracts declared attributes and operations per class. + * + * @param umlPath path to {@code SysML_xmi.uml} + * @return container of declaration sets indexed by class name + * @throws Exception if the UML file cannot be parsed + */ + public UMLElementDeclarations parseUmlDeclarations(Path umlPath) throws Exception { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(false); + factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); + factory.setFeature("http://xml.org/sax/features/external-general-entities", false); + factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); + factory.setXIncludeAware(false); + factory.setExpandEntityReferences(false); + Document document = factory.newDocumentBuilder().parse(umlPath.toFile()); + + Map> featuresByClass = new HashMap<>(); + Map> operationsByClass = new HashMap<>(); + Map> deriveRulesByClass = new HashMap<>(); + Map> attributeCommentsByClass = new HashMap<>(); + collectUmlDeclarations(document.getDocumentElement(), featuresByClass, operationsByClass, deriveRulesByClass, + attributeCommentsByClass); + return new UMLElementDeclarations(featuresByClass, operationsByClass, deriveRulesByClass, attributeCommentsByClass); + } + + /** + * Resolves the default UML source file location when it is not provided explicitly. + * + * @param ecoreFile reference Ecore file used to infer repository layout + * @return resolved UML file path + */ + public Path resolveDefaultUmlFile(File ecoreFile) { + Optional unifiedRoot = findAncestorNamed(ecoreFile.toPath().getParent(), "unified"); + if (unifiedRoot.isPresent()) { + Path candidate = unifiedRoot.get().resolve("org.omg.sysml.model.tools/src/main/resources/SysML_xmi.uml"); + if (Files.isRegularFile(candidate)) { + return candidate; + } + } + + List fallbackCandidates = List.of( + Path.of("src/main/resources/SysML_xmi.uml"), + Path.of("org.omg.sysml.model.tools/src/main/resources/SysML_xmi.uml"), + Path.of("unified/org.omg.sysml.model.tools/src/main/resources/SysML_xmi.uml")); + for (Path candidate : fallbackCandidates) { + if (Files.isRegularFile(candidate)) { + return candidate.toAbsolutePath(); + } + } + + throw new IllegalArgumentException("Unable to resolve default SysML_xmi.uml location."); + } + + /** + * Recursively collects UML {@code ownedAttribute} and {@code ownedOperation} declarations. + * + * @param element current DOM element + * @param featuresByClass output map of class name to declared feature names + * @param operationsByClass output map of class name to declared operation names + * @param deriveRulesByClass output map of class name to derive rules indexed by member name + * @param attributeCommentsByClass output map of class name to feature comments indexed by + * feature name + */ + private void collectUmlDeclarations( + Element element, + Map> featuresByClass, + Map> operationsByClass, + Map> deriveRulesByClass, + Map> attributeCommentsByClass) { + if (isUmlClass(element)) { + String className = element.getAttribute("name"); + if (!className.isBlank()) { + Set featureNames = featuresByClass.computeIfAbsent(className, ignored -> new LinkedHashSet<>()); + Set operationNames = operationsByClass.computeIfAbsent(className, ignored -> new LinkedHashSet<>()); + Map deriveRules = deriveRulesByClass.computeIfAbsent(className, ignored -> new HashMap<>()); + Map attributeComments = attributeCommentsByClass.computeIfAbsent(className, + ignored -> new HashMap<>()); + for (Element child : childElements(element)) { + if (OWNED_ATTRIBUTE.equals(child.getTagName())) { + String featureName = child.getAttribute("name"); + if (!featureName.isBlank()) { + featureNames.add(featureName); + findOwnedCommentBody(child).ifPresent(comment -> attributeComments.put(featureName, comment)); + } + } + if (OWNED_OPERATION.equals(child.getTagName())) { + String operationName = child.getAttribute("name"); + if (!operationName.isBlank()) { + operationNames.add(operationName); + Optional operationRule = parseOperationOwnedRule(operationName, child); + operationRule.ifPresent(rule -> deriveRules.put(operationName, rule)); + } + } + if (OWNED_RULE.equals(child.getTagName())) { + Optional deriveRule = parseDeriveRule(className, child); + deriveRule.ifPresent(rule -> deriveRules.put(rule.memberName(), rule)); + } + } + } + } + for (Element child : childElements(element)) { + collectUmlDeclarations(child, featuresByClass, operationsByClass, deriveRulesByClass, attributeCommentsByClass); + } + } + + /** + * Finds the first owned comment body text under an UML member declaration. + * + * @param element UML ownedAttribute/ownedOperation element + * @return comment body text when present + */ + private Optional findOwnedCommentBody(Element element) { + for (Element child : childElements(element)) { + if (!"ownedComment".equals(child.getTagName())) { + continue; + } + for (Element commentChild : childElements(child)) { + if (!BODY.equals(commentChild.getTagName())) { + continue; + } + String body = commentChild.getTextContent(); + if (body != null && !body.isBlank()) { + return Optional.of(body.strip()); + } + } + } + return Optional.empty(); + } + + /** + * Parses one UML ownedRule and extracts a derive rule mapped to a class member. + * + * @param className owning UML class name + * @param ruleElement UML ownedRule element + * @return derive rule when rule name starts with {@code derive} and can be mapped + */ + private Optional parseDeriveRule(String className, Element ruleElement) { + String ruleName = ruleElement.getAttribute("name"); + if (ruleName.isBlank() || !ruleName.startsWith("derive")) { + return Optional.empty(); + } + String memberName = deriveMemberName(className, ruleName); + if (memberName == null || memberName.isBlank()) { + return Optional.empty(); + } + String oclBody = findOclBody(ruleElement).orElse(""); + return Optional.of(new DeriveRule(ruleName, memberName, oclBody)); + } + + /** + * Parses operation-local owned rules and binds their OCL body to the operation name. + * + * @param operationName UML operation name + * @param operationElement UML ownedOperation element + * @return first OCL rule mapped to the operation name, when present + */ + private Optional parseOperationOwnedRule(String operationName, Element operationElement) { + for (Element child : childElements(operationElement)) { + if (!OWNED_RULE.equals(child.getTagName())) { + continue; + } + String oclBody = findOclBody(child).orElse(""); + if (oclBody.isBlank()) { + continue; + } + String ruleName = child.getAttribute("name"); + if (ruleName == null || ruleName.isBlank()) { + ruleName = "operationBody"; + } + return Optional.of(new DeriveRule(ruleName, operationName, oclBody)); + } + return Optional.empty(); + } + + /** + * Derives target member name from derive rule naming convention. + * + * @param className owning class name + * @param ruleName derive rule name + * @return target member name, or {@code null} if the name cannot be mapped + */ + private String deriveMemberName(String className, String ruleName) { + String classPrefix = "derive" + className; + if (ruleName.startsWith(classPrefix)) { + String memberSuffix = ruleName.substring(classPrefix.length()); + if (memberSuffix.isBlank()) { + return null; + } + return Character.toLowerCase(memberSuffix.charAt(0)) + memberSuffix.substring(1); + } + + // Keep derive rules that are scoped by class container but use a shortened class segment. + if (!ruleName.startsWith("derive") || ruleName.length() <= "derive".length()) { + return null; + } + String memberSuffix = ruleName.substring("derive".length()); + return Character.toLowerCase(memberSuffix.charAt(0)) + memberSuffix.substring(1); + } + + /** + * Finds OCL2.0 body text under a UML ownedRule. + * + * @param ruleElement UML ownedRule element + * @return OCL body text when available + */ + private Optional findOclBody(Element ruleElement) { + for (Element child : childElements(ruleElement)) { + if (!SPECIFICATION.equals(child.getTagName())) { + continue; + } + List languages = new ArrayList<>(); + List bodies = new ArrayList<>(); + for (Element specChild : childElements(child)) { + if (LANGUAGE.equals(specChild.getTagName())) { + String value = specChild.getTextContent(); + if (value != null) { + languages.add(value.trim()); + } + } else if (BODY.equals(specChild.getTagName())) { + String value = specChild.getTextContent(); + if (value != null) { + bodies.add(value); + } + } + } + for (int i = 0; i < bodies.size(); i++) { + String language = i < languages.size() ? languages.get(i) : ""; + if ("OCL2.0".equalsIgnoreCase(language) || language.isBlank()) { + return Optional.of(bodies.get(i).strip()); + } + } + } + return Optional.empty(); + } + + /** + * Checks whether the DOM element represents a UML class packaged element. + * + * @param element DOM element to test + * @return {@code true} when the element is a UML class declaration + */ + private boolean isUmlClass(Element element) { + return PACKAGED_ELEMENT.equals(element.getTagName()) + && UML_CLASS.equals(element.getAttribute(XMI_TYPE)); + } + + /** + * Returns direct child elements of a DOM element, preserving document order. + * + * @param parent parent DOM element + * @return list of child elements + */ + private List childElements(Element parent) { + List children = new ArrayList<>(); + for (Node node = parent.getFirstChild(); node != null; node = node.getNextSibling()) { + if (node instanceof Element child) { + children.add(child); + } + } + return children; + } + + /** + * Finds the nearest ancestor directory with the given name. + * + * @param start starting path + * @param ancestorName ancestor directory name to search for + * @return matching ancestor path when found + */ + private Optional findAncestorNamed(Path start, String ancestorName) { + Path current = start; + while (current != null) { + Path fileName = current.getFileName(); + if (fileName != null && ancestorName.equals(fileName.toString())) { + return Optional.of(current); + } + current = current.getParent(); + } + return Optional.empty(); + } +} diff --git a/unified/org.omg.sysml.model.tools/src/main/resources/SysML_xmi.uml b/unified/org.omg.sysml.model.tools/src/main/resources/SysML_xmi.uml new file mode 100644 index 000000000..33875557c --- /dev/null +++ b/unified/org.omg.sysml.model.tools/src/main/resources/SysML_xmi.uml @@ -0,0 +1,16098 @@ + + + + + The Root layer provides the syntactic foundation for KerML. + + + + + + <p>A <code>Dependency</code> is a <code>Relationship</code> that indicates that one or more <code>client</code> <code>Elements</code> require one more <code>supplier</code> <code>Elements</code> for their complete specification. In general, this means that a change to one of the <code>supplier</code> <code>Elements</code> may necessitate a change to, or re-specification of, the <code>client</code> <code>Elements</code>.</p> + +<p>Note that a <code>Dependency</code> is entirely a model-level <code>Relationship</code>, without instance-level semantics.</p> + + + + + <p>The <code>Element</code> or <code>Elements</code> dependent on the <code>supplier</code> <code>Elements</code>.</p> + + + + + + + <p>The <code>Element</code> or <code>Elements</code> on which the <code>client</code> <code>Elements</code> depend in some respect.</p> + + + + + + + + + <p>The <code>Dependencies</code> that have a certain <code>supplier</code> <code>Element</code>.</p> + + + + + + + + + <p>The <code>Dependencies</code> that have a certain <code>client</code> <code>Element</code>.</p> + + + + + + + + + + <p>A <code>Comment</code> is an <code>AnnotatingElement</code> whose <code>body</code> in some way describes its <code>annotatedElements</code>.</p> + + + + + + <p>Identification of the language of the <code>body</code> text and, optionally, the region and/or encoding. The format shall be a POSIX locale conformant to ISO/IEC 15897, with the format <code>[language[_territory][.codeset][@modifier]]</code>.</p> + + + + + + + + <p>The annotation text for the <code>Comment</code>.</p> + + + + + + + + + + <p>An <code>Annotation</code> is a Relationship between an <code>AnnotatingElement</code> and the <code>Element</code> that is annotated by that <code>AnnotatingElement</code>.</p> + + + + + <p>An <code>Annotation</code> owns its <code>annotatingElement</code> if and only if it is owned by its <code>annotatedElement</code>.</p> + + + OCL2.0 + (owningAnnotatedElement <> null) = (ownedAnnotatingElement <> null) + + + + + <p>Either the <code>ownedAnnotatingElement</code> of an <code>Annotation</code> must be non-null, or the <code>owningAnnotatingElement</code> must be non-null, but not both.</p> + + + OCL2.0 + ownedAnnotatingElement <> null xor owningAnnotatingElement <> null + + + + + <p>The <code>ownedAnnotatingElement</code> of an <code>Annotation</code> is the first <code>ownedRelatedElement</code> that is an <code>AnnotatingElement</code>, if any.</p> + + + OCL2.0 + ownedAnnotatingElement = + let ownedAnnotatingElements : Sequence(AnnotatingElement) = + ownedRelatedElement->selectByKind(AnnotatingElement) in + if ownedAnnotatingElements->isEmpty() then null + else ownedAnnotatingElements->first() + endif + + + + + <p>The <code>annotatingElement</code> of an <code>Annotation</code> is either its <code>ownedAnnotatingElement</code> or its <code>owningAnnotatingElement</code>.</p> + + + OCL2.0 + annotatingElement = + if ownedAnnotatingElement <> null then ownedAnnotatingElement + else owningAnnotatingElement + endif + + + + + + <p>The <code>AnnotatingElement</code> that annotates the <code>annotatedElement</code> of this <code>Annotation</code>. This is always either the <code>ownedAnnotatingElement</code> or the <code>owningAnnotatingElement</code>.</p> + + + + + + + + <p>The <code>Element</code> that is annotated by the <code>annotatingElement</code> of this Annotation.</p> + + + + + + + + <p>The <code>annotatedElement</code> of this <code>Annotation</code>, when it is also the <code>owningRelatedElement</code>.</p> + + + + + + + + <p>The <code>annotatingElement</code> of this <code>Annotation</code>, when it is the <code>owningRelatedElement</code>.</p> + + + + + + + <p>The <code>annotatingElement</code> of this <code>Annotation</code>, when it is an <code>ownedRelatedElement</code>.</p> + + + + + + + + + + <p>The Annotations associated with a certain <code>annotatedElement</code>.</p> + + + + + + + + <p>An <code>AnnotatingElement</code> is an <code>Element</code> that provides additional description of or metadata on some other <code>Element</code>. An <code>AnnotatingElement</code> is either attached to its <code>annotatedElements</code> by <code>Annotation</code> <code>Relationships</code>, or it implicitly annotates its <code>owningNamespace</code>.</p> + + + + + <p>If an <code>AnnotatingElement</code> has <code>annotations</code>, then its <code>annotatedElements</code> are the <code>annotatedElements</code> of all its <code>annotations</code>. Otherwise, it's single <code>annotatedElement</code> is its <code>owningNamespace</code>.</p> + + + OCL2.0 + annotatedElement = + if annotation->notEmpty() then annotation.annotatedElement + else Sequence{owningNamespace} endif + + + + + <p>The <code>ownedAnnotatingRelationships</code> of an <code>AnnotatingElement</code> are its <code>ownedRelationships</code> that are <code>Annotations</code>, for which the <code>AnnotatingElement</code> is not the <code>annotatedElement</code>.</p> + + + OCL2.0 + ownedAnnotatingRelationship = ownedRelationship-> + selectByKind(Annotation)-> + select(a | a.annotatedElement <> self) + + + + + <p>The <code>annotations</code> of an <code>AnnotatingElement</code> are its <code>owningAnnotatingRelationship</code> (if any) followed by all its <code>ownedAnnotatingRelationships</code>.</p> + + + OCL2.0 + annotation = + if owningAnnotatingRelationship = null then ownedAnnotatingRelationship + else owningAnnotatingRelationship->prepend(owningAnnotatingRelationship) + endif + + + + + + <p>The <code>Elements</code> that are annotated by this <code>AnnotatingElement</code>. If <code>annotation</code> is not empty, these are the <code>annotatedElements</code> of the <code>annotations</code>. If <code>annotation</code> is empty, then it is the <code>owningNamespace</code> of the <code>AnnotatingElement</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>AnnotatingElement</code> that are <code>Annotations</code>, for which this <code>AnnotatingElement</code> is the <code>annotatingElement</code>.</p> + + + + + + + <p>The <code>owningRelationship</code> of this <code>AnnotatingRelationship</code>, if it is an <code>Annotation</code></p> + + + + + + + <p>The <code>Annotations</code> that relate this <code>AnnotatingElement</code> to its <code>annotatedElements</code>. This includes the <code>owningAnnotatingRelationship</code> (if any) followed by all the <code>ownedAnnotatingRelationshps</code>.</p> + + + + + + + + + + <p>The AnnotatingElements that have a certain Element as their <code>annotatedElement</code>.</p> + + + + + + + + <p>A <code>TextualRepresentation</code> is an <code>AnnotatingElement</code> whose <code>body</code> represents the <code>representedElement</code> in a given <code>language</code>. The <code>representedElement</code> must be the <code>owner</code> of the <code>TextualRepresentation</code>. The named <code>language</code> can be a natural language, in which case the <code>body</code> is an informal representation, or an artificial language, in which case the <code>body</code> is expected to be a formal, machine-parsable representation.</p> + +<p>If the named <code>language</code> of a <code>TextualRepresentation</code> is machine-parsable, then the <code>body</code> text should be legal input text as defined for that <code>language</code>. The interpretation of the named language string shall be case insensitive. The following <code>language</code> names are defined to correspond to the given standard languages:</p> + +<table border="1" cellpadding="1" cellspacing="1" width="498"> + <thead> + </thead> + <tbody> + <tr> + <td style="text-align: center; width: 154px;"><code>kerml</code></td> + <td style="width: 332px;">Kernel Modeling Language</td> + </tr> + <tr> + <td style="text-align: center; width: 154px;"><code>ocl</code></td> + <td style="width: 332px;">Object Constraint Language</td> + </tr> + <tr> + <td style="text-align: center; width: 154px;"><code>alf</code></td> + <td style="width: 332px;">Action Language for fUML</td> + </tr> + </tbody> +</table> + +<p>Other specifications may define specific <code>language</code> strings, other than those shown above, to be used to indicate the use of languages from those specifications in KerML <code>TextualRepresentation</code>.</p> + +<p>If the <code>language</code> of a <code>TextualRepresentation</code> is &quot;<code>kerml</code>&quot;, then the <code>body</code> text shall be a legal representation of the <code>representedElement</code> in the KerML textual concrete syntax. A conforming tool can use such a <code>TextualRepresentation</code> <code>Annotation</code> to record the original KerML concrete syntax text from which an <code>Element</code> was parsed. In this case, it is a tool responsibility to ensure that the <code>body</code> of the <code>TextualRepresentation</code> remains correct (or the Annotation is removed) if the annotated <code>Element</code> changes other than by re-parsing the <code>body</code> text.</p> + +<p>An <code>Element</code> with a <code>TextualRepresentation</code> in a language other than KerML is essentially a semantically &quot;opaque&quot; <code>Element</code> specified in the other language. However, a conforming KerML tool may interpret such an element consistently with the specification of the named language.</p> + + + + + + <p>The natural or artifical language in which the <code>body</code> text is written.</p> + + + + + + + + + <p>The <code>Element</code> that is represented by this <code>TextualRepresentation</code>.</p> + + + + + + + + <p>The textual representation of the <code>representedElement</code> in the given <code>language</code>.</p> + + + + + + + + + + <p><code>Documentation</code> is a <code>Comment</code> that specifically documents a <code>documentedElement</code>, which must be its <code>owner</code>.</p> + + + + + + <p>The <code>Element</code> that is documented by this <code>Documentation</code>.</p> + + + + + + + + + + + + + <p>A <code>Namespace</code> is an <code>Element</code> that contains other <code>Elements</code>, known as its <code>members</code>, via <code>Membership</code> <code>Relationships</code> with those <code>Elements</code>. The <code>members</code> of a <code>Namespace</code> may be owned by the <code>Namespace</code>, aliased in the <code>Namespace</code>, or imported into the <code>Namespace</code> via <code>Import</code> <code>Relationships</code>.</p> + +<p>A <code>Namespace</code> can provide names for its <code>members</code> via the <code>memberNames</code> and <code>memberShortNames</code> specified by the <code>Memberships</code> in the <code>Namespace</code>. If a <code>Membership</code> specifies a <code>memberName</code> and/or <code>memberShortName</code>, then those are names of the corresponding <code>memberElement</code> relative to the <code>Namespace</code>. For an <code>OwningMembership</code>, the <code>ownedMemberName</code> and <code>ownedMemberShortName</code> are given by the <code>Element</code> <code>name</code> and <code>shortName</code>. Note that the same <code>Element</code> may be the <code>memberElement</code> of multiple <code>Memberships</code> in a <code>Namespace</code> (though it may be owned at most once), each of which may define a separate alias for the <code>Element</code> relative to the <code>Namespace</code>.</p> + + + + + <p>All <code>memberships</code> of a <code>Namespace</code> must be distinguishable from each other.</p> + + + OCL2.0 + membership->forAll(m1 | + membership->forAll(m2 | + m1 <> m2 implies m1.isDistinguishableFrom(m2))) + + + + + <p>The <code>members</code> of a <code>Namespace</code> are the <code>memberElements</code> of all its <code>memberships</code>.</p> + + + OCL2.0 + member = membership.memberElement + + + + + <p>The <code>ownedMembers</code> of a <code>Namespace</code> are the <code>ownedMemberElements</code> of all its <code>ownedMemberships</code> that are <code>OwningMemberships</code>. + + + OCL2.0 + ownedMember = ownedMembership->selectByKind(OwningMembership).ownedMemberElement + + + + + <p>The <code>importedMemberships</code> of a <code>Namespace</code> are derived using the <code>importedMemberships()</code> operation, with no initially <code>excluded</code> <code>Namespaces</code>.</p> + + + OCL2.0 + importedMembership = importedMemberships(Set{}) + + + + + <p>The <code>ownedImports</code> of a <code>Namespace</code> are all its <code>ownedRelationships</code> that are <code>Imports</code>.</p> + + + OCL2.0 + ownedImport = ownedRelationship->selectByKind(Import) + + + + + <p>The <code>ownedMemberships</code> of a <code>Namespace</code> are all its <code>ownedRelationships</code> that are <code>Memberships</code>.</p> + + + OCL2.0 + ownedMembership = ownedRelationship->selectByKind(Membership) + + + + + + <p>All <code>Memberships</code> in this <code>Namespace</code>, including (at least) the union of <code>ownedMemberships</code> and <code>importedMemberships</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Namespace</code> that are <code>Imports</code>, for which the <code>Namespace</code> is the <code>importOwningNamespace</code>.</p> + + + + + + + + <p>The set of all member <code>Elements</code> of this <code>Namespace</code>, which are the <code>memberElements</code> of all <code>memberships</code> of the <code>Namespace</code>.</p> + + + + + + + + <p>The owned <code>members</code> of this <code>Namespace</code>, which are the <cpde><code>ownedMemberElements</code> of the <code>ownedMemberships</code> of the <code>Namespace</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Namespace</code> that are <code>Memberships</code>, for which the <code>Namespace</code> is the <code>membershipOwningNamespace</code>.</p> + + + + + + + + <p>The <code>Memberships</code> in this <code>Namespace</code> that result from the <code>ownedImports</code> of this <code>Namespace</code>.</p> + + + + + + + + <p>Return the names of the given <code>element</code> as it is known in this <code>Namespace</code>.</p> + + + + + OCL2.0 + let elementMemberships : Sequence(Membership) = + memberships->select(memberElement = element) in +memberships.memberShortName-> + union(memberships.memberName)-> + asSet() + + + + + + + + + + + + <p>Returns this visibility of <code>mem</code> relative to this <code>Namespace</code>. If <code>mem</code> is an <code>importedMembership</code>, this is the <code>visibility</code> of its Import. Otherwise it is the <code>visibility</code> of the <code>Membership</code> itself.</p> + + + + + OCL2.0 + if importedMembership->includes(mem) then + ownedImport-> + select(importedMemberships(Set{})->includes(mem)). + first().visibility +else if memberships->includes(mem) then + mem.visibility +else + VisibilityKind::private +endif + + + + + + + + <p>If <code>includeAll = true</code>, then return all the <code>Memberships</code> of this <code>Namespace</code>. Otherwise, return only the publicly visible <code>Memberships</code> of this <code>Namespace</code>, including <code>ownedMemberships</code> that have a <code>visibility</code> of <code>public</code> and <code>Memberships</code> imported with a <code>visibility</code> of <code>public</code>. If <code>isRecursive = true</code>, also recursively include all visible <code>Memberships</code> of any <code>public</code> owned <code>Namespaces</code>, or, if <code>IncludeAll = true</code>, all <code>Memberships</code> of all owned <code>Namespaces</code>. When computing imported <code>Memberships</code>, ignore this <code>Namespace</code> and any <code>Namespaces</code> in the given <code>excluded</code> set.</p> + + + + + OCL2.0 + let visibleMemberships : OrderedSet(Membership) = + if includeAll then membershipsOfVisibility(null, excluded) + else membershipsOfVisibility(VisibilityKind::public, excluded) + endif in +if not isRecursive then visibleMemberships +else visibleMemberships->union(ownedMember-> + selectAsKind(Namespace). + select(includeAll or owningMembership.visibility = VisibilityKind::public)-> + visibleMemberships(excluded->including(self), true, includeAll)) +endif + + + + + + + + + + + + + + + + + + + + + <p>Derive the imported <code>Memberships</code> of this <code>Namespace</code> as the <code>importedMembership</code> of all <code>ownedImports</code>, excluding those Imports whose <code>importOwningNamespace</code> is in the <code>excluded</code> set, and excluding <code>Memberships</code> that have distinguisibility collisions with each other or with any <code>ownedMembership</code>.</p> + + + + + OCL2.0 + ownedImport.importedMemberships(excluded->including(self)) + + + + + + + + + + + + + + <p>If <code>visibility</code> is not null, return the <code>Memberships</code> of this <code>Namespace</code> with the given <code>visibility</code>, including <code>ownedMemberships</code> with the given <code>visibility</code> and <code>Memberships</code> imported with the given <code>visibility</code>. If <code>visibility</code> is null, return all <code>ownedMemberships</code> and imported <code>Memberships</code> regardless of visibility. When computing imported <code>Memberships</code>, ignore this <code>Namespace</code> and any <code>Namespaces</code> in the given <code>excluded</code> set.</p> + + + + OCL2.0 + ownedMembership-> + select(mem | visibility = null or mem.visibility = visibility)-> + union(ownedImport-> + select(imp | visibility = null or imp.visibility = visibility). + importedMemberships(excluded->including(self))) + + + + + + + + + + + + + + + + + + <p>Resolve the given qualified name to the named <code>Membership</code> (if any), starting with this <code>Namespace</code> as the local scope. The qualified name string must conform to the concrete syntax of the KerML textual notation. According to the KerML name resolution rules every qualified name will resolve to either a single <code>Membership</code>, or to none.</p> + + + + + OCL2.0 + let qualification : String = qualificationOf(qualifiedName) in +let name : String = unqualifiedNameOf(qualifiedName) in +if qualification = null then resolveLocal(name) +else if qualification = '$' then resolveGlobal(name) +else + let namespaceMembership : Membership = resolve(qualification) in + if namespaceMembership = null or + not namespaceMembership.memberElement.oclIsKindOf(Namespace) + then null + else + namespaceMembership.memberElement.oclAsType(Namespace). + resolveVisible(name) + endif +endif endif + + + + + + + + + + + + + <p>Resolve the given qualified name to the named <code>Membership</code> (if any) in the effective global <code>Namespace</code> that is the outermost naming scope. The qualified name string must conform to the concrete syntax of the KerML textual notation.</p> + + + + + English + No OCL + + + + + + + + + + + + + <p>Resolve a simple <code>name</code> starting with this <code>Namespace</code> as the local scope, and continuing with containing outer scopes as necessary. However, if this <code>Namespace</code> is a root <code>Namespace</code>, then the resolution is done directly in global scope.</p> + + + + + OCL2.0 + if owningNamespace = null then resolveGlobal(name) +else + let memberships : Membership = membership-> + select(memberShortName = name or memberName = name) in + if memberships->notEmpty() then memberships->first() + else owningNamspace.resolveLocal(name) + endif +endif + + + + + + + + + + + + + <p>Resolve a simple name from the visible <code>Memberships</code> of this <code>Namespace</code>.</p> + + + + + OCL2.0 + let memberships : Sequence(Membership) = + visibleMemberships(Set{}, false, false)-> + select(memberShortName = name or memberName = name) in +if memberships->isEmpty() then null +else memberships->first() +endif + + + + + + + + + + + + + <p>Return a string with valid KerML syntax representing the qualification part of a given <code>qualifiedName</code>, that is, a qualified name with all the segment names of the given name except the last. If the given <code>qualifiedName</code> has only one segment, then return null.</p> + + + + English + No OCL + + + + + + + + + + + + + + <p>Return the simple name that is the last segment name of the given <code>qualifiedName</code>. If this segment name has the form of a KerML unrestricted name, then "unescape" it by removing the surrounding single quotes and replacing all escape sequences with the specified character.</p> + + + + English + No OCL + + + + + + + + + + + + + + + <p>An <code>Import</code> is an <code>Relationship</code> between its <code>importOwningNamespace</code> and either a <code>Membership</code> (for a <code>MembershipImport</code>) or another <code>Namespace</code> (for a <code>NamespaceImport</code>), which determines a set of <code>Memberships</code> that become <code>importedMemberships</code> of the <code>importOwningNamespace</code>. If <code>isImportAll = false</code> (the default), then only public <code>Memberships</code> are considered &quot;visible&quot;. If <code>isImportAll = true</code>, then all <code>Memberships</code> are considered &quot;visible&quot;, regardless of their declared <code>visibility</code>. If <code>isRecursive = true</code>, then visible <code>Memberships</code> are also recursively imported from owned sub-<code>Namespaces</code>.</p> + + + + + + <p>A top-level <code>Import</code> (that is, one that is owned by a root <code>Namespace</code>) must have a <code>visibility</code> of <code>private</code>.</p> + + + OCL2.0 + importOwningNamespace.owner = null implies + visibility = VisibilityKind::private + + + + + + <p>The Namespace into which Memberships are imported by this Import, which must be the <code>owningRelatedElement</code> of the Import.</p> + + + + + + + + <p>The visibility level of the imported <code>members</code> from this Import relative to the <code>importOwningNamespace</code>. The default is <code>private</code>.</p> + + + + + + + <p>Whether to recursively import Memberships from visible, owned sub-Namespaces.</p> + + + + + + + <p>Whether to import memberships without regard to declared visibility.</p> + + + + + + + + <p>The effectively imported <code>Element</code> for this </code>Import</code>. For a <code>MembershipImport</code>, this is the <code>memberElement</code> of the <code>importedMembership</code>. For a <code>NamespaceImport</code>, it is the <code>importedNamespace</code>.</p> + + + + + + + <p>Returns Memberships that are to become <code>importedMemberships</code> of the <code>importOwningNamespace</code>. (The <code>excluded</code> parameter is used to handle the possibility of circular Import Relationships.)</p> + + + + + + + + + + + + + + + + <p>A <code>MembershipImport</code> is an <code>Import</code> that imports its <code>importedMembership</code> into the <code>importOwningNamespace</code>. If <code>isRecursive = true</code> and the <code>memberElement</code> of the <code>importedMembership</code> is a <code>Namespace</code>, then the equivalent of a recursive <code>NamespaceImport</code> is also performed on that <code>Namespace</code>.</p> + + + + + <p>The <code>importedElement</code> of a <code>MembershipImport</code> is the <code>memberElement</code> of its <code>importedMembership</code>.</p> + + + OCL2.0 + importedElement = importedMembership.memberElement + + + + + + <p>The <code>Membership</code> to be imported.</p> + + + + + + + + <p>Returns at least the <code>importedMembership</code>. If <code>isRecursive = true</code> and the <code>memberElement</code> of the <code>importedMembership</code> is a <code>Namespace</code>, then <code>Memberships</code> are also recursively imported from that <code>Namespace</code>.</p> + + + + + OCL2.0 + if not isRecursive or + not importedElement.oclIsKindOf(Namespace) or + excluded->includes(importedElement) +then Sequence{importedMembership} +else importedElement.oclAsType(Namespace). + visibleMemberships(excluded, true, importAll)-> + prepend(importedMembership) +endif + + + + + + + + + + + + + + + + <p>The Membership with a certain Element as its <code>memberElement</code>.</p> + + + + + + + + + <p>An Import with a certain <code>importedElement</code>.</p> + + + + + + + + <p>A <code>NamespaceImport</code> is an Import that imports <code>Memberships</code> from its <code>importedNamespace</code> into the <code>importOwningNamespace</code>. If <code> isRecursive = false</code>, then only the visible <code>Memberships</code> of the <code>importedNamespace</code> are imported. If <code> isRecursive = true</code>, then, in addition, <code>Memberships</code> are recursively imported from any <code>ownedMembers</code> of the <code>importedNamespace</code> that are <code>Namespaces</code>.</p> + + + + + <p>The <code>importedElement</code> of a <code>NamespaceImport</code> is its <code>importedNamespace</code>.</p> + + + OCL2.0 + importedElement = importedNamespace + + + + + + <p>The <code>Namespace</code> whose visible <code>Memberships</code> are imported by this <code>NamespaceImport</code>.</p> + + + + + + + + <p>Returns at least the visible <code>Memberships</code> of the <code>importedNamespace</code>. If <code>isRecursive = true</code>, then <code>Memberships</code> are also recursively imported from any <code>ownedMembers</code> of the <code>importedNamespace</code> that are themselves <code>Namespaces</code>.</p> + + + + + OCL2.0 + if excluded->includes(importedNamespace) then Sequence{} +else importedNamespace.visibleMemberships(excluded, isRecursive, isImportAll) + + + + + + + + + + + + + + + + <p>The Namespace that has a certain <code>membership</code>.</p> + + + + + + + + <p>A <code>Membership</code> is a <code>Relationship</code> between a <code>Namespace</code> and an <code>Element</code> that indicates the <code>Element</code> is a <code>member</code> of (i.e., is contained in) the Namespace. Any <code>memberNames</code> specify how the <code>memberElement</code> is identified in the <code>Namespace</code> and the <code>visibility</code> specifies whether or not the <code>memberElement</code> is publicly visible from outside the <code>Namespace</code>.</p> + +<p>If a <code>Membership</code> is an <code>OwningMembership</code>, then it owns its <code>memberElement</code>, which becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code>. Otherwise, the <code>memberNames</code> of a <code>Membership</code> are effectively aliases within the <code>membershipOwningNamespace</code> for an <code>Element</code> with a separate <code>OwningMembership</code> in the same or a different <code>Namespace</code>.</p> + +<p>&nbsp;</p> + + + + + <p>The <code>memberElementId</code> of a <code>Membership</code> is the <code>elementId</code> of its <code>memberElement</code>.</p> + + + OCL2.0 + memberElementId = memberElement.elementId + + + + + + <p>The <code>elementId</code> of the <code>memberElement</code>.</p> + + + + + + <p>The <code>Namespace</code> of which the <code>memberElement</code> becomes a <code>member</code> due to this <code>Membership</code>.</p> + + + + + + + + <p>The short name of the <code>memberElement</code> relative to the <code>membershipOwningNamespace</code>.</p> + + + + + + + + <p>The <code>Element</code> that becomes a <code>member</code> of the <code>membershipOwningNamespace</code> due to this <code>Membership</code>.</p> + + + + + + + + <p>The name of the <code>memberElement</code> relative to the <code>membershipOwningNamespace</code>.</p> + + + + + + + + + <p>Whether or not the <code>Membership</code> of the <code>memberElement</code> in the <code>membershipOwningNamespace</code> is publicly visible outside that <code>Namespace</code>.</p> + + + + + + + <p>Whether this <code>Membership</code> is distinguishable from a given <code>other</code> <code>Membership</code>. By default, this is true if this <code>Membership</code> has no <code>memberShortName</code> or <code>memberName</code>; or each of the <code>memberShortName</code> and <code>memberName</code> are different than both of those of the <code>other</code> <code>Membership</code>; or neither of the metaclasses of the <code>memberElement</code> of this <code>Membership</code> and the <code>memberElement</code> of the <code>other</code> <code>Membership</code> conform to the other. But this may be overridden in specializations of <code>Membership</code>.</p> + + + + + OCL2.0 + not (memberElement.oclKindOf(other.memberElement.oclType()) or + other.memberElement.oclKindOf(memberElement.oclType())) or +(shortMemberName = null or + (shortMemberName <> other.shortMemberName and + shortMemberName <> other.memberName)) and +(memberName = null or + (memberName <> other.shortMemberName and + memberName <> other.memberName))) + + + + + + + + + + + + + <p>The Namespace with a certain <code>importedMembership</code>.</p> + + + + + + + + + + <p>A NamespaceImport that has a certain <code>importedNamespace</code>.</p> + + + + + + + + <p>An <code>OwningMembership</code> is a <code>Membership</code> that owns its <code>memberElement</code> as a <code>ownedRelatedElement</code>. The <code>ownedMemberElement</code> becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code>.</p> + + + + + <p>The <code>ownedMemberName</code> of an <code>OwningMembership</code> is the <code>name</code> of its <code>ownedMemberElement</code>.</p> + + + OCL2.0 + ownedMemberName = ownedMemberElement.name + + + + + <p>The <code>ownedMemberShortName</code> of an <code>OwningMembership</code> is the <code>shortName</code> of its <code>ownedMemberElement</code>.</p> + + + OCL2.0 + ownedMemberShortName = ownedMemberElement.shortName + + + + + + <p>The <code>Element</code> that becomes an <code>ownedMember</code> of the <code>membershipOwningNamespace</code> due to this <code>OwningMembership</code>.</p> + + + + + + + + <p>The <code>elementId</code> of the <code>ownedMemberElement</code>.</p> + + + + + + <p>The <code>shortName</code> of the <code>ownedMemberElement</code>.</p> + + + + + + + + <p>The <code>name</code> of the <code>ownedMemberElement</code>.</p> + + + + + + + + + <p>If the <code>ownedMemberElement</code> of this <code>OwningMembership</code> has a non-null <code>qualifiedName</code>, then return the string constructed by appending to that <code>qualifiedName</code> the string <code>"/owningMembership"</code>. Otherwise, return the <code>path</code> of the <code>OwningMembership</code> as specified for a <code>Relationship</code> in general. + + + + OCL2.0 + if ownedElement.qualifiedName <> null then + ownedElement.qualifiedName + '/owningMembership' +else self.oclAsType(Relationship).path() +endif + + + + + + + + + + + <p>The Namespace the has a certain Element as a <code>member</code>.</p> + + + + + + + + <p><code>VisibilityKind</code> is an enumeration whose literals specify the visibility of a <code>Membership</code> of an <code>Element</code> in a <code>Namespace</code> outside of that <code>Namespace</code>. Note that &quot;visibility&quot; specifically restricts whether an <code>Element</code> in a <code>Namespace</code> may be referenced by name from outside the <code>Namespace</code> and only otherwise restricts access to an <code>Element</code> as provided by specific constraints in the abstract syntax (e.g., preventing the import or inheritance of private <code>Elements</code>).</p> + + + + + <p>Indicates a <code>Membership</code> is not visible outside its owning <code>Namespace</code>.</p> + + + + + <p>An intermediate level of visibility between <code>public</code> and <code>private</code>. By default, it is equivalent to <code>private</code> for the purposes of normal access to and import of <code>Elements</code> from a <code>Namespace</code>. However, other <code>Relationships</code> may be specified to include <code>Memberships</code> with <code>protected</code> visibility in the list of <code>memberships</code> for a <code>Namespace</code> (e.g., <code>Specialization</code>).</p> + + + + + + <p>Indicates that a <code>Membership</code> is publicly visible outside its owning <code>Namespace</code>.</p> + + + + + + + <p>A MembershipImport that has a certain <code>importedMembership</code>.</p> + + + + + + + + + + <p>An <code>Element</code> is a constituent of a model that is uniquely identified relative to all other <code>Elements</code>. It can have <code>Relationships</code> with other <code>Elements</code>. Some of these <code>Relationships</code> might imply ownership of other <code>Elements</code>, which means that if an <code>Element</code> is deleted from a model, then so are all the <code>Elements</code> that it owns.</p> + + + + + <p>The <code>ownedElements</code> of an <code>Element</code> are the <code>ownedRelatedElements</code> of its <code>ownedRelationships</code>.</p> + + + OCL2.0 + ownedElement = ownedRelationship.ownedRelatedElement + + + + + <p>The <code>owner</code> of an <code>Element</code> is the <code>owningRelatedElement</code> of its <code>owningRelationship</code>.</p> + + + OCL2.0 + owner = owningRelationship.owningRelatedElement + + + + + <p>If this <code>Element</code> does not have an <code>owningNamespace</code>, then its <code>qualifiedName</code> is null. If the <code>owningNamespace</code> of this Element is a root <code>Namespace</code>, then the <code>qualifiedName</code> of the <code>Element</code> is the escaped name of the <code>Element</code> (if any). If the <code>owningNamespace</code> is non-null but not a root <code>Namespace</code>, then the <code>qualifiedName</code> of this <code>Element</code> is constructed from the <code>qualifiedName</code> of the <code>owningNamespace</code> and the escaped name of the <code>Element</code>, unless the <code>qualifiedName</code> of the <code>owningNamespace</code> is null or the escaped name is null, in which case the <code>qualifiedName</code> of this <code>Element</code> is also null. Further, if the <code>owningNamespace</code> has other <code>ownedMembers</code> with the same non-null name as this <code>Element</code>, and this <code>Element</code> is not the first, then the <code>qualifiedName</code> of this <code>Element</code> is null.</p> + + + OCL2.0 + qualifiedName = + if owningNamespace = null then null + else if name <> null and + owningNamespace.ownedMember-> + select(m | m.name = name).indexOf(self) <> 1 then null + else if owningNamespace.owner = null then escapedName() + else if owningNamespace.qualifiedName = null or + escapedName() = null then null + else owningNamespace.qualifiedName + '::' + escapedName() + endif endif endif endif + + + + + <p>The <code>documentation</code> of an <code>Element</code> is its <code>ownedElements</code> that are <code>Documentation</code>.</p> + + + OCL2.0 + documentation = ownedElement->selectByKind(Documentation) + + + + + <p>The <code>ownedAnnotations</code> of an <code>Element</code> are its <code>ownedRelationships</code> that are <code>Annotations</code>, for which the <code>Element</code> is the <code>annotatedElement</code>.</p> + + + OCL2.0 + ownedAnnotation = ownedRelationship-> + selectByKind(Annotation)-> + select(a | a.annotatedElement = self) + + + + + <p>The <code>name</code> of an <code>Element</code> is given by the result of the <code>effectiveName()</code> operation.</p> + + + OCL2.0 + name = effectiveName() + + + + + <p>If an <code>Element</code> has any <code>ownedRelationships</code> for which <code>isImplied = true</code>, then the <code>Element</code> must also have <code>isImpliedIncluded = true</code>. (Note that an <code>Element</code> <em>can</em> have <code>isImplied = true</code> even if no <code>ownedRelationships</code> have <code>isImplied = true</code>, indicating the <code>Element</code> simply has no implied <code>Relationships</code>.</p> + + + OCL2.0 + ownedRelationship->exists(isImplied) implies isImpliedIncluded + + + + + <p>An <code>Element</code> <code>isLibraryElement</code> if <code>libraryNamespace()</code> is not null.</p> + + + OCL2.0 + isLibraryElement = libraryNamespace() <> null + + + + + + <p>The <code>shortName</code> of an <code>Element</code> is given by the result of the <code>effectiveShortName()</code> operation.</p> + + + OCL2.0 + shortName = effectiveShortName() + + + + + <p>The <code>owningNamespace</code> of an <code>Element</code> is the <code>membershipOwningNamspace</code> of its <code>owningMembership</code> (if any).</p> + + + OCL2.0 + owningNamespace = + if owningMembership = null then null + else owningMembership.membershipOwningNamespace + endif + + + + + <p>The <code>textualRepresentations</code> of an <code>Element</code> are its <code>ownedElements</code> that are <code>TextualRepresentations</code>.</p> + + + OCL2.0 + textualRepresentation = ownedElement->selectByKind(TextualRepresentation) + + + + + <p>The <code>owningRelationship</code> of this <code>Element</code>, if that <code>Relationship</code> is a <code>Membership</code>.</p> + + + + + + + + <p>The Relationship for which this Element is an <tt>ownedRelatedElement</tt>, if any.</p> + + + + + + + + <p>The <code>Namespace</code> that owns this <code>Element</code>, which is the <code>membershipOwningNamespace</code> of the <code>owningMembership</code> of this <code>Element</code>, if any.</p> + + + + + + + + <p>The globally unique identifier for this Element. This is intended to be set by tooling, and it must not change during the lifetime of the Element.</p> + + + + + + <p>The Relationships for which this Element is the <tt>owningRelatedElement</tt>.</p> + + + + + + + <p>The owner of this Element, derived as the <code>owningRelatedElement</code> of the <code>owningRelationship</code> of this Element, if any.</p> + + + + + + + <p>The Elements owned by this Element, derived as the <tt>ownedRelatedElements</tt> of the <tt>ownedRelationships</tt> of this Element.</p> + + + + + + + + <p>The Documentation owned by this Element.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Element</code> that are <code>Annotations</code>, for which this <code>Element</code> is the <code>annotatedElement</code>.</code> + + + + + + + <p>The <code>TextualRepresentations</code> that annotate this <code>Element</code>.</p> + + + + + + + <p>Various alternative identifiers for this Element. Generally, these will be set by tools.</p> + + + + + + + + <p>An optional alternative name for the <code>Element</code> that is intended to be shorter or in some way more succinct than its primary <code>name</code>. It may act as a modeler-specified identifier for the <code>Element</code>, though it is then the responsibility of the modeler to maintain the uniqueness of this identifier within a model or relative to some other context.</p> + + + + + + + + + <p>The declared name of this <code>Element</code>.</p> + + + + + + + + + <p>The short name to be used for this <code>Element</code> during name resolution within its <code>owningNamespace</code>. This is derived using the <code>effectiveShortName()</code> operation. By default, it is the same as the <code>declaredShortName</code>, but this is overridden for certain kinds of <code>Elements</code> to compute a <code>shortName</code> even when the <code>declaredName</code> is null.</p> + + + + + + + + <p>The name to be used for this <code>Element</code> during name resolution within its <code>owningNamespace</code>. This is derived using the <code>effectiveName()</code> operation. By default, it is the same as the <code>declaredName</code>, but this is overridden for certain kinds of <code>Elements</code> to compute a <code>name</code> even when the <code>declaredName</code> is null.</p> + + + + + + + + <p>The full ownership-qualified name of this <code>Element</code>, represented in a form that is valid according to the KerML textual concrete syntax for qualified names (including use of unrestricted name notation and escaped characters, as necessary). The <code>qualifiedName</code> is null if this <code>Element</code> has no <code>owningNamespace</code> or if there is not a complete ownership chain of named <code>Namespaces</code> from a root <code>Namespace</code> to this <code>Element</code>. If the <code>owningNamespace</code> has other <code>Elements</code> with the same name as this one, then the <code>qualifiedName</code> is null for all such <code>Elements</code> other than the first.</p> + + + + + + + + <p>Whether all necessary implied Relationships have been included in the <code>ownedRelationships</code> of this Element. This property may be true, even if there are not actually any <code>ownedRelationships</code> with <code>isImplied = true</code>, meaning that no such Relationships are actually implied for this Element. However, if it is false, then <code>ownedRelationships</code> may <em>not</em> contain any implied Relationships. That is, either <em>all</em> required implied Relationships must be included, or none of them.</p> + + + + + + + <p>Whether this Element is contained in the ownership tree of a library model.</p> + + + + + + <p>Return <code>name</code>, if that is not null, otherwise the <code>shortName</code>, if that is not null, otherwise null. If the returned value is non-null, it is returned as-is if it has the form of a basic name, or, otherwise, represented as a restricted name according to the lexical structure of the KerML textual notation (i.e., surrounded by single quote characters and with special characters escaped).</p> + + + + + + + + + + <p>Return an effective <code>shortName</code> for this <code>Element</code>. By default this is the same as its <code>declaredShortName</code>.</p> + + + + OCL2.0 + declaredShortName + + + + + + + + + + + <p>Return an effective <code>name</code> for this <code>Element</code>. By default this is the same as its <code>declaredName</code>.</p> + + + + OCL2.0 + declaredName + + + + + + + + + + + <p>By default, return the library Namespace of the <code>owningRelationship</code> of this Element, if it has one.</p> + + + + OCL2.0 + if owningRelationship <> null then owningRelationship.libraryNamespace() +else null endif + + + + + + + + + + <p>Return a unique description of the location of this <code>Element</code> in the containment structure rooted in a root <code>Namespace</code>. If the <code>Element</code> has a non-null <code>qualifiedName</code>, then return that. Otherwise, if it has an <code>owningRelationship</code>, then return the string constructed by appending to the <code>path</code> of it's <code>owningRelationship</code> the character <code>/</code> followed by the string representation of its position in the list of <code>ownedRelatedElements</code> of the <code>owningRelationship</code> (indexed starting at 1). Otherwise, return the empty string.</p> + +<p>(Note that this operation is overridden for <code>Relationships</code> to use <code>owningRelatedElement</code> when appropriate.)</p> + + + + OCL2.0 + if qualifiedName <> null then qualifiedName +else if owningRelationship <> null then + owningRelationship.path() + '/' + + owningRelationship.ownedRelatedElement->indexOf(self).toString() + -- A position index shall be converted to a decimal string representation + -- consisting of only decimal digits, with no sign, leading zeros or leading + -- or trailing whitespace. +else '' +endif endif + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>Relationship</code> is an <code>Element</code> that relates other <code>Element</code>. Some of its <code>relatedElements</code> may be owned, in which case those <code>ownedRelatedElements</code> will be deleted from a model if their <code>owningRelationship</code> is. A <code>Relationship</code> may also be owned by another <code>Element</code>, in which case the <code>ownedRelatedElements</code> of the <code>Relationship</code> are also considered to be transitively owned by the <code>owningRelatedElement</code> of the <code>Relationship</code>.</p> + +<p>The <code>relatedElements</code> of a <code>Relationship</code> are divided into <code>source</code> and <code>target</code> <code>Elements</code>. The <code>Relationship</code> is considered to be directed from the <code>source</code> to the <code>target</code> <code>Elements</code>. An undirected <code>Relationship</code> may have either all <code>source</code> or all <code>target</code> <code>Elements</code>.</p> + +<p>A &quot;relationship <code>Element</code>&quot; in the abstract syntax is generically any <code>Element</code> that is an instance of either <code>Relationship</code> or a direct or indirect specialization of <code>Relationship</code>. Any other kind of <code>Element</code> is a &quot;non-relationship <code>Element</code>&quot;. It is a convention of that non-relationship <code>Elements</code> are <em>only</em> related via reified relationship <code>Elements</code>. Any meta-associations directly between non-relationship <code>Elements</code> must be derived from underlying reified <code>Relationship</code>.</p> + + + + + <p>The <code>relatedElements</code> of a <code>Relationship</code> consist of all of its <code>source</code> <code>Elements</code> followed by all of its <code>target</code> <code>Elements</code>.</p> + + + OCL2.0 + relatedElement = source->union(target) + + + + + + <p>The Elements that are related by this Relationship, derived as the union of the <code>source</code> and <code>target</code> Elements of the Relationship.</p> + + + + + + + <p>The <code>relatedElements</code> to which this Relationship is considered to be directed.</p> + + + + + + + + <p>The <code>relatedElements</c ode> from which this Relationship is considered to be directed.</p> + + + + + + + <p>The <tt>relatedElement</tt> of this Relationship that owns the Relationship, if any.</p> + + + + + + + <p>The <tt>relatedElements</tt> of this Relationship that are owned by the Relationship.</p> + + + + + + + <p>Whether this Relationship was generated by tooling to meet semantic rules, rather than being directly created by a modeler.</p> + + + + + + + <p>Return whether this Relationship has either an <code>owningRelatedElement</code> or <code>owningRelationship</code> that is a library element.</p> + + + + OCL2.0 + if owningRelatedElement <> null then owningRelatedElement.libraryNamespace() +else if owningRelationship <> null then owningRelationship.libraryNamespace() +else null endif endif + + + + + + + + + + <p>If the <code>owningRelationship</code> of the <code>Relationship</code> is null but its <code>owningRelatedElement</code> is non-null, construct the <code>path</code> using the position of the <code>Relationship</code> in the list of <code>ownedRelationships</code> of its <code>owningRelatedElement</code>. Otherwise, return the <code>path</code> of the <code>Relationship</code> as specified for an <code>Element</code> in general.</p> + + + + OCL2.0 + if owningRelationship = null and owningRelatedElement <> null then + owningRelatedElement.path() + '/' + + owningRelatedElement.ownedRelationship->indexOf(self).toString() + -- A position index shall be converted to a decimal string representation + -- consisting of only decimal digits, with no sign, leading zeros or leading + -- or trailing whitespace. +else self.oclAsType(Element).path() +endif + + + + + + + + + + + + + + + + + + + + The Core layer provides the semantic foundation for KerML. + + + + + + + <p>A Type with a certain <code>input</code>.</p> + + + + + + + + + <p>A Type that has an EndFeatureMembership in which the <code>endFeature</code> is a <code>memberFeature</code>.</p> + + + + + + + + + + <p>A Type with a certain <code>output</code>.</p> + + + + + + + + + + <p><code>Specialization</code> is a <code>Relationship</code> between two <code>Types</code> that requires all instances of the <code>specific</code> type to also be instances of the <code>general</code> Type (i.e., the set of instances of the <code>specific</code> Type is a <em>subset</em> of those of the <code>general</code> Type, which might be the same set).</p> + + + + + <p>The <code>specific</code> <code>Type</code> of a <code>Specialization</code> cannot be a conjugated <code>Type</code>.</p> + + + OCL2.0 + not specific.isConjugated + + + + + + <p>The <code>Type</code> that is the <code>specific</code> <code>Type</code> of this <code>Specialization</code> and owns it as its <code>owningRelatedElement</code>.</p> + + + + + + + + <p>A <code>Type</code> with a superset of all instances of the <code>specific</code> <code>Type</code>, which might be the same set.</p> + + + + + + + + <p>A <code>Type</code> with a subset of all instances of the <code>general</code> <code>Type</code>, which might be the same set.</p> + + + + + + + + + <p><code>FeatureDirectionKind</code> enumerates the possible kinds of <code>direction</code> that a <code>Feature</code> may be given as a member of a <code>Type</code>.</p> + + + + + <p>Values of the <code>Feature</code> on each instance of its domain are determined externally to that instance and used internally.</p> + + + + + + <p>Values of the <code>Feature</code> on each instance are determined either as <em>in</em> or <em>out</em> directions, or both.</p> + + + + + + <p>Values of the <code>Feature</code> on each instance of its domain are determined internally to that instance and used externally.</p> + + + + + + + + <p>The Specializations with a certain <code>specific</code> Type.</p> + + + + + + + + + + <p>The Specializations with a certain <code>general<code> Type.</p> + + + + + + + + <p>A <code>Type</code> is a <code>Namespace</code> that is the most general kind of <code>Element</code> supporting the semantics of classification. A <code>Type</code> may be a <code>Classifier</code> or a <code>Feature</code>, defining conditions on what is classified by the <code>Type</code> (see also the description of <code>isSufficient</code>).</p> + + + + + <p>The <code>ownedSpecializations</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Specializations</code> whose <code>special</code> <code>Type</code> is the owning <code>Type</code>.</p> + + + OCL2.0 + ownedSpecialization = ownedRelationship->selectByKind(Specialization)-> + select(s | s.special = self) + + + + + + <p>If a <code>Type</code> has an owned <code>Multiplicity</code>, then that is its <code>multiplicity</code>. Otherwise, if the <code>Type</code> has an <code>ownedSpecialization</code>, then its <code>multiplicity</code> is the <code>multiplicity</code> of the <code>general</code> <code>Type</code> of that <code>Specialization</code>.</p> + + + OCL2.0 + multiplicity = + let ownedMultiplicities: Sequence(Multiplicity) = + ownedMember->selectByKind(Multiplicity) in + if ownedMultiplicities->isEmpty() then null + else ownedMultiplicities->first() + endif + + + + + <p>The <code>ownedFeatureMemberships</code> of a <code>Type</code> are its <code>ownedMemberships</code> that are <code>FeatureMemberships</code>.</p> + + + OCL2.0 + ownedFeatureMembership = ownedRelationship->selectByKind(FeatureMembership) + + + + + <p>The <code>ownedConjugator</code> of a <code>Type</code> is the its single <code>ownedRelationship</code> that is a <code>Conjugation</code>.</p> + + + OCL2.0 + ownedConjugator = + let ownedConjugators: Sequence(Conjugator) = + ownedRelationship->selectByKind(Conjugation) in + if ownedConjugators->isEmpty() then null + else ownedConjugators->at(1) endif + + + + + <p>The <code>outputs</code> of a <code>Type</code> are those of its <code>features</code> that have a direction of <ode>out</code> or <code>inout</code> relative to the <code>Type</code>, taking conjugation into account.</p> + + + OCL2.0 + output = feature->select(f | + let direction: FeatureDirectionKind = directionOf(f) in + direction = FeatureDirectionKind::out or + direction = FeatureDirectionKind::inout) + + + + + <p>The <code>inputs</code> of a <code>Type</code> are those of its features that have a direction of <code>in</code> or <code>inout</code> relative to the <code>Type</code>, taking conjugation into account.</p> + + + OCL2.0 + input = feature->select(f | + let direction: FeatureDirectionKind = directionOf(f) in + direction = FeatureDirectionKind::_'in' or + direction = FeatureDirectionKind::inout) + + + + + <p>The <code>inheritedMemberships<code> of a <code>Type</code> are determined by the <code>inheritedMemberships()</code> operation.</p> + + + OCL2.0 + inheritedMembership = inheritedMemberships(Set{}, Set{}, false) + + + + + <p>A <code>Type</code> must directly or indirectly specialize <code><em>Base::Anything</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::Anything') + + + + + <p>The <code>directedFeatures</code> of a <code>Type</code> are those <code>features</code> for which the <code>direction</code> is non-null.</p> + + + OCL2.0 + directedFeature = feature->select(f | directionOf(f) <> null) + + + + + <p>The <code>features</code> of a <code>Type</code> are the <code>ownedMemberFeatures</code> of its <code>featureMemberships</code>. + + + OCL2.0 + feature = featureMembership.ownedMemberFeature + + + + + <p>The <code>featureMemberships</code> of a <code>Type</code> is the union of the <code>ownedFeatureMemberships</code> and those <code>inheritedMemberships</code> that are <code>FeatureMemberships</code>.</p> + + + OCL2.0 + featureMembership = ownedFeatureMembership->union( + inheritedMembership->selectByKind(FeatureMembership)) + + + + + <p>The <code>ownedFeatures</code> of a <code>Type</code> are the <code>ownedMemberFeatures</code> of its <code>ownedFeatureMemberships</code>. + + + English + ownedFeature = ownedFeatureMembership.ownedMemberFeature + + + + + <p>The <code>differencingTypes</code> of a <code>Type</code> are the <code>differencingTypes</code> of its <code>ownedDifferencings</code>, in the same order.</p> + + + English + differencingType = ownedDifferencing.differencingType + + + + + <p>A <code>Type</code> cannot be one of its own <code>intersectingTypes</code>.</p> + + + English + intersectingType->excludes(self) + + + + + <p>A <code>Type</code> cannot be one of its own <code>differencingTypes</code>.</p> + + + English + differencingType->excludes(self) + + + + + <p>The <code>unioningTypes</code> of a <code>Type</code> are the <code>unioningTypes</code> of its <code>ownedUnionings</code>.<p> + + + OCL2.0 + unioningType = ownedUnioning.unioningType + + + + + <p>A <code>Type</code> cannot be one of its own <code>unioningTypes</code>.</p> + + + English + unioningType->excludes(self) + + + + + <p>The <code>intersectingTypes</code> of a <code>Type</code> are the <code>intersectingTypes</code> of its <code>ownedIntersectings</code>.</p> + + + OCL2.0 + intersectingType = ownedIntersecting.intersectingType + + + + + A <code>Type</code> must have at most one owned <code>Conjugation</code> <code>Relationship</code>. + + + OCL2.0 + ownedRelationship->selectByKind(Conjugation)->size() <= 1 + + + + + <p>A <code>Type</code> may have at most one <code>ownedMember</code> that is a <code>Multiplicity</code>.</p> + + + OCL2.0 + ownedMember->selectByKind(Multiplicity)->size() <= 1 + + + + + <p>The <code>endFeatures</code> of a <code>Type</code> are all its <code>features</code> for which <code>isEnd = true</code>.</p> + + + OCL2.0 + endFeature = feature->select(isEnd) + + + + + <p>The <code>ownedDisjoinings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Disjoinings</code>.</p> + + + OCL2.0 + ownedDisjoining = + ownedRelationship->selectByKind(Disjoining) + + + + + <p>The <code>ownedUnionings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Unionings</code>.</p> + + + OCL2.0 + ownedUnioning = + ownedRelationship->selectByKind(Unioning) + + + + + <p>The <code>ownedIntersectings</code> of a <code>Type</code> are the <code>ownedRelationships</code> that are <code>Intersectings</code>.</p> + + + OCL2.0 + ownedRelationship->selectByKind(Intersecting) + + + + + <p>The <code>ownedDifferencings</code> of a <code>Type</code> are its <code>ownedRelationships</code> that are <code>Differencings</code>.</p> + + + OCL2.0 + ownedDifferencing = + ownedRelationship->selectByKind(Differencing) + + + + + <p>The <code>ownedEndFeatures</code> of a <code>Type</code> are all its <code>ownedFeatures</code> for which <code>isEnd = true</code>.</p> + + + OCL2.0 + ownedEndFeature = ownedFeature->select(isEnd) + + + + + <p>The <code>inheritedFeatures</code> of this <code>Type</code> are the <code>memberFeatures</code> of the <code>inheritedMemberships</code> that are <code>FeatureMemberships</code>.</p> + + + OCL2.0 + inheritedFeature = inheritedMemberships-> + selectByKind(FeatureMembership).memberFeature + + + + + A <code>Type</code> must not have exactly one <code>ownedUnioning</code>. + + + OCL2.0 + ownedUnioning->size() <> 1 + + + + + A <code>Type</code> must not have exactly one <code>ownedIntersecting</code>. + + + OCL2.0 + ownedIntersecting->size() <> 1 + + + + + A <code>Type</code> must not have exactly one <code>ownedDifferencing</code>. + + + OCL2.0 + ownedDifferencing->size() <> 1 + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Specializations</code>, for which the <code>Type</code> is the <code>specific</code> <code>Type</code>.</p> + + + + + + + + <p>The <code>ownedMemberships</code> of this <code>Type</code> that are <code>FeatureMemberships</code>, for which the <code>Type</code> is the <code>owningType</code>. Each such <code>FeatureMembership</code> identifies an <code>ownedFeature</code> of the <code>Type</code>.</p> + + + + + + + + <p>The <code>ownedMemberFeatures</code> of the <code>featureMemberships</code> of this <code>Type</code>.</p> + + + + + + + + <p>The <code>ownedMemberFeatures</code> of the <code>ownedFeatureMemberships</code> of this <code>Type</code>.</p> + + + + + + + + <p>All <code>features</code> related to this <code>Type</code> by <code>FeatureMemberships</code> that have <code>direction</code> <code>in</code> or <code>inout</code>.</p> + + + + + + + + <p>All <code>features</code> related to this <code>Type</code> by <code>FeatureMemberships</code> that have <code>direction</code> <code>out</code> or <code>inout</code>.</p> + + + + + + + + <p>Indicates whether instances of this <code>Type</code> must also be instances of at least one of its specialized <code>Types</code>.</p> + + + + + + + + <p>All <code>Memberships</code> inherited by this <code>Type</code> via <code>Specialization</code> or <code>Conjugation</code>. These are included in the derived union for the <code>memberships</code> of the <code>Type</code>.</p> + + + + + + + + <p>All <code>features</code> of this <code>Type</code> with <code>isEnd = true</code>.</p> + + + + + + + <p>All <code>endFeatures</code> of this <code>Type</code> that are <code>ownedFeatures</code>.</p> + + + + + + + + <p>Whether all things that meet the classification conditions of this <code>Type</code> must be classified by the <code>Type</code>.</p> + +<p>(A <code>Type</code>&nbsp;gives conditions that must be met by whatever it classifies, but when <code>isSufficient</code> is false, things may meet those conditions but still not be classified by the <code>Type</code>. For example, a Type <code><em>Car</em></code> that is not sufficient could require everything it classifies to have four wheels, but not all four wheeled things would classify as cars. However, if the <code>Type</code> <code><em>Car</em></code> were sufficient, it would classify all four-wheeled things.)</p> + + + + + + + + <p>A <code>Conjugation</code> owned by this <code>Type</code> for which the <code>Type</code> is the <code>originalType</code>.</p> + + + + + + + + <p>Indicates whether this <code>Type</code> has an <code>ownedConjugator</code>.</p> + + + + + + + <p>All the <code>memberFeatures</code> of the <code>inheritedMemberships</code> of this <code>Type</code> that are <code>FeatureMemberships</code>.</p> + + + + + + + + <p>An <code>ownedMember</code> of this <code>Type</code> that is a <code>Multiplicity</code>, which constraints the cardinality of the <code>Type</code>. If there is no such <code>ownedMember</code>, then the cardinality of this <code>Type</code> is constrained by all the <code>Multiplicity</code> constraints applicable to any direct supertypes.</p> + + + + + + + <p>The interpretations of a <code>Type</code> with <code>unioningTypes</code> are asserted to be the same as those of all the <code>unioningTypes</code> together, which are the <code>Types</code> derived from the <code>unioningType</code> of the <code>ownedUnionings</code> of this <code>Type</code>. For example, a <code>Classifier</code> for people might be the union of <code>Classifiers</code> for all the sexes. Similarly, a feature for people&#39;s children might be the union of features dividing them in the same ways as people in general.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Intersectings</code>, have the <code>Type</code> as their <code>typeIntersected</code>.</p> + + + + + + + + <p>The interpretations of a <code>Type</code> with <code>intersectingTypes</code> are asserted to be those in common among the <code>intersectingTypes</code>, which are the <code>Types</code> derived from the <code>intersectingType</code> of the <code>ownedIntersectings</code> of this <code>Type</code>. For example, a <code>Classifier</code> might be an intersection of <code>Classifiers</code> for people of a particular sex and of a particular nationality. Similarly, a feature for people&#39;s children of a particular sex might be the intersection of a <code>Feature</code> for their children and a <code>Classifier</code> for people of that sex (because the interpretations of the children <code>Feature</code> that identify those of that sex are also interpretations of the Classifier for that sex).</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Unionings</code>, having the <code>Type</code> as their <code>typeUnioned</code>.</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Disjoinings</code>, for which the <code>Type</code> is the <code>typeDisjoined</code> <code>Type</code>.</p> + + + + + + + + <p>The <code>FeatureMemberships</code> for <code>features</code> of this <code>Type</code>, which include all <code>ownedFeatureMemberships</code> and those <code>inheritedMemberships</code> that are <code>FeatureMemberships</code> (but does <em>not</em> include any <code>importedMemberships</code>).</p> + + + + + + + + <p>The interpretations of a <code>Type</code> with <code>differencingTypes</code> are asserted to be those of the first of those <code>Types</code>, but not including those of the remaining <code>Types</code>. For example, a <code>Classifier</code> might be the difference of a <code>Classifier</code> for people and another for people of a particular nationality, leaving people who are not of that nationality. Similarly, a feature of people might be the difference between a feature for their children and a <code>Classifier</code> for people of a particular sex, identifying their children not of that sex (because the interpretations of the children <code>Feature</code> that identify those of that sex are also interpretations of the <code>Classifier</code> for that sex).</p> + + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Type</code> that are <code>Differencings</code>, having this <code>Type</code> as their <code>typeDifferenced</code>.</p> + + + + + + + + <p>The <code>features</code> of this <code>Type</code> that have a non-null <code>direction</code>.</p> + + + + + + + + <p>The visible <code>Memberships</code> of a <code>Type</code> include <code>inheritedMemberships</code>.</p> + + + + + OCL2.0 + let visibleMemberships : OrderedSet(Membership) = + self.oclAsType(Namespace). + visibleMemberships(excluded, isRecursive, includeAll) in +let visibleInheritedMemberships : OrderedSet(Membership) = + inheritedMemberships(excluded->including(self), Set{}, isRecursive)-> + select(includeAll or visibility = VisibilityKind::public) in +visibleMemberships->union(visibleInheritedMemberships) + + + + + + + + + + + + + + + + + + + + <p>Return the <code>Memberships</code> inheritable from supertypes of this <code>Type</code> with redefined <code>Features</code> removed. When computing inheritable <code>Memberships</code>, exclude <code>Imports</code> of <code>excludedNamespaces</code>, <code>Specializations</code> of <code>excludedTypes</code>, and, if <code>excludeImplied = true</code>, all implied <code>Specializations</code>.</p> + + + + + OCL2.0 + removeRedefinedFeatures( + inheritableMemberships(excludedNamespaces, excludedTypes, excludeImplied)) + + + + + + + + + + + + + + + + + + + + + <p>Return all the non-<code>private</code> <code>Memberships</code> of all the supertypes of this <code>Type</code>, excluding any supertypes that are this <code>Type</code> or are in the given set of <code>excludedTypes</code>. If <code>excludeImplied = true</code>, then also transitively exclude any supertypes from implied <code>Specializations</code>.</p> + + + + OCL2.0 + let excludingSelf : Set(Type) = excludedType->including(self) in +supertypes(excludeImplied)->reject(t | excludingSelf->includes(t)). + nonPrivateMemberships(excludedNamespaces, excludingSelf, excludeImplied) + + + + + + + + + + + + + + + + + + + + + + <p>Return the <code>public</code>, <code>protected</code> and inherited <code>Memberships</code> of this <code>Type</code>. When computing imported <code>Memberships</code>, exclude the given set of <code>excludedNamespaces</code>. When computing inherited <code>Memberships</code>, exclude <code>Types</code> in the given set of <code>excludedTypes</code>. If <code>excludeImplied = true</code>, then also exclude any supertypes from implied <code>Specializations</code>.</p> + + + + OCL2.0 + let publicMemberships : OrderedSet(Membership) = + membershipsOfVisibility(VisibilityKind::public, excludedNamespaces) in +let protectedMemberships : OrderedSet(Membership) = + membershipsOfVisibility(VisibilityKind::protected, excludedNamespaces) in +let inheritedMemberships : OrderedSet(Membership) = + inheritedMemberships(excludedNamespaces, excludedTypes, excludeImplied) in +publicMemberships-> + union(protectedMemberships)-> + union(inheritedMemberships) + + + + + + + + + + + + + + + + + + + + + <p>Return a subset of <code>memberships</code>, removing those <code>Memberships</code> whose <code>memberElements</code> are <code>Features</code> and for which either of the following two conditions holds:</p> + +<ol> + <li>The <code>memberElement</code> of the <code>Membership</code> is included in redefined <code>Features</code> of another <code>Membership</code> in <code>memberships</code>.</li> + <li>One of the redefined <code>Features</code> of the <code>Membership</code> is a directly <code>redefinedFeature</code> of an <code>ownedFeature</code> of this <code>Type</code>.</li> +</ol> + +<p>For this purpose, the redefined <code>Features</code> of a <code>Membership</code> whose <code>memberElement</code> is a <code>Feature</code> includes the <code>memberElement</code> and all <code>Features</code> directly or indirectly redefined by the <code>memberElement</code>.</p> + + + + OCL2.0 + let reducedMemberships : Sequence(Membership) = + memberships->reject(mem1 | + memberships->excluding(mem1)-> + exists(mem2 | allRedefinedFeaturesOf(mem2)-> + includes(mem1.memberElement))) in +let redefinedFeatures : Set(Feature) = + ownedFeature.redefinition.redefinedFeature->asSet() in +reducedMemberships->reject(mem | allRedefinedFeaturesOf(mem)-> + exists(feature | redefinedFeatures->includes(feature))) + + + + + + + + + + + + + + <p>If the <code>memberElement</code> of the given <code>membership</code> is a <code>Feature</code>, then return all <code>Features</code> directly or indirectly redefined by the <code>memberElement</code>.</p> + + + + OCL2.0 + if not membership.memberElement.oclIsType(Feature) then Set{} +else membership.memberElement.oclAsType(Feature).allRedefinedFeatures() +endif + + + + + + + + + + + <p>If the given <code>feature</code> is a <code>feature</code> of this <code>Type</code>, then return its direction relative to this <code>Type</code>, taking conjugation into account.</p> + + + + + OCL2.0 + directionOfExcluding(f, Set{}) + + + + + + + + + + + <p>Return the direction of the given <code>feature</code> relative to this <code>Type</code>, excluding a given set of <code>Types</code> from the search of supertypes of this <code>Type</code>.</p> + + + + OCL2.0 + let excludedSelf : Set(Type) = excluded->including(self) in +if feature.owningType = self then feature.direction +else + let directions : Sequence(FeatureDirectionKind) = + supertypes(false)->excluding(excludedSelf). + directionOfExcluding(feature, excludedSelf)-> + select(d | d <> null) in + if directions->isEmpty() then null + else + let direction : FeatureDirectionKind = directions->first() in + if not isConjugated then direction + else if direction = FeatureDirectionKind::_'in' then FeatureDirectionKind::out + else if direction = FeatureDirectionKind::out then FeatureDirectionKind::_'in' + else direction + endif endif endif endif +endif + + + + + + + + + + + + + + + <p>If this <code>Type</code> is conjugated, then return just the <code>originalType</code> of the <code>Conjugation</code>. Otherwise, return the <code>general</code> <code>Types</code> from all <code>ownedSpecializations</code> of this type, if <code>excludeImplied = false</code>, or all non-implied <code>ownedSpecializations</code>, if <code>excludeImplied = true</code>.</p> + + + + OCL2.0 + if isConjugated then Sequence{conjugator.originalType} +else if not excludeImplied then ownedSpecialization.general +else ownedSpecialization->reject(isImplied).general +endif +endif + + + + + + + + + + + + + <p>Return this <code>Type</code> and all <code>Types</code> that are directly or transitively supertypes of this <code>Type</code> (as determined by the <code>supertypes</code> operation with <code>excludeImplied = false</code>).</p> + + + + + OCL2.0 + OrderedSet{self}->closure(supertypes(false)) + + + + + + + + + + <p>Check whether this <code>Type</code> is a direct or indirect specialization of the given <code>supertype<code>.</p> + + + + OCL2.0 + if isConjugated then + ownedConjugator.originalType.specializes(supertype) +else + allSupertypes()->includes(supertype) +endif + + + + + + + + + + <p>Check whether this <code>Type</code> is a direct or indirect specialization of the named library <code>Type</code>. <code>libraryTypeName</code> must conform to the syntax of a KerML qualified name and must resolve to a <code>Type</code> in global scope.</p> + + + + + OCL2.0 + let mem : Membership = resolveGlobal(libraryTypeName) in +mem <> null and mem.memberElement.oclIsKindOf(Type) and +specializes(mem.memberElement.oclAsType(Type)) + + + + + + + + + + + + <p>By default, this <code>Type</code> is compatible with an <code>otherType</code> if it directly or indirectly specializes the <code>otherType</code>.</p> + + + + OCL2.0 + specializes(otherType) + + + + + + + + + + <p>Return the owned or inherited <code>Multiplicities</code> for this <code>Type<./code>.</p> + + + + OCL2.0 + if multiplicity <> null then OrderedSet{multiplicity} +else + ownedSpecialization.general->closure(t | + if t.multiplicity <> null then OrderedSet{} + else ownedSpecialization.general + )->select(multiplicity <> null).multiplicity->asOrderedSet() +endif + + + + + + + + + + + + <p>A Type that owns or inherits a FeatureMembership Relationship with the <code>feature</code>.</p> + + + + + + + + <p>A <code>FeatureMembership</code> is an <code>OwningMembership</code> between an <code>ownedMemberFeature</code> and an <code>owningType</code>. If the <code>ownedMemberFeature</code> has <code>isVariable = false</code>, then the <code>FeatureMembership</code> implies that the <code>owningType</code> is also a <code>featuringType</code> of the <code>ownedMemberFeature</code>. If the <code>ownedMemberFeature</code> has <code>isVariable = true</code>, then the <code>FeatureMembership</code> implies that the <code>ownedMemberFeature</code> is featured by the <em><code>snapshots</code></em> of the <code>owningType</code>, which must specialize the Kernel Semantic Library base class <em><code>Occurrence</code></em>.</p> + + + + + + <p>The <code>Type</code> that owns this <code>FeatureMembership</code>.</p> + + + + + + + + <p>The <code>Feature</code> that this <code>FeatureMembership</code> relates to its <code>owningType</code>, making it an <code>ownedFeature</code> of the <code>owningType</code>.</p> + + + + + + + + + + <p>The Type that inherits the <code>inheritedMembership</code>.</p> + + + + + + + + + + <p>A Type that has an <code>inheritedMembership</code> with the <code>inheritedFeature</code> as its <code>memberFeature</code>.</p> + + + + + + + + + + <p>The Conjugations with a certain Type as the <code>originalType</code>.</p> + + + + + + + + <p><code>Conjugation</code> is a <code>Relationship</code> between two types in which the <code>conjugatedType</code> inherits all the <code>Features</code> of the <code>originalType</code>, but with all <code>input</code> and <code>output</code> <code>Features</code> reversed. That is, any <code>Features</code> with a <code>direction</code> <em>in</em> relative to the <code>originalType</code> are considered to have an effective <code>direction</code> of <em>out</em> relative to the <code>conjugatedType</code> and, similarly, <code>Features</code> with <code>direction</code> <em>out</em> in the <code>originalType</code> are considered to have an effective <code>direction</code> of <em>in</em> in the <code>conjugatedType</code>. <code>Features</code> with <code>direction</code> <em>inout</em>, or with no <code>direction</code>, in the <code>originalType</code>, are inherited without change.</p> + +<p>A <code>Type</code> may participate as a <code>conjugatedType</code> in at most one <code>Conjugation</code> relationship, and such a <code>Type</code> may not also be the <code>specific</code> <code>Type</code> in any <code>Specialization</code> relationship.</p> + + + + + + <p>The <code>Type</code> to be conjugated.</p> + + + + + + + + <p>The <code>Type</code> that is the result of applying <code>Conjugation</code> to the <code>originalType</code>.</p> + + + + + + + + <p>The <code>conjugatedType</code> of this <code>Conjugation</code> that is also its <code>owningRelatedElement</code>.</p> + + + + + + + + + + <p>The Conjugation corresponding to the <code>conjugatedType</code>.</p> + + + + + + + + <p>A <code>Multiplicity</code> is a <code>Feature</code> whose co-domain is a set of natural numbers giving the allowed cardinalities of each <code>typeWithMultiplicity</code>. The <em>cardinality</em> of a <code>Type</code> is defined as follows, depending on whether the <code>Type</code> is a <code>Classifier</code> or <code>Feature</code>. +<ul> +<li><code>Classifier</code> – The number of basic instances of the <code>Classifier</code>, that is, those instances representing things, which are not instances of any subtypes of the <code>Classifier</code> that are <code>Features</code>. +<li><code>Features</code> – The number of instances with the same featuring instances. In the case of a <code>Feature</code> with a <code>Classifier</code> as its <code>featuringType</code>, this is the number of values of <code>Feature</code> for each basic instance of the <code>Classifier</code>. Note that, for non-unique <code>Features</code>, all duplicate values are included in this count.</li> +</ul> + +<p><code>Multiplicity</code> co-domains (in models) can be specified by <code>Expression</code> that might vary in their results. If the <code>typeWithMultiplicity</code> is a <code>Classifier</code>, the domain of the <code>Multiplicity</code> shall be <em><code>Base::Anything</code></em>. If the <code>typeWithMultiplicity</code> is a <code>Feature</code>, the <code>Multiplicity</code> shall have the same domain as the <code>typeWithMultiplicity</code>.</p> + + + + + <p>If the <code>owningType</code> of a <code>Multiplicity</code> is a <code>Feature</code>, then the <code>Multiplicity</code> must have the same <code>featuringTypes</code> as that <code>Feature</code>. Otherwise, it must have no <code>featuringTypes</code> (meaning that it is implicitly featured by the base <code>Classifier</code> <em><code>Anything</code></em>).</p> + + + OCL2.0 + if owningType <> null and owningType.oclIsKindOf(Feature) then + featuringType = + owningType.oclAsType(Feature).featuringType +else + featuringType->isEmpty() +endif + + + + + <p>A <code>Multiplicity</code> must directly or indirectly specialize the <code>Feature</code> <code><em>Base::naturals</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::naturals') + + + + + + + + <p>The Disjoinings that identify this Type as their <code>disjoiningType</code>.</p> + + + + + + + + <p>A <code>Disjoining</code> is a <code>Relationship</code> between <code>Types</code> asserted to have interpretations that are not shared (disjoint) between them, identified as <code>typeDisjoined</code> and <code>disjoiningType</code>. For example, a <code>Classifier</code> for mammals is disjoint from a <code>Classifier</code> for minerals, and a <code>Feature</code> for people&#39;s parents is disjoint from a <code>Feature</code> for their children.</p> + + + + + + <p><code>Type</code> asserted to be disjoint with the <code>disjoiningType</code>.</p> + + + + + + + + <p><code>Type</code> asserted to be disjoint with the <code>typeDisjoined</code>.</p> + + + + + + + + <p>A <code>typeDisjoined</code> that is also an <code>owningRelatedElement</code>.</p> + + + + + + + + + + + + + + + <p>The Disjoinings that identify this Type as their <code>typeDisjoined</code>.</p> + + + + + + + + + + + <p>A Type that owns or inherits the <code>featureMembership</code>.</p> + + + + + + + + + <p>The Differencings that identify this Type as their <code>differencingType</code>.</p> + + + + + + + + + <p>The Types that include this one among their <code>unioningTypes</code>.</p> + + + + + + + + + <p>The Unionings that identify all these Types as their <code>unioningType</code>.</p> + + + + + + + + + <p>The Types that include this one among their <code>intersectingTypes</code>.</p> + + + + + + + + + + <p>The Types that include this one among their <code>differencingTypes</code>.</p> + + + + + + + + <p><code>Differencing</code> is a <code>Relationship</code> that makes its <code>differencingType</code> one of the <code>differencingTypes</code> of its <code>typeDifferenced</code>.</p> + + + + + + <p><code>Type</code> with interpretations partly determined by <code>differencingType</code>, as described in <code>Type::differencingType</code>.</p> + + + + + + + + <p><code>Type</code> that partly determines interpretations of <code>typeDifferenced</code>, as described in <code>Type::differencingType</code>.</p> + + + + + + + + + + + <p>The Intersectings that identify this Type as their <code>intersectingType</code>.</p> + + + + + + + + <p><code>Unioning</code> is a <code>Relationship</code> that makes its <code>unioningType</code> one of the <code>unioningTypes</code> of its <code>typeUnioned</code>.</p> + + + + + + <p><code>Type</code> with interpretations partly determined by <code>unioningType</code>, as described in <code>Type::unioningType</code>.</p> + + + + + + + + <p><code>Type</code> that partly determines interpretations of <code>typeUnioned</code>, as described in <code>Type::unioningType</code>.</p> + + + + + + + + + + <p><code>Intersecting</code> is a <code>Relationship</code> that makes its <code>intersectingType</code> one of the <code>intersectingTypes</code> of its <code>typeIntersected</code>.</p> + + + + + + <p><code>Type</code> with interpretations partly determined by <code>intersectingType</code>, as described in <code>Type::intersectingType</code>.</p> + + + + + + + + <p><code>Type</code> that partly determines interpretations of <code>typeIntersected</code>, as described in <code>Type::intersectingType</code>.</p> + + + + + + + + + + + + <p>The Subclassifications with a certain <code>subclassifier</code>.</p> + + + + + + + + + <p><code>Subclassification</code> is <code>Specialization</code> in which both the <code>specific</code> and <code>general</code> <code>Types</code> are <code>Classifier</code>. This means all instances of the specific <code>Classifier</code> are also instances of the general <code>Classifier</code>.</p> + + + + + + <p>The more <code>general</code> Classifier in this <code>Subclassification</code>.</p> + + + + + + + + <p>The more specific <code>Classifier</code> in this <code>Subclassification</code>.</p> + + + + + + + + <p>The <code>Classifier</code> that owns this <code>Subclassification</code> relationship, which must also be its <code>subclassifier</code>.</p> + + + + + + + + + <p>A <code>Classifier</code> is a <code>Type</code> that classifies:</p> + +<ul> + <li>Things (in the universe) regardless of how <code>Features</code> relate them. (These are interpreted semantically as sequences of exactly one thing.)</li> + <li>How the above things are related by <code>Features.</code> (These are interpreted semantically as sequences of multiple things, such that the last thing in the sequence is also classified by the <code>Classifier</code>. Note that this means that a <code>Classifier</code> modeled as specializing a <code>Feature</code> cannot classify anything.)</li> +</ul> + + + + + + <p>The <code>ownedSubclassifications</code> of a <code>Classifier</code> are its <code>ownedSpecializations</code> that are <code>Subclassifications</code>.</p> + + + OCL2.0 + ownedSubclassification = + ownedSpecialization->selectByKind(Subclassification) + + + + + <p>If a <code>Classifier</code> has a <code>multiplicity</code>, then the <code>multiplicity</code> must have no <code>featuringTypes</code> (meaning that its domain is implicitly <em>Base::Anything</em>).</p> + + + OCL2.0 + multiplicity <> null implies multiplicity.featuringType->isEmpty() + + + + + + <p>The <code>ownedSpecializations</code> of this <code>Classifier</code> that are <code>Subclassifications</code>, for which this <code>Classifier</code> is the <code>subclassifier</code>.</p> + + + + + + + + + + <p>The Subclassifications with a certain <code>superclassifier</code>.</p> + + + + + + + + + + <p><code>Redefinition</code> is a kind of <code>Subsetting</code> that requires the <code>redefinedFeature</code> and the <code>redefiningFeature</code> to have the same values (on each instance of the domain of the <code>redefiningFeature</code>). This means any restrictions on the <code>redefiningFeature</code>, such as <code>type</code> or <code>multiplicity</code>, also apply to the <code>redefinedFeature</code> (on each instance of the domain of the <code>redefiningFeature</code>), and vice versa. The <code>redefinedFeature</code> might have values for instances of the domain of the <code>redefiningFeature</code>, but only as instances of the domain of the <code>redefinedFeature</code> that happen to also be instances of the domain of the <code>redefiningFeature</code>. This is supported by the constraints inherited from <code>Subsetting</code> on the domains of the <code>redefiningFeature</code> and <code>redefinedFeature</code>. However, these constraints are narrowed for <code>Redefinition</code> to require the <code>owningTypes</code> of the <code>redefiningFeature</code> and <code>redefinedFeature</code> to be different and the <code>redefinedFeature</code> to not be inherited into the <code>owningNamespace</code> of the <code>redefiningFeature</code>.This enables the <code>redefiningFeature</code> to have the same name as the <code>redefinedFeature</code>, if desired.</p> + + + + + <p>The <code>redefiningFeature</code> of a <code>Redefinition</code> must have at least one <code>featuringType</code> that is not also a <code>featuringType</code> of the <code>redefinedFeature</code>.</p> + + + OCL2.0 + let anythingType: Type = + redefiningFeature.resolveGlobal('Base::Anything').modelElement.oclAsType(Type) in +-- Including "Anything" accounts for implicit featuringType of Features +-- with no explicit featuringType. +let redefiningFeaturingTypes: Set(Type) = + if redefiningFeature.isVariable then Set{redefiningFeature.owningType} + else redefiningFeature.featuringTypes->asSet()->including(anythingType) + endif in +let redefinedFeaturingTypes: Set(Type) = + if redefinedFeature.isVariable then Set{redefinedFeature.owningType} + else redefinedFeature.featuringTypes->asSet()->including(anythingType) + endif in +redefiningFeaturingTypes <> redefinedFeaturingType + + + + + <p>If the <code>redefinedFeature</code> of a <code>Redefinition</code> has a direction of <code>in</code> or <code>out</code> (relative to any <code>featuringType</code> of the <code>redefiningFeature</code> or the <code>owningType</code>, if the <code>redefiningFeature</code> has <code>isVariable = true</code>), then the <code>redefiningFeature</code> must have the same <code>direction</code>. If the <code>redefinedFeature</code> has a direction of <code>inout</code>, then the <code>redefiningFeature</code> must have a non-null <code>direction</code>. (Note: the direction of the <code>redefinedFeature</code> relative to a <code>featuringType</code> of the <code>redefiningFeature</code> is the direction it would have if it had been inherited and not redefined.)</p> + + + OCL2.0 + let featuringTypes : Sequence(Type) = + if redefiningFeature.isVariable then Sequence{redefiningFeature.owningType} + else redefiningFeature.featuringType + endif in +featuringTypes->forAll(t | + let direction : FeatureDirectionKind = t.directionOf(redefinedFeature) in + ((direction = FeatureDirectionKind::_'in' or + direction = FeatureDirectionKind::out) implies + redefiningFeature.direction = direction) + and + (direction = FeatureDirectionKind::inout implies + redefiningFeature.direction <> null)) + + + + + <p>If the redefinedFeature of a Redefinition has isEnd = true, then the redefiningFeature must have isEnd = true.</p> + + + OCL2.0 + redefinedFeature.isEnd implies redefiningFeature.isEnd + + + + + + <p>The <code>Feature</code> that is redefining the <code>redefinedFeature</code> of this <code>Redefinition</code>.</p> + + + + + + + + <p>The <code>Feature</code> that is redefined by the <code>redefiningFeature</code> of this <code>Redefinition</code>.</p> + + + + + + + + + + <p>The FeatureTyping relating this Type to a Feature.</p> + + + + + + + + + <p>The Features for which a certain Type is a <code>type</code>.</p> + + + + + + + + + <p>The FeatureTypings for which a certain Feature is the <code>typedFeature</code>.</p> + + + + + + + + + + <p>The Feature that owns this Redefinition relationship, which must also be its <code>redefiningFeature</code>.</p> + + + + + + + + + <p>The Redefinitions with a certain Feature as the <code>redefinedFeature</code>.</p> + + + + + + + + + <p>The Subsettings with a certain Feature as the <code>subsettingFeature</code>.</p> + + + + + + + + <p>A <code>Feature</code> is a <code>Type</code> that classifies relations between multiple things (in the universe). The domain of the relation is the intersection of the <code>featuringTypes</code> of the <code>Feature</code>. (The domain of a <code>Feature</code> with no <code>featuringTyps</code> is implicitly the most general <code>Type</code> <em><code>Base::Anything</code></em> from the Kernel Semantic Library.) The co-domain of the relation is the intersection of the <code>types</code> of the <code>Feature</code>. + +<p>In the simplest cases, the <code>featuringTypes</code> and <code>types</code> are <code>Classifiers</code> and the <code>Feature</code> relates two things, one from the domain and one from the range. Examples include cars paired with wheels, people paired with other people, and cars paired with numbers representing the car length.</p> + +<p>Since <code>Features</code> are <code>Types</code>, their <code>featuringTypes</code> and <code>types</code> can be <code>Features</code>. In this case, the <code>Feature</code> effectively classifies relations between relations, which can be interpreted as the sequence of things related by the domain <code>Feature</code> concatenated with the sequence of things related by the co-domain <code>Feature</code>.</p> + +<p>The <em>values</em> of a <code>Feature</code> for a given instance of its domain are all the instances of its co-domain that are related to that domain instance by the <code>Feature</code>. The values of a <code>Feature</code> with <code>chainingFeatures</code> are the same as values of the last <code>Feature</code> in the chain, which can be found by starting with values of the first <code>Feature</code>, then using those values as domain instances to obtain valus of the second <code>Feature</code>, and so on, to values of the last <code>Feature</code>.</p> + + + + + <p>The <code>ownedRedefinitions</code> of a <code>Feature</code> are its <code>ownedSubsettings</code> that are <code>Redefinitions</code>.</p> + + + OCL2.0 + ownedRedefinition = ownedSubsetting->selectByKind(Redefinition) + + + + + <p>The <code>ownedTypeFeaturings</code> of a <code>Feature</code> are its <code>ownedRelationships</code> that are <code>TypeFeaturings</code> and which have the <code>Feature</code> as their <code>featureOfType</code>.</p> + + + OCL2.0 + ownedTypeFeaturing = ownedRelationship->selectByKind(TypeFeaturing)-> + select(tf | tf.featureOfType = self) + + + + + <p>The <code>ownedSubsettings</code> of a <code>Feature</code> are its <code>ownedSpecializations</code> that are <code>Subsettings</code>.</p> + + + OCL2.0 + ownedSubsetting = ownedSpecialization->selectByKind(Subsetting) + + + + + <p>The <code>ownedTypings</code> of a <code>Feature</code> are its <code>ownedSpecializations</code> that are <code>FeatureTypings</code>.</p> + + + OCL2.0 + ownedTyping = ownedGeneralization->selectByKind(FeatureTyping) + + + + + <p>The <code>types</code> of a <code>Feature</code> are the union of the <code>types</code> of its <code>typings</code> and the <code>types</code> of the <code>Features</code> it subsets, with all redundant supertypes removed. If the <code>Feature</code> has <code>chainingFeatures</code>, then the union also includes the types of the last <code>chainingFeature</code>.</p> + + + OCL2.0 + type = + let types : OrderedSet(Types) = OrderedSet{self}-> + -- Note: The closure operation automatically handles circular relationships. + closure(typingFeatures()).typing.type->asOrderedSet() in + types->reject(t1 | types->exist(t2 | t2 <> t1 and t2.specializes(t1))) + + + + + <p>If a <code>Feature</code> has a <code>multiplicity</code>, then the <code>featuringTypes</code> of the <code>multiplicity</code> must be the same as those of the <code>Feature</code> itself.</p> + + + OCL2.0 + multiplicity <> null implies multiplicity.featuringType = featuringType + + + + + <p>A <code>Feature</code> must directly or indirectly specialize <code><em>Base::things</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::things') + + + + + <p>A <code>Feature</code> cannot be one of its own <code>chainingFeatures</code>.</p> + + + English + chainingFeature->excludes(self) + + + + + <p>The <code>ownedFeatureChainings</code> of a <code>Feature</code> are the <code>ownedRelationships</code> that are <code>FeatureChainings</code>.</p> + + + OCL2.0 + ownedFeatureChaining = ownedRelationship->selectByKind(FeatureChaining) + + + + + <p>The <code>chainingFeatures</code> of a <code>Feature</code> are the <code>chainingFeatures</code> of its <code>ownedFeatureChainings</code>.</p> + + + OCL2.0 + chainingFeature = ownedFeatureChaining.chainingFeature + + + + + A <code>Feature</code> must have either no <code>chainingFeatures</code> or more than one. + + + OCL2.0 + chainingFeature->size() <> 1 + + + + + <p>If a <code>Feature</code> has <code>isEnd = true</code> and an <code>owningType</code> that is not empty, then, for each direct supertype of its <code>owningType</code>, it must redefine the <code>endFeature</code> at the same position, if any.</p> + + + OCL2.0 + isEnd and owningType <> null implies + let i : Integer = + owningType.ownedEndFeature->indexOf(self) in + owningType.ownedSpecialization.general-> + forAll(supertype | + supertype.endFeature->size() >= i implies + redefines(supertype.endFeature->at(i)) + + + + + <p>If a <code>Feature</code> has a <code>FeatureValue</code>, no <code>ownedSpecializations</code> that are not implied, and is not directed, then it must specialize the <code>result</code> of the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code>.</p> + + + OCL2.0 + direction = null and +ownedSpecializations->forAll(isImplied) implies + ownedMembership-> + selectByKind(FeatureValue)-> + forAll(fv | specializes(fv.value.result)) + + + + + <p>If a <code>Feature</code> has <code>isEnd = true</code> and an <code>owningType</code> that is an <code>Association</code> or a <code>Connector</code>, then it must directly or indirectly specialize <code><em>Links::Link::participant</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + isEnd and owningType <> null and +(owningType.oclIsKindOf(Association) or + owningType.oclIsKindOf(Connector)) implies + specializesFromLibrary('Links::Link::participant') + + + + + <p>A composite <code>Feature</code> typed by a <code>Structure</code>, and whose <code>ownedType</code> is a <code>Structure</code> or another <code>Feature</code> typed by a <code>Structure</code> must directly or indirectly specialize <em><code>Objects::Object::subobjects</code></em>. + + + OCL2.0 + isComposite and +ownedTyping.type->includes(oclIsKindOf(Structure)) and +owningType <> null and +(owningType.oclIsKindOf(Structure) or + owningType.type->includes(oclIsKindOf(Structure))) implies + specializesFromLibrary('Occurrence::Occurrence::suboccurrences') + + + + + <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>Class</code>, then it must directly or indirectly specialize <code><em>Occurrences::occurrences</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + ownedTyping.type->exists(selectByKind(Class)) implies + specializesFromLibrary('Occurrences::occurrences') + + + + + <p>A composite <code>Feature</code> that has an <code>ownedTyping</code> relationship to a <code>Class</code>, and whose <code>ownedType</code> is a <code>Class</code> or another <code>Feature</code> typed by a <code>Class</code>, must directly or indirectly specialize <em><code>Occurrences::Occurrence::suboccurrences</code></em>. + + + OCL2.0 + isComposite and +ownedTyping.type->includes(oclIsKindOf(Class)) and +owningType <> null and +(owningType.oclIsKindOf(Class) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKindOf(Class))) implies + specializesFromLibrary('Occurrence::Occurrence::suboccurrences') + + + + + <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>DataType</code>, then it must directly or indirectly specialize <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + ownedTyping.type->exists(selectByKind(DataType)) implies + specializesFromLibrary('Base::dataValues') + + + + + <p>If a <code>Feature</code> is the first <code>ownedFeature</code> of a first or second <code>FlowEnd</code>, then it must directly or indirectly specialize either <em><code>Transfers::Transfer::source::sourceOutput</code></em> or <em><code>Transfers::Transfer::target::targetInput</code></em>, respectively, from the Kernel Semantic Library.</p> + + + OCL2.0 + owningType <> null and +owningType.oclIsKindOf(FlowEnd) and +owningType.ownedFeature->at(1) = self implies + let flowType : Type = owningType.owningType in + flowType <> null implies + let i : Integer = + flowType.ownedFeature.indexOf(owningType) in + (i = 1 implies + redefinesFromLibrary('Transfers::Transfer::source::sourceOutput')) and + (i = 2 implies + redefinesFromLibrary('Transfers::Transfer::source::targetInput')) + + + + + + <p>If a <code>Feature</code> is a <code>parameter</code> of an <code>owningType</code> that is a <code>Behavior</code> or <code>Step</code>, but <em>not</em> +</p> +<ul> + <li>A <code>result</code> <code>parameter</code></li> + <li>A <code>parameter</code> of an <code>InvocationExpression</code>, with at least one non-implied <code>ownedRedefinition</code></li> +</ul> +<p>then, for each direct supertype of its <code>owningType</code> that is also a <code>Behavior</code> or <code>Step</code>, it must redefine the <code>parameter</code> at the same position, if any.</p> + + + OCL2.0 + owningType <> null and +not owningFeatureMembership. + oclIsKindOf(ReturnParameterMembership) and +(owningType.oclIsKindOf(Behavior) or + owningType.oclIsKindOf(Step) and + (owningType.oclIsKindOf(InvocationExpression) implies + not ownedRedefinition->exists(not isImplied)) +implies + let i : Integer = + owningType.ownedFeature->select(direction <> null)-> + reject(owningFeatureMembership. + oclIsKindOf(ReturnParameterMembership))-> + indexOf(self) in + owningType.ownedSpecialization.general-> + forAll(supertype | + let ownedParameters : Sequence(Feature) = + supertype.ownedFeature->select(direction <> null)-> + reject(owningFeatureMembership. + oclIsKindOf(ReturnParameterMembership)) in + ownedParameters->size() >= i implies + redefines(ownedParameters->at(i)) + + + + + <p>If a <code>Feature</code> has an <code>ownedTyping</code> relationship to a <code>Structure</code>, then it must directly or indirectly specialize <code><em>Objects::objects</em></code> from the Kernel Semantics Library.</p> + + + OCL2.0 + ownedTyping.type->exists(selectByKind(Structure)) implies + specializesFromLibary('Objects::objects') + + + + + <p>If a <code>Feature</code> is a <code>result</code> <code>parameter</code> of an <code>owningType</code> that is a <code>Function</code> or <code>Expression</code>, then, for each direct supertype of its <code>owningType</code> that is also a <code>Function</code> or <code>Expression</code>, it must redefine the <code>result</code> <code>parameter</code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(Function) and + self = owningType.oclAsType(Function).result or + owningType.oclIsKindOf(Expression) and + self = owningType.oclAsType(Expression).result) implies + owningType.ownedSpecialization.general-> + select(oclIsKindOf(Function) or oclIsKindOf(Expression))-> + forAll(supertype | + redefines( + if superType.oclIsKindOf(Function) then + superType.oclAsType(Function).result + else + superType.oclAsType(Expression).result + endif) + + + + + <p>The <code>ownedFeatureInvertings</code> of a <code>Feature</code> are its <code>ownedRelationships</code> that are <code>FeatureInvertings</code>.</p> + + + OCL2.0 + ownedFeatureInverting = ownedRelationship->selectByKind(FeatureInverting)-> + select(fi | fi.featureInverted = self) + + + + + The <code>featuringTypes</code> of a <code>Feature</code> include the <code>featuringTypes</code> of all the <code>typeFeaturings</code> of the <code>Feature</code>. If the <code>Feature</code> has <code>chainingFeatures</code>, then its <code>featuringTypes</code> also include the <code>featuringTypes</code> of the first <code>chainingFeature</code>. + + + OCL2.0 + featuringType = + let featuringTypes : OrderedSet(Type) = + featuring.type->asOrderedSet() in + if chainingFeature->isEmpty() then featuringTypes + else + featuringTypes-> + union(chainingFeature->first().featuringType)-> + asOrderedSet() + endif + + + + + <p>The <code>ownedReferenceSubsetting</code> of a <code>Feature</code> is the first +<code>ownedSubsetting</code> that is a <code>ReferenceSubsetting</code> (if any).</p> + + + OCL2.0 + ownedReferenceSubsetting = + let referenceSubsettings : OrderedSet(ReferenceSubsetting) = + ownedSubsetting->selectByKind(ReferenceSubsetting) in + if referenceSubsettings->isEmpty() then null + else referenceSubsettings->first() endif + + + + + <p>A <code>Feature</code> must have at most one <code>ownedSubsetting</code> that is an <code>ReferenceSubsetting</code>.</p> + + + OCL2.0 + ownedSubsetting->selectByKind(ReferenceSubsetting)->size() <= 1 + + + + + <p>Each <code>chainingFeature</code> (other than the first) must be featured within the previous <code>chainingFeature</code>.</p> + + + OCL2.0 + Sequence{2..chainingFeature->size()}->forAll(i | + chainingFeature->at(i).isFeaturedWithin(chainingFeature->at(i-1))) + + + + + + <p>If a <code>Feature</code> has <code>isPortion = true</code>, an <code>ownedTyping </code> relationship to a <code>Class</code>, and an <code>owningType</code> that is a <code>Class</code> or another <code>Feature</code> typed by a <code>Class</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::portions</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isPortion and +ownedTyping.type->includes(oclIsKindOf(Class)) and +owningType <> null and +(owningType.oclIsKindOf(Class) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKindOf(Class))) implies + specializesFromLibrary('Occurrence::Occurrence::portions') + + + + + <p>If a <code>Feature</code> has no <code>chainingFeatures</code>, then its <code>featureTarget</code> is the <code>Feature</code> itself, otherwise the <code>featureTarget</code> is the last of the <code>chainingFeatures</code>.</p> + + + OCL2.0 + featureTarget = if chainingFeature->isEmpty() then self else chainingFeature->last() endif + + + + + <p>The <code>ownedCrossSubsetting</code> of a <code>Feature</code> is the <code>ownedSubsetting</code> that is a <code>CrossSubsetting</code>, if any.</p> + + + OCL2.0 + ownedCrossSubsetting = + let crossSubsettings: Sequence(CrossSubsetting) = + ownedSubsetting->selectByKind(CrossSubsetting) in + if crossSubsettings->isEmpty() then null + else crossSubsettings->first() + endif + + + + + <p>If a <code>Feature</code> has <code>isEnd = true</code>, then it must have multiplicity <code>1..1</code>.</p> + + + OCL2.0 + isEnd implies + multiplicities().allSuperTypes()->flatten()-> + selectByKind(MultiplicityRange)->exists(hasBounds(1,1)) + + + + + <p>The <code>crossFeature</code> of a <code>Feature</code> must have the same <code>types</code> as the <code>Feature</code>.</p> + + + OCL2.0 + crossFeature <> null implies + crossFeature.type->asSet() = type->asSet() + + + + + <p>A <code>Feature</code> must have at most one <code>ownedSubsetting</code> that is a <code>CrossSubsetting</code>.</p> + + + OCL2.0 + ownedSubsetting->selectByKind(CrossSubsetting)->size() <= 1 + + + + + <p>The <code>crossFeature</code> of a <code>Feature</code> is the second <code>chainingFeature</code> of the <code>crossedFeature</code> of the <code>ownedCrossSubsetting</code> of the <code>Feature</code>, if any.</p> + + + OCL2.0 + crossFeature = + if ownedCrossSubsetting = null then null + else + let chainingFeatures: Sequence(Feature) = + ownedCrossSubsetting.crossedFeature.chainingFeature in + if chainingFeatures->size() < 2 then null + else chainingFeatures->at(2) + endif + + + + + <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then it must directly or indirectly specialize the <code>types</code> of its owning end <code>Feature</code>.</p> + + + OCL2.0 + isOwnedCrossFeature() implies + owner.oclAsType(Feature).type->forAll(t | self.specializes(t)) + + + + + <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then, for any end <code>Feature</code> that is redefined by the owning end <code>Feature</code> of this <code>Feature</code>, this <code>Feature</code> must subset the <code>crossFeature</code> of the redefined end <code>Feature</code>, if this exists.</p> + + + OCL2.0 + isOwnedCrossFeature() implies + ownedSubsetting.subsettedFeature->includesAll( + owner.oclAsType(Feature).ownedRedefinition.redefinedFeature-> + select(crossFeature <> null).crossFeature) + + + + + <p>If this <code>Feature</code> has a <code>crossFeature</code>, then, for any <code>Feature</code> that is redefined by this <code>Feature</code>, the <code>crossFeature</code> must specialize the <code>crossFeature</code> of the redefined end <code>Feature</code>, if this exists.</p> + + + OCL2.0 + crossFeature <> null implies + ownedRedefinition.redefinedFeature.crossFeature-> + forAll(f | f <> null implies crossFeature.specializes(f)) + + + + + <p>If this <code>Feature</code> has <code>isEnd = true</code> and <code>ownedCrossFeature</code> returns a non-null value, then the <code>crossFeature</code> of the <code>Feature</code> must be the <code>Feature</code> returned from <code>ownedCrossFeature</code> (which implies that this <code>Feature</code> has an appropriate <code>ownedCrossSubsetting</code> to realize this).</p> + + + OCL2.0 + ownedCrossFeature() <> null implies + crossFeature = ownedCrossFeature() + + + + + <p>If this <code>Feature</code> is the <code>ownedCrossFeature</code> of an end <code>Feature</code>, then it must have <code>featuringTypes</code> consistent with the crossing from other end <code>Features</code> of the <code>owningType</code> of its end <code>Feature</code>.</p> + + + OCL2.0 + isOwnedCrossFeature() implies + let otherEnds : OrderedSet(Feature) = + owner.oclAsType(Feature).owningType.endFeature->excluding(self) in + if (otherEnds->size() = 1) then + featuringType = otherEnds->first().type + else + featuringType->size() = 1 and + featuringType->first().isCartesianProduct() and + featuringType->first().asCartesianProduct() = otherEnds.type and + featuringType->first().allSupertypes()->includesAll( + owner.oclAsType(Feature).ownedRedefinition.redefinedFeature-> + select(crossFeature() <> null).crossFeature().featuringType) + endif + + + + + OCL2.0 + isPortion implies not isVariable + + + + + <p>A <code>Feature</code> with <code>isEnd = true</code> must have no direction.</p> + + + OCL2.0 + isEnd implied direction = null + + + + + <p>If a <code>Feature</code> is owned via a <code>FeatureMembership</code>, then it must have a <code>featuringType</code> for which the operation <code>isFeaturingType</code> returns true.</p> + + + OCL2.0 + owningFeatureMembership <> null implies + featuringTypes->exists(t | isFeaturingType(t)) + + + + + <p>A <code>Feature</code> with <code>isConstant = true</code> must have <code>isVariable = true</code>. + + + OCL2.0 + isConstant implies isVariable + + + + + <p>A <code>Feature</code> with <code>isVariable = true</code> must have an <code>owningType</code> that directly or indirectly specializes the <code>Class</code> <em><code>Occurrences::Occurrence</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isVariable implies + owningType <> null and + owningType.specializes('Occurrences::Occurrence') + + + + + <p>A <code>Feature</code> with <code>isEnd = true</code> must have all of <code>isDerived = false</code>, <code>isAbstract = false</code>, <code>isComposite = false</code>, and <code>isPortion = false</code>.</p> + + + OCL2.0 + isEnd implies not (isDerived or isAbstract or isComposite or isPortion) + + + + + <p>A <code>Feature</code> with <code>isEnd = true</code> and <code>isVariable = true</code> must have <code>isConstant = true</code>.</p> + + + OCL2.0 + isEnd and isVariable implies isConstant + + + + + + <p>The <code>Type</code> that is the <code>owningType</code> of the <code>owningFeatureMembership</code> of this <code>Feature</code>.</p> + + + + + + + <p>Whether or not values for this <code>Feature</code> must have no duplicates or not.</p> + + + + + + + + <p>Whether an order exists for the values of this <code>Feature</code> or not.</p> + + + + + + + <p><code>Types</code> that restrict the values of this <code>Feature</code>, such that the values must be instances of all the <code>types</code>. The types of a <code>Feature</code> are derived from its <code>typings</code> and the <code>types</code> of its <code>subsettings</code>. If the <code>Feature</code> is chained, then the <code>types</code> of the last <code>Feature</code> in the chain are also <code>types</code> of the chained <code>Feature</code>.</p> + + + + + + + + <p>The <code>ownedSubsettings</code> of this <code>Feature</code> that are <code>Redefinitions</code>, for which the <code>Feature</code> is the <code>redefiningFeature</code>.</p> + + + + + + + + + <p>The <code>ownedSpecializations</code> of this <code>Feature</code> that are <code>Subsettings</code>, for which the <code>Feature</code> is the <code>subsettingFeature</code>.</p> + + + + + + + + <p>The <code>FeatureMembership</code> that owns this <code>Feature</code> as an <code>ownedMemberFeature</code>, determining its <code>owningType</code>.</p> + + + + + + + <p>Whether the <code>Feature</code> is a composite <code>feature</code> of its <code>featuringType</code>. If so, the values of the <code>Feature</code> cannot exist after its featuring instance no longer does and cannot be values of another composite feature that is not on the same featuring instance.</p> + + + + + + + + <p>Whether or not this <code>Feature</code> is an end <code>Feature</code>. An end <code>Feature</code> always has multiplicity 1, mapping each of its domain instances to a single co-domain instance. However, it may have a <code>crossFeature</code>, in which case values of the <code>crossFeature</code> must be the same as those found by navigation across instances of the <code>owningType</code> from values of other end <code>Features</code> to values of this Feature. If the <code>owningType</code> has <em>n</em> end <code>Features</code>, then the multiplicity, ordering, and uniqueness declared for the <code>crossFeature</code> of any one of these end <code>Features</code> constrains the cardinality, ordering, and uniqueness of the collection of values of that <code>Feature</code> reached by navigation when the values of the other <em>n-1</em> end <code>Features</code> are held fixed.</p> + + + + + + + + <p>The <code>Type</code> that is related to this <code>Feature</code> by an <code>EndFeatureMembership</code> in which the <code>Feature</code> is an <code>ownedMemberFeature</code>.</p> + + + + + + + <p>The <code>ownedSpecializations</code> of this <code>Feature</code> that are <code>FeatureTypings</code>, for which the <code>Feature</code> is the <code>typedFeature</code>.</p> + + + + + + + <p><code>Types</code> that feature this <code>Feature</code>, such that any instance in the domain of the <code>Feature</code> must be classified by all of these <code>Types</code>, including at least all the <code>featuringTypes</code> of its <code>typeFeaturings</code>. If the <code>Feature</code> is chained, then the <code>featuringTypes</code> of the first <code>Feature</code> in the chain are also <code>featuringTypes</code> of the chained <code>Feature</code>.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>TypeFeaturings</code> and for which the <code>Feature</code> is the <code>featureOfType</code>.</p> + + + + + + + <p>Whether the values of this <code>Feature</code> can always be computed from the values of other <code>Features</code>.</p> + + + + + + + + <p>The <code>Feature</code> that are chained together to determine the values of this <code>Feature</code>, derived from the <code>chainingFeatures</code> of the <code>ownedFeatureChainings</code> of this <code>Feature</code>, in the same order. The values of a <code>Feature</code> with <code>chainingFeatures</code> are the same as values of the last <code>Feature</code> in the chain, which can be found by starting with the values of the first <code>Feature</code> (for each instance of the domain of the original <code>Feature</code>), then using each of those as domain instances to find the values of the second <code>Feature</code> in chainingFeatures, and so on, to values of the last <code>Feature</code>.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>FeatureInvertings</code> and for which the <code>Feature</code> is the <code>featureInverted</code>.</p> + + + + + + + <p>The <code>ownedRelationships</code> of this <code>Feature</code> that are <code>FeatureChainings</code>, for which the <code>Feature</code> will be the <code>featureChained</code>.</p> + + + + + + + <p>Whether the values of this <code>Feature</code> are contained in the space and time of instances of the domain of the <code>Feature</code> and represent the same thing as those instances.</p> + + + + + + + + <p>Whether the value of this <code>Feature</code> might vary over time. That is, whether the <code>Feature</code> may have a different value for each <em><code>snapshot</code></em> of an <code>owningType</code> that is an <em><code>Occurrence</code></em>.</p> + + + + + + + <p>If <code>isVariable</code> is true, then whether the value of this <code>Feature</code> nevertheless does not change over all <code><em>snapshots</em></code> of its <code>owningType</code>.</p> + + + + + + + + <p>The one <code>ownedSubsetting</code> of this <code>Feature</code>, if any, that is a <code>ReferenceSubsetting</code>, for which the <code>Feature</code> is the <code>referencingFeature</code>.</p> + + + + + + + <p>The last of the <code>chainingFeatures</code> of this <code>Feature</code>, if it has any. Otherwise, this <code>Feature</code> itself.</p> + + + + + + + <p>The second <code>chainingFeature</code> of the <code>crossedFeature</code> of the <code>ownedCrossSubsetting</code> of this <code>Feature</code>, if it has one. Semantically, the values of the <code>crossFeature</code> of an end <code>Feature</code> must include all values of the end <code>Feature</code> obtained when navigating from values of the other end <code>Features</code> of the same <code>owningType</code>. +</p> + + + + + + + <p>Indicates how values of this <code>Feature</code> are determined or used (as specified for the <code>FeatureDirectionKind</code>).</p> + + + + + + + + <p>The one <code>ownedSubsetting</code> of this <code>Feature</code>, if any, that is a <code>CrossSubsetting}, for which the <code>Feature</code> is the <code>crossingFeature</code>.</p> + + + + + + + <p>Return the <code>directionOf</code> this <code>Feature</code> relative to the given <code>type</code>.</p> + + + + OCL2.0 + type.directionOf(self) + + + + + + + + + + + <p>If a <code>Feature</code> has no <code>declaredShortName</code> or <code>declaredName</code>, then its effective <code>shortName</code> is given by the effective <code>shortName</code> of the <code>Feature</code> returned by the <code>namingFeature()</code> operation, if any.</p> + + + + OCL2.0 + if declaredShortName <> null or declaredName <> null then + declaredShortName +else + let namingFeature : Feature = namingFeature() in + if namingFeature = null then + null + else + namingFeature.effectiveShortName() + endif +endif + + + + + + + + + + + <p>If a <code>Feature</code> has no <code>declaredName</code> or <code>declaredShortName</code> +, then its effective <code>name</code> is given by the effective <code>name</code> of the <code>Feature</code> returned by the <code>namingFeature()</code> operation, if any.</p> + + + + OCL2.0 + if declaredShortName <> null or declaredName <> null then + declaredName +else + let namingFeature : Feature = namingFeature() in + if namingFeature = null then + null + else + namingFeature.effectiveName() + endif +endif + + + + + + + + + + + <p>By default, the naming <code>Feature</code> of a <code>Feature</code> is given by its first <code>redefinedFeature</code> of its first <code>ownedRedefinition</code>, if any.</p> + + + + OCL2.0 + if ownedRedefinition->isEmpty() then + null +else + ownedRedefinition->at(1).redefinedFeature +endif + + + + + + + + + + + OCL2.0 + let supertypes : OrderedSet(Type) = + self.oclAsType(Type).supertypes(excludeImplied) in +if featureTarget = self then supertypes +else supertypes->append(featureTarget) +endif + + + + + + + + + + + + + <p>Check whether this <code>Feature</code> <em>directly</em> redefines the given <code>redefinedFeature</code>.</p> + + + + OCL2.0 + ownedRedefinition.redefinedFeature->includes(redefinedFeature) + + + + + + + + + + <p>Check whether this <code>Feature</code> <em>directly</em> redefines the named library <code>Feature</code>. <code>libraryFeatureName</code> must conform to the syntax of a KerML qualified name and must resolve to a <code>Feature</code> in global scope.</p> + + + + OCL2.0 + let mem: Membership = resolveGlobal(libraryFeatureName) in +mem <> null and mem.memberElement.oclIsKindOf(Feature) and +redefines(mem.memberElement.oclAsType(Feature)) + + + + + + + + + + + + <p>Check whether this <code>Feature</code> directly or indirectly specializes a <code>Feature</code> whose last two <code>chainingFeatures</code> are the given <code>Features</code> <code>first</code> and <code>second</code>.</p> + + + + OCL2.0 + allSuperTypes()->selectAsKind(Feature)-> + exists(f | let n: Integer = f.chainingFeature->size() in + n >= 2 and + f.chainingFeature->at(n-1) = first and + f.chainingFeature->at(n) = second) + + + + + + + + + + + <p>A <code>Feature</code> is compatible with an <code>otherType</code> if it either directly or indirectly specializes the <code>otherType</code> or if the <code>otherType</code> is also a <code>Feature</code> and all of the following are true.</p> +<ol> + <li>Neither this <code>Feature</code> or the <code>otherType</code> have any <code>ownedFeatures</code>.</li> + <li>This <code>Feature</code> directly or indirectly redefines a <code>Feature</code> that is also directly or indirectly redefined by the <code>otherType</code>.</li> + <li>This <code>Feature</code> can access the <code>otherType</code>. +</li></ol> + + + + OCL2.0 + specializes(otherType) or + supertype.oclIsKindOf(Feature) and + ownedFeature->isEmpty() and + otherType.ownedFeature->isEmpty() and + ownedRedefinitions.allRedefinedFeatures()->exists(f | + otherType.oclAsType(Feature).allRedefinedFeatures()->includes(f)) and + canAccess(otherType.oclAsType(Feature)) + + + + + + + + + + <p>Return the <code>Features</code> used to determine the <code>types</code> of this <code>Feature</code> (other than this <code>Feature</code> itself). If this <code>Feature</code> is <em>not</em> conjugated, then the <code>typingFeatures</code> consist of all subsetted <code>Features</code>, <em>except</em> from <code>CrossSubsetting</code>, and the last <code>chainingFeature</code> (if any). If this <code>Feature</code> <em>is</em> conjugated, then the <code>typingFeatures</code> are only its <code>originalType</code> (if the <code>originalType</code> is a <code>Feature</code>).</p> + +<p><strong>Note.</strong> <code>CrossSubsetting</code> is excluded from the determination of the <code>type</code> of a <code>Feature</code> in order to avoid circularity in the construction of implied <code>CrossSubsetting</code> relationships. The <code>validateFeatureCrossFeatureType</code> requires that the <code>crossFeature</code> of a <code>Feature</code> have the same <code>type</code> as the <code>Feature</code>.</p> + + + + + OCL2.0 + if not isConjugated then + let subsettedFeatures : OrderedSet(Feature) = + subsetting->reject(s | s.oclIsKindOf(CrossSubsetting)).subsettedFeatures in + if chainingFeature->isEmpty() or + subsettedFeature->includes(chainingFeature->last()) + then subsettedFeatures + else subsettedFeatures->append(chainingFeature->last()) + endif +else if conjugator.originalType.oclIsKindOf(Feature) then + OrderedSet{conjugator.originalType.oclAsType(Feature)} +else OrderedSet{} +endif endif + + + + + + + + + + <p>If <code>isCartesianProduct</code> is true, then return the list of <code>Types</code> whose Cartesian product can be represented by this <code>Feature</code>. (If <code>isCartesianProduct</code> is not true, the operation will still return a valid value, it will just not represent anything useful.)</p> + + + + OCL2.0 + featuringType->select(t | t.owner <> self)-> + union(featuringType->select(t | t.owner = self)-> + selectByKind(Feature).asCartesianProduct())-> + union(type) + + + + + + + + + + <p>Check whether this <code>Feature</code> can be used to represent a Cartesian product of <code>Types</code>.</p> + + + + OCL2.0 + type->size() = 1 and +featuringType.size() = 1 and +(featuringType.first().owner = self implies + featuringType.first().oclIsKindOf(Feature) and + featuringType.first().oclAsType(Feature).isCartesianProduct()) + + + + + + + + + <p>Return whether this <code>Feature</code> is an owned cross <code>Feature</code> of an end <code>Feature</code>.</p> + + + + OCL2.0 + owningNamespace <> null and +owningNamespace.oclIsKindOf(Feature) and +owningNamespace.oclAsType(Feature).ownedCrossFeature() = self + + + + + + + + + <p>If this <code>Feature</code> is an end <code>Feature</code> of its <code>owningType</code>, then return the first <code>ownedMember</code> of the <code>Feature</code> that is a <code>Feature</code>, but not a <code>Multiplicity</code> or a <code>MetadataFeature</code>, and whose <code>owningMembership</code> is <em>not</em> a <code>FeatureMembership</code>. If this exists, it is the <code>crossFeature</code> of the end <code>Feature</code>.</p> + + + + OCL2.0 + if not isEnd or owningType = null then null +else + let ownedMemberFeatures: Sequence(Feature) = + ownedMember->selectByKind(Feature)-> + reject(oclIsKindOf(Multiplicity) or + oclIsKindOf(MetadataFeature) or + oclIsKindOf(FeatureValue))-> + reject(owningMembership.oclIsKindOf(FeatureMembership)) in + if ownedMemberFeatures.isEmpty() then null + else ownedMemberFeatures->first() + endif + + + + + + + + + + <p>Return this <code>Feature</code> and all the <code>Features</code> that are directly or indirectly <code>Redefined</code> by this <code>Feature</code>.</p> + + + + OCL2.0 + ownedRedefinition.redefinedFeature-> + closure(ownedRedefinition.redefinedFeature)-> + asOrderedSet()->prepend(self) + + + + + + + + + + + <p>Return if the <code>featuringTypes</code> of this <code>Feature</code> are compatible with the given <code>type</code>. If <code>type</code> is null, then check if this <code>Feature</code> is explicitly or implicitly featured by <em><code>Base::Anything</code></em>. If this <code>Feature</code> has <code>isVariable = true</code>, then also consider it to be featured within its <code>owningType</code>. If this <code>Feature</code> is a feature chain whose first <code>chainingFeature</code> has <code>isVariable = true</code>, then also consider it to be featured within the <code>owningType</code> of its first <code>chainingFeature</code>.</p> + + + + OCL2.0 + if type = null then + featuringType->forAll(f | f = resolveGlobal('Base::Anything').memberElement) +else + featuringType->forAll(f | type.isCompatibleWith(f)) or + isVariable and type.specializes(owningType) or + chainingFeature->notEmpty() and chainingFeature->first().isVariable and + type.specializes(chainingFeature->first().owningType) +endif + + + + + + + + + + + + + <p>A <code>Feature</code> can access another <code>feature</code> if the other <code>feature</code> is featured within one of the direct or indirect <code>featuringTypes</code> of this <code>Feature</code>.</p> + + + + OCL2.0 + let anythingType: Element = + subsettingFeature.resolveGlobal('Base::Anything').memberElement in +let allFeaturingTypes : Sequence(Type) = + featuringTypes->closure(t | + if not t.oclIsKindOf(Feature) then Sequence{} + else + let featuringTypes : OrderedSet(Type) = t.oclAsType(Feature).featuringType in + if featuringTypes->isEmpty() then Sequence{anythingType} + else featuringTypes + endif + endif) in +allFeaturingTypes->exists(t | feature.isFeaturedWithin(t)) + + + + + + + + + + <p>Return whether the given <code>type</code> must be a <code>featuringType</code> of this <code>Feature</code>. If this <code>Feature</code> has <code>isVariable = false</code>, then return true if the <code>type</code> is the <code>owningType</code> of the <code>Feature</code>. If <code>isVariable = true</code>, then return true if the <code>type</code> is a <code>Feature</code> representing the <em><code>snapshots</code></em> of the <code>owningType</code> of this <code>Feature</code>.</p> + + + + OCL2.0 + owningType <> null and +if not isVariable then type = owningType +else if owningType = resolveGlobal('Occurrences::Occurrence').memberElement then + type = resolveGlobal('Occurrences::Occurrence::snapshots').memberElement +else + type.oclIsKindOf(Feature) and + let feature : Feature = type.oclAsType(Feature) in + feature.featuringType->includes(owningType) and + feature.redefinesFromLibrary('Occurrences::Occurrence::snapshots') +endif + + + + + + + + + + + + <p><code>FeatureTyping</code> is <code>Specialization</code> in which the <code>specific</code> <code>Type</code> is a <code>Feature</code>. This means the set of instances of the (specific) <code>typedFeature</code> is a subset of the set of instances of the (general) <code>type</code>. In the simplest case, the <code>type</code> is a <code>Classifier</code>, whereupon the <code>typedFeature</code> has values that are instances of the <code>Classifier</code>.</p> + + + + + + <p>The <code>Feature</code> that has a <code>type</code> determined by this <code>FeatureTyping</code>.</p> + + + + + + + <p>The <code>Type</code> that is being applied by this <code>FeatureTyping</code>.</p> + + + + + + + + <p>A <code>typedFeature</code> that is also the <code>owningRelatedElement</code> of this <code>FeatureTyping</code>.</p> + + + + + + + + <p><code>Subsetting</code> is <code>Specialization</code> in which the <code>specific</code> and <code>general</code> <code>Types</code> are <code>Features</code>. This means all values of the <code>subsettingFeature</code> (on instances of its domain, i.e., the intersection of its <code>featuringTypes</code>) are values of the <code>subsettedFeature</code> on instances of its domain. To support this the domain of the <code>subsettingFeature</code> must be the same or specialize (at least indirectly) the domain of the <code>subsettedFeature</code> (via <code>Specialization</code>), and the co-domain (intersection of the <code>types</code>) of the <code>subsettingFeature</code> must specialize the co-domain of the <code>subsettedFeature</code>.</p> + + + + + <p>The <code>subsettedFeature</code> must be accessible by the <code>subsettingFeature</code>.</p> + + + OCL2.0 + subsettingFeature.canAccess(subsettedFeature) + + + + + <p>If the <code>subsettedFeature</code> of a <code>Subsetting</code> has <code>isUnique = true</code>, then the <code>subsettingFeature</code> must have <code>isUnique = true</code>.</p> + + + OCL2.0 + subsettedFeature.isUnique implies subsettingFeature.isUnique + + + + + <p>If the <code>subsettedFeature</code> of a <code>Subsetting</code> has <code>isConstant = true</code> and the <code>subsettingFeature</code> has <code>isVariable = true</code>, then the <code>subsettingFeature</code> must have <code>isConstant = true</code>.</p> + + + OCL2.0 + subsettedFeature.isConstant and subsettingFeature.isVariable implies + subsettingFeature.isConstant + + + + + + + <p>The <code>Feature</code> that is subsetted by the <code>subsettingFeature</code> of this <code>Subsetting</code>.</p> + + + + + + + + <p>The <code>Feature</code> that is a subset of the <code>subsettedFeature</code> of this <code>Subsetting</code>.</p> + + + + + + + + <p>A <code>subsettingFeature</code> that is also the <code>owningRelatedElement</code> of this <code>Subsetting</code>.</p> + + + + + + + + + + + <p>The Redefinitions with a certain Feature as the <code>redefiningFeature</code>.</p> + + + + + + + + + + <p>The Subsettings with a certain Feature as the <code>subsettedFeature</code>.</p> + + + + + + + + + <p>A <code>Type</code> that has the <code>multiplicity</code> as an <code>ownedMember</code>.</p> + + + + + + + + + + <p>The <code>TypeFeaturings</code> for which a certain <code>Feature</code> is the <code>featureOfType</code>.</p> + + + + + + + + + <p>The Features for which a certain Type is a <code>featuringType</code>.</p> + + + + + + + + <p>A <code>TypeFeaturing</code> is a <code>Featuring</code> <code>Relationship</code> in which the <code>featureOfType</code> is the <code>source</code> and the <code>featuringType</code> is the <code>target</code>.</p> + + + + + <p>The <code>Feature</code> that is featured by the <code>featuringType</code>. It is the <code>source</code> of the <code>TypeFeaturing</code>.</p> + + + + + + + <p>The <code>Type</code> that features the <code>featureOfType</code>. It is the <code>target</code> of the <code>TypeFeaturing</code>.</p> + + + + + + + <p>A <code>featureOfType</code> that is also the <code>owningRelatedElement</code> of this <code>TypeFeaturing</code>.</p> + + + + + + + + + + <p>The <code>TypeFeaturings</code> for which a certain <code>Type</code> is the <code>featuringType</code>.</p> + + + + + + + + + <p><code>EndFeatureMembership</code> is a <code>FeatureMembership</code> that requires its <code>memberFeature</code> be owned and have <code>isEnd = true</code>.</p> + + + + + <p>The <code>ownedMemberFeature</code> of an <code>EndFeatureMembership</code> must be an end <code>Feature</code>.</p> + + + OCL2.0 + ownedMemberFeature.isEnd + + + + + + + + + + + <p>Relationship for chainedFeatures.</p> + + + + <p>The <code>FeatureChainings</code> that identify a <code>Feature</code> as their <code>chainingFeature</code>.</p> + + + + + + + + <p><code>FeatureChaining</code> is a <code>Relationship</code> that makes its target <code>Feature</code> one of the <code>chainingFeatures</code> of its owning <code>Feature</code>.</p> + + + + + <p>The <code>Feature</code> whose values partly determine values of <code>featureChained</code>, as described in <code>Feature::chainingFeature</code>.</p> + + + + + + + + <p>The <code>Feature</code> whose values are partly determined by values of the <code>chainingFeature</code>, as described in <code>Feature::chainingFeature</code>.</p> + + + + + + + + + + <p>The <code>Features</code> that have a particular <code>chainingFeature</code> in their <code>Feature</code> chain, whose values are partly determined by values of the <code>chainingFeature</code>, as described in <code>chainingFeature</code>.</p> + + + + + + + + + + + + + + <p>A <code>FeatureInverting</code> is a <code>Relationship</code> between <code>Features</code> asserting that their interpretations (sequences) are the reverse of each other, identified as <code>featureInverted</code> and <code>invertingFeature</code>. For example, a <code>Feature</code> identifying each person&#39;s parents is the inverse of a <code>Feature</code> identifying each person&#39;s children. A person identified as a parent of another will identify that other as one of their children.</p> + + + + + + <p>The <code>Feature</code> that is an inverse of the <code>invertingFeature</code>.</p> + + + + + + + <p>The <code>Feature</code> that is an inverse of the <code>invertedFeature</code>.</p> + + + + + + + <p>A <code>featureInverted</code> that is also the <code>owningRelatedElement</code> of this <code>FeatureInverting</code>.</p> + + + + + + + + + + <p>The FeatureInvertings that identify this Feature as their <code>featureInverted</code>.</p> + + + + + + + + + <p>The FeatureInvertings that identify this Feature as their <code>invertingFeature</code>.</p> + + + + + + + + + + <p><code>ReferenceSubsetting</code> is a kind of <code>Subsetting</code> in which the <code>referencedFeature</code> is syntactically distinguished from other <code>Features</code> subsetted by the <code>referencingFeature</code>. <code>ReferenceSubsetting</code> has the same semantics as <code>Subsetting</code>, but the <code>referencedFeature</code> may have a special purpose relative to the <code>referencingFeature</code>. For instance, <code>ReferenceSubsetting</code> is used to identify the <code>relatedFeatures</code> of a <code>Connector</code>.</p> + +<p><code>ReferenceSubsetting</code> is always an <code>ownedRelationship</code> of its <code>referencingFeature</code>. A <code>Feature</code> can have at most one <code>ownedReferenceSubsetting</code>.</p> + + + + + + <p>The <code>Feature</code> that is referenced by the <code>referencingFeature</code> of this <code>ReferenceSubsetting</code>.</p> + + + + + + + + <p>The <code>Feature</code> that owns this <code>ReferenceSubsetting</code> relationship, which is also its <code>subsettingFeature</code>.</p> + + + + + + + + + + <p>The <code>ReferenceSubsetting</code> with a certain <code>Feature</code> as the <code>referencedFeature</code>.</p> + + + + + + + + + <p>The <code>Features</code> that identify a <code>Feature</code> as their <code>featureTarget</code>.</p> + + + <p>The <code>Features</code> that are the same as or the <code>chainedFeature</code> for a <code>targetFeature</code>.</p> + + + + + + + + + + <p>The <code>CrossSubsetting</code> with a certain <code>Feature</code> as the <code>crossedFeature</code>.</p> + + + + + + + + + <p>The <code>Features</code> with a certain other <code>Feature</code> as the <code>crossFeature</code>.</p> + + + + + + + + <p><code>CrossSubsetting</code> is a kind of <code>Subsetting</code> for end <code>Features</code>, as identified by <code>crossingFeature</code>, to subset a chained <code>Feature</code>, identified by <code>crossedFeature.</code> It navigates to instances of the end <code>Feature</code>’s type from instances of other end <code>Feature</code> types on the same <code>owningType</code> (at least two end <code>Features</code> are required for any of them to have a <code>CrossSubsetting</code>).</p> + +<p>The <code>crossedFeature</code> of a <code>CrossSubsetting</code> must have a feature chain of exactly two <code>Features</code>. The second <code>Feature</code> in the chain is the <code>crossFeature</code> of the <code>crossingFeature</code> (end <code>Feature</code>), which has the same type as the <code>crossingFeature</code>. When the <code>owningType</code> of the <code>crossingFeature</code> has exactly two end <code>Features</code>, the first <code>Feature</code> in the chain of the <code>crossedFeature</code> is the other end <code>Feature</code>. The <code>crossFeature</code>’s <code>featuringType</code> in this case is the other end <code>Feature</code>. When the <code>owningType</code> has more than two end <code>Features</code>, the first <code>Feature</code> in the chain is a <code>Feature</code> that <code>CrossMultiplies</code> all the other end <code>Features</code>, which is also the <code>featuringType</code> of the <code>crossFeature</code>.</p> + +<p>A <code>crossFeature</code> must be owned by its <code>featureCrossing</code> (end <code>Feature</code>) when the <code>featureCrossing</code> <code>owningType</code> has more than two end <code>Features</code>. Otherwise, for exactly two end <code>Features</code>, the <code>crossFeatures</code> of each the ends can instead optionally be inherited by the other end from one of its <code>types</code> or a subsetted <code>Feature</code>.</p> + + + + <p>The <code>crossedFeature</code> of a <code>CrossSubsetting</code> must have exactly two <code>chainingFeatures</code>. If the <code>crossingFeature</code> of the <code>CrossSubsetting</code> is one of two end <code>Features</code>, then the first <code>chainingFeature</code> must be the other end <code>Feature</code>.</p> + + + OCL2.0 + crossingFeature.isEnd and crossingFeature.owningType <> null implies + let endFeatures: Sequence(Feature) = crossingFeature.owningType.endFeature in + let chainingFeatures: Sequence(Feature) = crossedFeature.chainingFeature in + chainingFeatures->size() = 2 and + endFeatures->size() = 2 implies + chainingFeatures->at(1) = endFeatures->excluding(crossingFeature)->at(1) + + + + + <p>The <code>crossingFeature</code> of a <code>CrossSubsetting</code> must be an end <code>Feature</code> that is owned by a <code>Type</code> with at least two end <code>Features</code>.</p> + + + OCL2.0 + crossingFeature.isEnd and +crossingFeature.owningType<>null and +crossingFeature.owningType.endFeature ->size() > 1 + + + + + + <p>The chained <code>Feature</code> that is cross subset by the <code>crossingFeature</code> of this <code>CrossSubsetting</code>.</p> + + + + + + + + <p>The end <code>Feature</code> that owns this <code>CrossSubsetting</code> relationship and is also its </code>subsettingFeature</code>.</p> + + + + + + + + + + The Kernel layer completes the KerML metamodel. + + + + + + + + + + + + + <p>The ItemFlow that has a certain <code>sourceOutputFeature</code>.</p> + + + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>PayloadFeature</code> is the <code>ownedFeature</code> of a <code>Flow</code> that identifies the things carried by the kinds of transfers that are instances of the <code>Flow</code>.</p> + + + + <p>A <code>PayloadFeature</code> must redefine the <code>Feature</code> <code><em>Transfers::Transfer::payload</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + redefinesFromLibrary('Transfers::Transfer::payload') + + + + + + + <p>The ItemFlow that has a certain <code>itemType</code>.</p> + + + + + + + + + <p>An <code>Interaction</code> is a <code>Behavior</code> that is also an <code>Association</code>, providing a context for multiple objects that have behaviors that impact one another.</p> + + + + + + + + <p>A <code>SuccessionFlow</code> is a <code>Flow</code> that also provides temporal ordering. It classifies <code><em>Transfers</em></code> that cannot start until the source <code><em>Occurrence</em></code> has completed and that must complete before the target <code><em>Occurrence</em></code> can start.</p> + + + + <p>A <code>SuccessionFlow</code> must directly or indirectly specialize the <code>Step</code> <code><em>Transfers::flowTransfersBefore</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Transfers::flowTransfersBefore') + + + + + + + + + <p>The ItemFlow that has a certain <code>targetInputFeature</code>.</p> + + + + + + + + <p>An <code>Flow</code> is a <code>Step</code> that represents the transfer of values from one <code>Feature</code> to another. <code>Flows</code> can take non-zero time to complete.</p> + + + + + <p>A <code>Flow</code> must directly or indirectly specialize the <code>Step</code> <code><em>Transfers::transfers</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Transfers::transfers') + + + + + <p>The <code>payloadTypes</code> of a <code>Flow</code> are the <code>types</code> of the <code>payloadFeature</code> of the <code>Flow</code> (if any).</p> + + + OCL2.0 + payloadType = + if payloadFeature = null then Sequence{} + else payloadFeature.type + endif + + + + + <p>The <code>sourceOutputFeature</code> of a <code>Flow</code> is the first <code>ownedFeature</code> of the first <code>connectorEnd</code> of the <code>Flow</code>.</p> + + + OCL2.0 + sourceOutputFeature = + if connectorEnd->isEmpty() or + connectorEnd.ownedFeature->isEmpty() + then null + else connectorEnd.ownedFeature->first() + endif + + + + + <p>The <code>targetInputFeature</code> of a <code>Flow</code> is the first <code>ownedFeature</code> of the second <code>connectorEnd</code> of the <code>Flow</code>.</p> + + + OCL2.0 + targetInputFeature = + if connectorEnd->size() < 2 or + connectorEnd->at(2).ownedFeature->isEmpty() + then null + else connectorEnd->at(2).ownedFeature->first() + endif + + + + + <p>The <code>flowEnds</code> of a <code>Flow</code> are all its <code>connectorEnds</code> that are <code>FlowEnds</code>.</p> + + + OCL2.0 + flowEnd = connectorEnd->selectByKind(FlowEnd) + + + + + <p>The <code>payloadFeature</code> of a <code>Flow</code> is the single one of its <code>ownedFeatures</code> that is a <code>PayloadFeature</code>.</p> + + + OCL2.0 + payloadFeature = + let payloadFeatures : Sequence(PayloadFeature) = + ownedFeature->selectByKind(PayloadFeature) in + if payloadFeatures->isEmpty() then null + else payloadFeatures->first() + endif + + + + + <p>A <code>Flow</code> must have at most one <code>ownedFeature</code> that is an <code>PayloadFeature</code>.</p> + + + OCL2.0 + ownedFeature->selectByKind(PayloadFeature)->size() <= 1 + + + + + <p>A <code>Flow</code> with <code>ownedEndFeatures</code> must specialize the <code>Step</code> <code><em>Transfers::flowTransfers</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + ownedEndFeatures->notEmpty() implies + specializesFromLibrary('Transfers::flowTransfers') + + + + + + + <p>The type of values transferred, which is the <code>type</code> of the <code>payloadFeature</code> of the <code>Flow</code>.</p> + + + + + + + + + <p>The <code>Feature</code> that receives the values carried by the <code>Flow</code>. It must be a <code>feature</code> of the <code>target</code> of the <code>Flow</code>.</p> + + + + + + + <p>The <code>Feature</code> that provides the items carried by the <code>Flow</code>. It must be a <code>feature</code> of the <code>source</code> of the <code>Flow</code>.</p> + + + + + + + + <p>The <code>connectorEnds</code> of this <code>Flow</code> that are <code>FlowEnds</code>.</p> + + + + + + + + <p>The <code>ownedFeature</code> of the <code>Flow</code> that is a <code>PayloadFeature</code> (if any).</p> + + + + + + + + <p>The <code>Interactions</code> that type this <code>Flow</code>. <code>Interactions</code> are both <code>Associations</code> and <code>Behaviors</code>, which can type <code>Connectors</code> and <code>Steps</code>, respectively.</p> + + + + + + + + <p>A <code>FlowEnd</code> is a <code>Feature</code> that is one of the <code>connectorEnds</code> giving the <code><em>source</em></code> or <code><em>target</em></code> of a <code>Flow</code>. For <code>Flows</code> typed by <code><em>FlowTransfer</em></code> or its specializations, <code>FlowEnds</code> must have exactly one <code>ownedFeature</code>, which redefines <code><em>Transfer::source::sourceOutput</em></code> or <code><em>Transfer::target::targetInput</em></code> and redefines the corresponding feature of the <code>relatedElement</code> for its end.</p> + + + + <p>A <code>FlowEnd</code> must be an end <code>Feature</code>.</p> + + + OCL2.0 + isEnd + + + + + <p>A <code>FlowEnd</code> must have exactly one <code>ownedFeature</code>.</p> + + + OCL2.0 + ownedFeature->size() = 1 + + + + + <p>The <code>owningType</code> of a <code>FlowEnd</code> must be a <code>Flow</code>.</p> + + + OCL2.0 + owningType <> null and owningType.oclIsKindOf(Flow) + + + + + + + + + <p>A <code>LibraryPackage</code> is a <code>Package</code> that is the container for a model library. A <code>LibraryPackage</code> is itself a library <code>Element</code> as are all <code>Elements</code> that are directly or indirectly contained in it.</p> + + + + + + <p>Whether this <code>LibraryPackage</code> contains a standard library model. This should only be set to true for <code>LibraryPackages</code> in the standard Kernel Model Libraries or in normative model libraries for a language built on KerML.</p> + + + + + + + <p>The <code>libraryNamespace</code> for a <code>LibraryPackage</code> is itself.</p> + + + + OCL2.0 + self + + + + + + + + + + + <p><code>ElementFilterMembership</code> is a <code>Membership</code> between a <code>Namespace</code> and a model-level evaluable <code><em>Boolean</em></code>-valued <code>Expression</code>, asserting that imported <code>members</code> of the <code>Namespace</code> should be filtered using the <code>condition</code> <code>Expression</code>. A general <code>Namespace</code> does not define any specific filtering behavior, but such behavior may be defined for various specialized kinds of <code>Namespaces</code>.</p> + + + + + <p>The <code>condition</code> <code>Expression</code> must be model-level evaluable.</p> + + + OCL2.0 + condition.isModelLevelEvaluable + + + + + <p>The <code>result</code> <code>parameter</code> of the <code>condition</code> <code>Expression</code> must directly or indirectly specialize <code><em>ScalarValues::Boolean</em></code>.</p> + + + OCL2.0 + condition.result.specializesFromLibrary('ScalarValues::Boolean') + + + + + + <p>The model-level evaluable <code>Boolean</code>-valued <code>Expression</code> used to filter the imported <code>members</code> of the <code>membershipOwningNamespace</code> of this <code>ElementFilterMembership</code>.</p> + + + + + + + + + + <p>The Package that has a certain Expression as a <code>filterCondition</code>.</p> + + + + + + + + <p>A <code>Package</code> is a <code>Namespace</code> used to group <code>Elements</code>, without any instance-level semantics. It may have one or more model-level evaluable <code>filterCondition</code> <code>Expressions</code> used to filter its <code>importedMemberships</code>. Any imported <code>member</code> must meet all of the <code>filterConditions</code>.</p> + + + + <p>The <code>filterConditions</code> of a <code>Package</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> + + + OCL2.0 + filterCondition = ownedMembership-> + selectByKind(ElementFilterMembership).condition + + + + + + <p>The model-level evaluable <code><em>Boolean</em></code>-valued <code>Expression</code> used to filter the <code>members</code> of this <code>Package</code>, which are owned by the <code>Package</code> are via <code>ElementFilterMemberships</code>.</p> + + + + + + + + <p>Exclude <code>Elements</code> that do not meet all the <code>filterConditions</code>.</p> + + + + + OCL2.0 + self.oclAsType(Namespace).importedMemberships(excluded)-> + select(m | self.includeAsMember(m.memberElement)) + + + + + + + + + + + + + + <p>Determine whether the given <code>element</code> meets all the <code>filterConditions</code>.</p> + + + + OCL2.0 + let metadataFeatures: Sequence(AnnotatingElement) = + element.ownedAnnotation.annotatingElement-> + selectByKind(MetadataFeature) in + self.filterCondition->forAll(cond | + metadataFeatures->exists(elem | + cond.checkCondition(elem))) + + + + + + + + + + + + <p>The ElementFilterMembership that owns the <code>condition</code>.</p> + + + + + + + + + + <p>A <code>Class</code> is a <code>Classifier</code> of things (in the universe) that can be distinguished without regard to how they are related to other things (via <code>Features</code>). This means multiple things classified by the same <code>Class</code> can be distinguished, even when they are related other things in exactly the same way.</p> + + + + + <p>A <code>Class</code> must directly or indirectly specialize the base <code>Class</code> <code><em>Occurrences::Occurrence</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Occurrences::Occurrence') + + + + + <p>A <code>Class</code> must not specialize a <code>DataType</code> and it can only specialize an <code>Association</code> if it is also itself a kind of <code>Association</code> (such as an <code>AssociationStructure</code> or <code>Interaction</code>).</p> + + + OCL2.0 + ownedSpecialization.general-> + forAll(not oclIsKindOf(DataType)) and +not oclIsKindOf(Association) implies + ownedSpecialization.general-> + forAll(not oclIsKindOf(Association)) + + + + + + + + + <p><code>LiteralBoolean</code> is a <code>LiteralExpression</code> that provides a <code><em>Boolean</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have type <code><em>Boolean</em></code>.</p> + + + + + <p>A <code>LiteralBoolean</code> must directly or indirectly specialize <em><code>Performances::literalBooleanEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalBooleanEvaluations') + + + + + + <p>The <code><em>Boolean</em></code> value that is the result of evaluating this <code>LiteralBoolean</code>.</p> + + + <p>The Boolean value that is the result of evaluating this Expression.</p> + + + + + + + + <p>A <code>LiteralExpression</code> is an <code>Expression</code> that provides a basic <code><em>DataValue</em></code> as a result.</p> + + + + + <p>A <code>LiteralExpression</code> is always model-level evaluable.</p> + + + OCL2.0 + isModelLevelEvaluable = true + + + + + <p>A <code>LiteralExpression</code> must directly or indirectly specialize the base <code>LiteralExpression</code> <code><em>Performances::literalEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalEvaluations') + + + + + + <p>A <code>LiteralExpression</code> is always model-level evaluable.</p> + + + + OCL2.0 + true + + + + + + + + + + + + + <p>The model-level value of a <code>LiteralExpression</code> is itself.</p> + + + + OCL2.0 + Sequence{self} + + + + + + + + + + + + <p>A <code>LiteralRational</code> is a <code>LiteralExpression</code> that provides a <code><em>Rational</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>Rational</em></code>.</p> + + + + + <p>A <code>LiteralRational</code> must directly or indirectly specialize <em><code>Performances::literalRationalEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalRationalEvaluations') + + + + + + <p>The value whose rational approximation is the result of evaluating this <code>LiteralRational</code>.</p> + + + + <p>The Real value that is the result of evaluating this Expression.</p> + + + + + + + <p>A <code>LiteralInfinity</code> is a <code>LiteralExpression</code> that provides the positive infinity value (<code>*</code>). It's <code>result</code> must have the type <code><em>Positive</em></code>.</p> + + + + + <p>A <code>LiteralInfinity</code> must directly or indirectly specialize <em><code>Performances::literalIntegerEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalIntegerEvaluations') + + + + + + + <p>A <code>LiteralInteger</code> is a <code>LiteralExpression</code> that provides an <code><em>Integer</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>Integer</em></code>.</p> + + + + + <p>A <code>LiteralInteger</code> must directly or indirectly specialize <em><code>Performances::literalIntegerEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalIntegerEvaluations') + + + + + + <p>The <code><em>Integer</em></code> value that is the result of evaluating this <code>LiteralInteger</code>.</p> + + + <p>The Integer value that is the result of evaluating this Expression.</p> + + + + + + + + <p>A <code>NullExpression</code> is an <code>Expression</code> that results in a null value.</p> + + + + + <p>A <code>NullExpression</code> must directly or indirectly specialize the base <code>NullExpression</code> <code><em>Performances::nullEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::nullEvaluations') + + + + + + <p>A <code>NullExpression</code> is always model-level evaluable.</p> + + + + OCL2.0 + true + + + + + + + + + + + + + <p>The model-level value of a <code>NullExpression</code> is an empty sequence.</p> + + + + OCL2.0 + Sequence{} + + + + + + + + + + + + <p>A <code>LiteralString</code> is a <code>LiteralExpression</code> that provides a <code><em>String</em></code> value as a result. Its <code>result</code> <code>parameter</code> must have the type <code><em>String</em></code>.</p> + + + + + <p>A <code>LiteralString</code> must directly or indirectly specialize <em><code>Performances::literalStringEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::literalStringEvaluations') + + + + + + <p>The String value that is the result of evaluating this Expression.</p> + + + <p>The <code><em>String</em></code> value that is the result of evaluating this <code>LiteralString</code>.</p> + + + + + + + + <p>An <code>InvocationExpression</code> is an <code>InstantiationExpression</code> whose <code>instantiatedType</code> must be a <code>Behavior</code> or a <code>Feature</code> typed by a single <code>Behavior</code> (such as a <code>Step</code>). Each of the input <code>parameters</code> of the <code>instantiatedType</code> are bound to the <code>result</code> of an <code>argument</code> <code>Expression</code>. If the <code>instantiatedType</code> is a <code>Function</code> or a <code>Feature</code> typed by a <code>Function</code>, then the <code>result</code> of the <code>InvocationExpression</code> is the <code>result</code> of the invoked <code>Function</code>. Otherwise, the <code>result</code> is an instance of the <code>instantiatedType</code> (essentially like a behavioral <code>ConstructorExpression</code>).</p> + + + + + <p>If the <code>instantiatedType</code> of an <code>InvocationExpression</code> is neither a <code>Function</code> nor a <code>Feature</code> whose type is a <code>Function</code>, then the <code>InvocationExpression</code> must own a <code>BindingConnector</code> between itself and its <code>result</code> parameter.</p> + + + OCL2.0 + not instantiatedType.oclIsKindOf(Function) and +not (instantiatedType.oclIsKindOf(Feature) and + instantiatedType.oclAsType(Feature).type->exists(oclIsKindOf(Function))) implies + ownedFeature.selectByKind(BindingConnector)->exists( + relatedFeature->includes(self) and + relatedFeature->includes(result)) + + + + + <p>An <code>InvocationExpression</code> must own a <code>BindingConnector</code> between the <code>featureWithValue</code> and <code>value</code> <code>Expression</code> of any <code>FeatureValue</code> that is the effective default value for a <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + TBD + + + + + <p>The <code>arguments</code> of an <code>InvocationExpression</code> are the <code>value</code> <code>Expressions</code> of the <code>FeatureValues</code> of its <code>ownedFeatures</code>, in an order corresponding to the order of the <code>input</code> parameters of the <code>instantiatedType</code> that the <code>ownedFeatures</code> redefine.</p> + + + OCL2.0 + instantiatedType.input->collect(inp | + ownedFeatures->select(redefines(inp)).valuation-> + select(v | v <> null).value +) + + + + + <p>Each <code>input</code> parameter of an <code>InvocationExpression</code> must redefine exactly one <code>input</code> parameter of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + let parameters : OrderedSet(Feature) = instantiatedType.input in +input->forAll(inp | + inp.ownedRedefinition.redefinedFeature-> + intersection(parameters)->size() = 1) + + + + + <p>Two different <code>ownedFeatures</code> of an <code>InvocationExpression</code> must not redefine the same <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + let features : OrderedSet(Feature) = instantiatedType.feature in +input->forAll(inp1 | input->forAll(inp2 | + inp1 <> inp2 implies + inp1.ownedRedefinition.redefinedFeature-> + intersection(inp2.ownedRedefinition.redefinedFeature)-> + intersection(features)->isEmpty())) + + + + + <p>If the <code>instantiatedType</code> of an <code>InvocationExpression</code> is neither a <code>Function</code> nor a <code>Feature</code> whose type is a <code>Function</code>, then the <code>result</code> of the <code>InvocationExpression</code> must specialize the <code>instantiatedType</code>.</p> + + + OCL2.0 + not instantiatedType.oclIsKindOf(Function) and +not (instantiatedType.oclIsKindOf(Feature) and + instantiatedType.oclAsType(Feature).type->exists(oclIsKindOf(Function))) implies + result.specializes(instantiatedType) + + + + + <p>An <code>InvocationExpression</code> must specialize its <code>instantiatedType</code>.</p> + + + OCL2.0 + specializes(instantiatedType) + + + + + <p>The <code>instantiatedType</code> of an <code>InvocationExpression</code> must be either a <code>Behavior</code> or a <code>Feature</code> with a single <code>type</code>, which is a <code>Behavior</code>.</p> + + + OCL2.0 + instantiatedType.oclIsKindOf(Behavior) or +instantiatedType.oclIsKindOf(Feature) and + instantiatedType.type->exists(oclIsKindOf(Behavior)) and + instantiatedType.type->size(1) + + + + + <p>Other than its <code>result</code>, all the <code>ownedFeatures</code> of an <code>InvocationExpression</code> must have <code>direction = in</code>.</p> + + + OCL2.0 + ownedFeature->forAll(f | + f <> result implies + f.direction = FeatureDirectionKind::_'in') + + + + + + <p>An <code>InvocationExpression</code> is model-level evaluable if all its <code>argument</code> <code>Expressions</code> are model-level evaluable and its <code>function</code> is model-level evaluable.</p> + + + + + OCL2.0 + argument->forAll(modelLevelEvaluable(visited)) and + function.isModelLevelEvaluable + + + + + + + + + + + + + <p>Apply the <code>Function</code> that is the <code>type</code> of this <code>InvocationExpression</code> to the argument values resulting from evaluating each of the <code>argument</code> <code>Expressions</code> on the given <code>target</code>. If the application is not possible, then return an empty sequence.</p> + + + + + + + + + + + + <p>A <code>FeatureReferenceExpression</code> is an <code>Expression</code> whose <code>result</code> is bound to a <code>referent</code> <code>Feature</code>.</p> + + + + <p>The <code>referent</code> of a <code>FeatureReferenceExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>ParameterMembership</code>.</p> + + + OCL2.0 + referent = + let nonParameterMemberships : Sequence(Membership) = ownedMembership-> + reject(oclIsKindOf(ParameterMembership)) in + if nonParameterMemberships->isEmpty() or + not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) + then null + else nonParameterMemberships->first().memberElement.oclAsType(Feature) + endif + + + + + <p>A <code>FeatureReferenceExpression</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between the <code>referent</code> and <code>result</code> of the <code>FeatureReferenceExpression</code>.</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(targetFeature) and + b.relatedFeatures->includes(result)) + + + + + <p>The first <code>ownedMembership</code> of a <code>FeatureReferenceExpression</code> that is not a <code>ParameterMembership</code> must have a <code>Feature</code> as its <code>memberElement</code>.</p> + + + OCL2.0 + let membership : Membership = + ownedMembership->reject(m | m.oclIsKindOf(ParameterMembership)) in +membership->notEmpty() and +membership->at(1).memberElement.oclIsKindOf(Feature) + + + + + <p>The <code>result</code> parameter of a <code>FeatureReferenceExpression</code> must specialize the <code>referent</code> of the <code>FeatureReferenceExpression</code>.</p> + + + OCL2.0 + result.owningType() = self and result.specializes(referent) + + + + + <p>A <code>FeatureReferenceExpression</code> must own its <code>result</code> parameter.</p> + + + OCL2.0 + result.owningType = self + + + + + + <p>The <code>Feature</code> that is referenced by this <code>FeatureReferenceExpression</code>, which is its first non-<code>parameter</code> <code>member</code>.<p> + + + + + + + <p>A <code>FeatureReferenceExpression</code> is model-level evaluable if it&#39;s <code>referent</code></p> + +<ul> + <li>conforms to the self-reference feature <code><em>Anything::self</em></code>;</li> + <li>is an <code>Expression</code> that is model-level evaluable;</li> + <li>has an <code>owningType</code> that is a <code>Metaclass</code> or <code>MetadataFeature</code>; or</li> + <li>has no <code>featuringTypes</code> and, if it has a <code>FeatureValue</code>, the <code>value</code> <code>Expression</code> is model-level evaluable.</li> +</ul> + + + + + OCL2.0 + referent.conformsTo('Anything::self') or +visited->excludes(referent) and +(referent.oclIsKindOf(Expression) and + referent.oclAsType(Expression).modelLevelEvaluable(visited->including(referent)) or +referent.owningType <> null and + (referent.owningType.isOclKindOf(MetaClass) or + referent.owningType.isOclKindOf(MetadataFeature)) or +referent.featuringType->isEmpty() and + (referent.valuation = null or + referent.valuation.modelLevelEvaluable(visited->including(referent)))) + + + + + + + + + + + + + <p>First, determine a <code>value</code> <code>Expression</code> for the <code>referent</code>:</p> + +<ul> + <li>If the <code>target</code> <code>Element</code> is a Type that has a <code>feature</code> that is the <code>referent</code> or (directly or indirectly) redefines it, then the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> for that <code>feature</code> (if any).</li> + <li>Else, if the <code>referent</code> has no <code>featuringTypes</code>, the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> for the <code>referent</code> (if any).</li> +</ul> + +<p>Then:</p> + +<ul> + <li>If such a value <code>Expression</code> exists, return the result of evaluating that <code>Expression</code> on the <code>target</code>.</li> + <li>Else, if the <code>referent</code> is not an <code>Expression</code>, return the <code>referent</code>.</li> + <li>Else return the empty sequence.</li> +</ul> + + + + + OCL2.0 + if not target.oclIsKindOf(Type) then Sequence{} +else + let feature: Sequence(Feature) = + target.oclAsType(Type).feature->select(f | + f.ownedRedefinition.redefinedFeature-> + includes(referent)) in + if feature->notEmpty() then + feature.valuation.value.evaluate(target) + else if referent.featuringType->isEmpty() + then referent + else Sequence{} + endif endif +endif + + + + + + + + + + + + + <p>A <code>FeatureReferenceExpression</code> that has a certain <code>referent</code> <code>Feature</code>.</p> + + + + + + + + <p>A <code>SelectExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"select"</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::select</code></em> from the Kernel Functions Library.</p> + + + + <p>The <code>operator</code> of a <code>SelectExpression</code> must be <code>'select'</code>.</p> + + + OCL2.0 + operator = 'select' + + + + + <p>The <code>result</code> of a <code>SelectExpression</code> must specialize the <code>result</code> parameter of the first <code>argument</code> of the <code>SelectExpression</code>.</p> + + + OCL2.0 + arguments->notEmpty() implies + result.specializes(arguments->first().result) + + + + + + + + + + + <p>An <code>OperatorExpression</code> is an <code>InvocationExpression</code> whose <code>function</code> is determined by resolving its <code>operator</code> in the context of one of the standard packages from the Kernel Function Library.</p> + + + + + <p>An <code>operator</code> symbol that names a corresponding <code>Function</code> from one of the standard packages from the Kernel Function Library .</p> + + + + + + <p>The <code>instantiatedType</code> of an <code>OperatorExpression</code> is the resolution of it's <code>operator</code> from one of the packages <em><code>BaseFunctions</code></em>, <em><code>DataFunctions</code></em>, or <em><code>ControlFunctions</code></em> from the Kernel Function Library.</p> + + + + OCL2.0 + let libFunctions : Sequence(Element) = + Sequence{'BaseFunctions', 'DataFunctions', 'ControlFunctions'}-> + collect(ns | resolveGlobal(ns + "::'" + operator + "'"). + memberElement) in +if libFunctions->isEmpty() then null +else libFunctions->first().oclAsType(Type) +endif + + + + + + + + <p>A <code>CollectExpression</code> is an <code>OperatorExpression</code> whose <code>operator</code> is <code>"collect"</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::collect</code></em> from the Kernel Functions Library.</p> + + + + <p>The <code>operator</code> of a <code>CollectExpression</code> must be <code>"collect"</code>.</p> + + + OCL2.0 + operator = 'collect' + + + + + + + + + + + <p>A <code>FeatureChainExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"."</code>, which resolves to the <code>Function</code> <em><code>ControlFunctions::'.'</code></em> from the Kernel Functions Library. It evaluates to the result of chaining the <code>result</code> <code>Feature</code> of its single <code>argument</code> <code>Expression</code> with its <code>targetFeature</code>.</p> + + + + <p>The first <code>ownedFeature</code> of the first owned input <code>parameter</code> of a <code>FeatureChainExpression</code> must redefine the <code>Feature</code> <code><em>ControlFunctions::'.'::source::target</em></code> from the Kernel Functions Library.</p> + + + OCL2.0 + let sourceParameter : Feature = sourceTargetFeature() in +sourceTargetFeature <> null and +sourceTargetFeature.redefinesFromLibrary('ControlFunctions::\'.\'::source::target') + + + + + <p>The first <code>ownedFeature</code> of the first owned input <code>parameter</code> of a <code>FeatureChainExpression</code> must redefine its <code>targetFeature</code>.</p> + + + OCL2.0 + let sourceParameter : Feature = sourceTargetFeature() in +sourceTargetFeature <> null and +sourceTargetFeature.redefines(targetFeature) + + + + + <p>The <code>targetFeature</code> of a <code>FeatureChainExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>ParameterMembership</code>.</p> + + + OCL2.0 + targetFeature = + let nonParameterMemberships : Sequence(Membership) = ownedMembership-> + reject(oclIsKindOf(ParameterMembership)) in + if nonParameterMemberships->isEmpty() or + not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) + then null + else nonParameterMemberships->first().memberElement.oclAsType(Feature) + endif + + + + + <p>The <code>targetFeature</code> of a <code>FeatureChainExpression</code> must be featured within the <code>result</code> parameter of the <code>argument</code> <code>Expression</code> of the <code>FeatureChainExpression</code>.</p> + + + + + OCL2.0 + argument->notEmpty() implies + targetFeature.isFeaturedWithin(argument->first().result) + + + + + <p>The <code>operator</code> of a <code>FeatureChainExpression</code> must be <code>"."</code>.</p> + + + OCL2.0 + operator = '.' + + + + + <p>The <code>result</code> parameter of a <code>FeatureChainExpression</code> must specialize the feature chain of the <code>FeatureChainExpression</code>.</p> + + + OCL2.0 + let inputParameters : Sequence(Feature) = + ownedFeatures->select(direction = _'in') in +let sourceTargetFeature : Feature = + owningExpression.sourceTargetFeature() in +sourceTargetFeature <> null and +result.subsetsChain(inputParameters->first(), sourceTargetFeature) and +result.owningType = self + + + + + + + + + + <p>The <code>Feature</code> that is accessed by this <code>FeatureChainExpression<code>, which is its first non-<code>parameter</code> <code>member</code>.<p> + + + + + + + <p>Return the first <code>ownedFeature</code> of the first owned input <code>parameter</code> of this <code>FeatureChainExpression</code> (if any).</p> + + + + OCL2.0 + let inputParameters : Feature = ownedFeatures-> + select(direction = _'in') in +if inputParameters->isEmpty() or + inputParameters->first().ownedFeature->isEmpty() +then null +else inputParameters->first().ownedFeature->first() +endif + + + + + + + + + + + + + + + + + + <p>The <code>MetadataAccessExpressions</code> having a certain <code>Element</code> as their <code>referencedElement</code>.</p> + + + + + + + + <p>A <code>MetadataAccessExpression</code> is an <code>Expression</code> whose <code>result</code> is a sequence of instances of <code>Metaclasses</code> representing all the <code>MetadataFeature</code> annotations of the <code>referencedElement</code>. In addition, the sequence includes an instance of the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code>, with values for all the abstract syntax properties of the <code>referencedElement</code>.</p> + + + + <p>A <code>MetadataAccessExpression</code> must directly or indirectly specialize the base <code>MetadataAccessExpression</code> <code><em>Performances::metadataAccessEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::metadataAccessEvaluations') + + + + + <p>A <code>MetadataAccessExpression</code> must have at least one <code>ownedMember</code> that is not a <code>FeatureMembership</code>.</p> + + + OCL2.0 + ownedMembership->exists(not oclIsKindOf(FeatureMembership)) + + + + + <p>The <code>referencedElement</code> of a <code>MetadataAccessExpression</code> is the <code>memberElement</code> of its first <code>ownedMembership</code> that is not a <code>FeatureMembership</code>.</p> + + + OCL2.0 + referencedElement = + let elements : Sequence(Element) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement in + if elements->isEmpty() then null + else elements->first() + endif + + + + + + <p>The <code>Element</code> whose metadata is being accessed.</p> + + + + + + + <p>A <code>MetadataAccessExpression</code> is always model-level evaluable.</p> + + + + OCL2.0 + true + + + + + + + + + + + + + <p>Return the <code>ownedElements</code> of the <code>referencedElement</code> that are <code>MetadataFeatures</code> and have the <code>referencedElement</code> as an <code>annotatedElement</code>, plus a <code>MetadataFeature</code> whose <code>annotatedElement</code> is the <code>referencedElement</code>, whose <code>metaclass</code> is the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code> and whose <code>ownedFeatures</code> are bound to the values of the MOF properties of the <code>referencedElement</code>.</p> + + + + OCL2.0 + referencedElement.ownedElement-> + select(oclIsKindOf(MetadataFeature) + and annotatedElement->includes(referencedElement))-> + including(metaclassFeature()) + + + + + + + + + + + <p>Return a <code>MetadataFeature</code> whose <code>annotatedElement</code> is the <code>referencedElement</code>, whose <code>metaclass</code> is the reflective <code>Metaclass</code> corresponding to the MOF class of the <code>referencedElement</code> and whose <code>ownedFeatures</code> are bound to the MOF properties of the <code>referencedElement</code>.</p> + + + + + + + <p>An <code>IndexExpression</code> is an <code>OperatorExpression</code> whose operator is <code>"#"</code>, which resolves to the <code>Function</code> <em><code>BasicFunctions::'#'</code></em> from the Kernel Functions Library.</p> + + + + <p>The <code>result</code> of an <code>IndexExpression</code> must specialize the <code>result</code> parameter of the first <code>argument</code> of the <code>IndexExpression</code>, unless that <code>result</code> already directly or indirectly specializes the <code>DataType</code> <em><code>Collections::Array</code></em> from the Kernel Data Type Library.</p> + + + OCL2.0 + arguments->notEmpty() and +not arguments->first().result.specializesFromLibrary('Collections::Array') implies + result.specializes(arguments->first().result) + + + + + <p>The <code>operator</code> of an <code>IndexExpression</code> must be <code>"#"</code>.</p> + + + OCL2.0 + operator = '#' + + + + + + + + + + + <p>An <code>InstantiationExpression</code> is an <code>Expression</code> that instantiates its <code>instantiatedType</code>, binding some or all of the <code>features</code> of that <code>Type</code> to the <code>results</code> of its <code>arguments</code>.</p> + +<p><code>InstantiationExpression</code> is abstract, with concrete subclasses <code>InvocationExpression</code> and <code>ConstructorExpression</code>.</p> + + + + <p>An <code>InstantiationExpression</code> must own its <code>result</code> parameter.</p> + + + OCL2.0 + result.owningType = self + + + + + <p>The <code>instantiatedType</code> of an <code>InstantiationExpression</code> is given by the result of the <code>instantiatedType()</code> operation.</p> + + + OCL2.0 + instantiatedType = instantiatedType() + + + + + <p>An <code>InstantiationExpression</code> must have an <code>InstantiatedType</code>.</p> + + + OCL2.0 + instantiatedType() <> null + + + + + + <p>The <code>Expressions</code> whose <code>results</code> are bound to <code>features</code> of the <code>instantiatedType</code>. The <code>arguments</code> are ordered consistent with the order of the <code>features</code>, though they may not be one-to-one with all the <code>features</code>.</p> + +<p><strong>Note.</strong> The derivation of <code>argument</code> is given in the concrete subclasses of <code>InstantiationExpression</code>.</p> + + + + + + + <p>The <code>Type</code> that is being instantiated.</p> + + + + + + + <p>Return the <code>Type</code> to act as the <code>instantiatedType</code> for this <code>InstantiationExpression</code>. By default, this is the <code>memberElement</code> of the first <code>ownedMembership</code> that is not a <code>FeatureMembership</code>, which must be a <code>Type</code>.</p> + +<p><b>Note.</b> This operation is overridden in the subclass <code>OperatorExpression</code>.</p> + + + + OCL2.0 + let members : Sequence(Element) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement in +if members->isEmpty() or not members->first().oclIsKindOf(Type) then null +else typeMembers->first().oclAsType(Type) +endif + + + + + + + + + + + + + + + + + <p>A <code>ConstructorExpression</code> is an <code>InstantiationExpression</code> whose <code>result</code> specializes its <code>instantiatedType</code>, binding some or all of the <code>features</code> of the <code>instantiatedType</code> to the <code>results</code> of its <code>argument</code> <code>Expressions</code>.</p> + + + + <p>The <code>arguments</code> of a <code>ConstructorExpression</code> are the <code>value</code> <code>Expressions</code> of the <code>FeatureValues</code> of the <code>ownedFeatures</code> of its <code>result</code> parameter, in an order corresponding to the order of the <code>features</code> of the <code>instantiatedType</code> that the <code>result</code> <code>ownedFeatures</code> redefine.</p> + + + OCL2.0 + instantiatedType.feature->collect(f | + result.ownedFeatures->select(redefines(f)).valuation-> + select(v | v <> null).value +) + + + + + <p>Two different <code>ownedFeatures</code> of the <code>result</code> of a <code>ConstructorExpression</code> must not redefine the same <code>feature</code> of the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> + + + OCL2.0 + let features : OrderedSet(Feature) = instantiatedType.feature-> + select(visibility = VisibilityKind::public) in +result.ownedFeature->forAll(f1 | result.ownedFeature->forAll(f2 | + f1 <> f2 implies + f1.ownedRedefinition.redefinedFeature-> + intersection(f2.ownedRedefinition.redefinedFeature)-> + intersection(features)->isEmpty())) + + + + + <p>Each <code>ownedFeature</code> of the result of a <code>ConstructionExpression</code> must redefine exactly one public <code>feature</code> of the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> + + + OCL2.0 + let features : OrderedSet(Feature) = instantiatedType.feature-> + select(owningMembership.visibility = VisibilityKind::public) in +result.ownedFeature->forAll(f | + f.ownedRedefinition.redefinedFeature-> + intersection(features)->size() = 1) + + + + + <p>The <code>result</code> of a <code>ConstructorExpression</code> must own a <code>BindingConnector</code> between the <code>featureWithValue</code> and <code>value</code> <code>Expression</code> of any <code>FeatureValue</code> that is the effective default value for a <code>feature</code> of the <code>instantiatedType</code> of the <code>InvocationExpression</code>.</p> + + + OCL2.0 + TBD + + + + + <p>A <code>ConstructorExpression</code> must directly or indirectly specialize the <code>Expression</code> <em><code>Performances::constructorEvaluations</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializes('Performances::constructorEvaluations') + + + + + <p>The <code>result</code> of a <code>ConstructorExpression</code> must specialize the <code>instantiatedType</code> of the <code>ConstructorExpression</code>.</p> + + + OCL2.0 + result.specializes(instantiatedType) + + + + + <p>A <code>ConstructorExpression</code> must not have any <code>ownedFeatures</code> other than its <code>result</code>.</p> + + + OCL2.0 + ownedFeatures->excluding(result)->isEmpty() + + + + + + <p>A <code>ConstructorExpression</code> is model-level evaluable if all its argument <code>Expressions</code> are model-level evaluable.</p> + + + + + OCL2.0 + argument->forAll(modelLevelEvaluable(visited)) + + + + + + + + + + + + + + + <p>A <code>InstantiationExpression</code> that has a certain <code>argument</code> <code>Expression</code>.</p> + + + + + + + + + + <p>A <code>Structure</code> is a <code>Class</code> of objects in the modeled universe that are primarily structural in nature. While such an object is not itself behavioral, it may be involved in and acted on by <code>Behaviors</code>, and it may be the performer of some of them.</p> + + + + + <p>A <code>Structure</code> must directly or indirectly specialize the base <code>Structure</code> <code><em>Objects::Object</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Objects::Object') + + + + + <p>A <code>Structure</code> must not specialize a <code>Behavior</code>.</p> + + + OCL2.0 + ownedSpecialization.general->forAll(not oclIsKindOf(Behavior)) + + + + + + + + + + <p>The Expressions that have a certain Feature its owned or inherited <code>result</code>.</p> + + + + + + + + <p>A <code>Predicate</code> is a <code>Function</code> whose <code>result</code> <code>parameter</code> has type <code><em>Boolean</em></code> and multiplicity <code>1..1</code>.</p> + + + + + <p>A <code>Predicate</code> must directly or indirectly specialize the base <code>Predicate</code> <code><em>Performances::BooleanEvaluation</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::BooleanEvaluation') + + + + + + + <p>A <code>ReturnParameterMembership</code> is a <code>ParameterMembership</code> that indicates that the <code>ownedMemberParameter</code> is the <code>result</code> <code>parameter</code> of a <code>Function</code> or <code>Expression</code>. The <code>direction</code> of the <code>ownedMemberParameter</code> must be <code>out</code>.</p> + + + + + <p>The <code>owningType</code> of a <code>ReturnParameterMembership</code> must be a <code>Function</code> or <code>Expression</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(Function) or owningType.oclIsKindOf(Expression) + + + + + + <p>The <code>ownedMemberParameter</code> of a <code>ReturnParameterMembership</code> must have direction <code>out</code>. (This is a leaf operation that cannot be further redefined.)</p> + + + + OCL2.0 + FeatureDirectionKind::out + + + + + + + + + + + + <p>The Functions that have a certain Feature its owned or inherited <code>result</code>.</p> + + + + + + + + <p>An <code>Invariant</code> is a <code>BooleanExpression</code> that is asserted to have a specific <code><em>Boolean</em></code> result value. If <code>isNegated = false</code>, then the result is asserted to be true. If <code>isNegated = true</code>, then the result is asserted to be false.</p> + + + + + <p>An <code>Invariant</code> must directly or indirectly specialize either of the following <code>BooleanExpressions</code> from the Kernel Semantic Library: <code><em>Performances::trueEvaluations</em></code>, if <code>isNegated = false</code>, or <code><em>Performances::falseEvaluations</em></code>, if <code>isNegated = true</code>.</p> + + + OCL2.0 + if isNegated then + specializesFromLibrary('Performances::falseEvaluations') +else + specializesFromLibrary('Performances::trueEvaluations') +endif + + + + + + <p>Whether this <code>Invariant</code> is asserted to be false rather than true.</p> + + + + + + + + + <p>A <code>BooleanExpression</code> is a <em><code>Boolean</code></em>-valued <code>Expression</code> whose type is a <code>Predicate</code>. It represents a logical condition resulting from the evaluation of the <code>Predicate</code>.</p> + + + + + <p>A <code>BooleanExpression</code> must directly or indirectly specialize the base <code>BooleanExpression</code> <code><em>Performances::booleanEvaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::booleanEvaluations') + + + + + + <p>The Predicate that types the Expression.</p> + + + + <p>The <code>Predicate</code> that types this <code>BooleanExpression</code>.</p> + + + + + + + + <p>An <code>Expression</code> is a <code>Step</code> that is typed by a <code>Function</code>. An <code>Expression</code> that also has a <code>Function</code> as its <code>featuringType</code> is a computational step within that <code>Function</code>. An <code>Expression</code> always has a single <code>result</code> parameter, which redefines the <code>result</code> parameter of its defining <code>function</code>. This allows <code>Expressions</code> to be interconnected in tree structures, in which inputs to each <code>Expression</code> in the tree are determined as the results of other <code>Expression</code> in the tree.</p> + + + + + <p>Whether an <code>Expression</code> <code>isModelLevelEvaluable</code> is determined by the <code>modelLevelEvaluable()</code> operation.</p> + + + OCL2.0 + isModelLevelEvaluable = modelLevelEvaluable(Set(Element){}) + + + + + <p>An <code>Expression</code> must directly or indirectly specialize the base <code>Expression</code> <code><em>Performances::evaluations</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::evaluations') + + + + + <p>If this <code>Expression</code> is owned by a <code>FeatureValue</code>, then it must have the same <code>featuringTypes</code> as the <code>featureWithValue</code> of the <code>FeatureValue</code>.</p> + + + OCL2.0 + owningMembership <> null and +owningMembership.oclIsKindOf(FeatureValue) implies + let featureWithValue : Feature = + owningMembership.oclAsType(FeatureValue).featureWithValue in + featuringType = featureWithValue.featuringType + + + + + <p>If an <code>Expression</code> has an <code>Expression</code> owned via a <code>ResultExpressionMembership</code>, then the owning <code>Expression</code> must also own a <code>BindingConnector</code> between its <code>result</code> <code>parameter</code> and the <code>result</code> <code>parameter</code> of the result <code>Expression</code>.</p> + + + OCL2.0 + ownedMembership.selectByKind(ResultExpressionMembership)-> + forAll(mem | ownedFeature.selectByKind(BindingConnector)-> + exists(binding | + binding.relatedFeature->includes(result) and + binding.relatedFeature->includes(mem.ownedResultExpression.result))) + + + + + <p>The <code>result</code> parameter of an <code>Expression</code> is its <code>parameter</code> owned (possibly in a supertype) via a <code>ReturnParameterMembership</code> (if any).</p> + + + OCL2.0 + result = + let resultParams : Sequence(Feature) = + featureMemberships-> + selectByKind(ReturnParameterMembership). + ownedMemberParameter in + if resultParams->notEmpty() then resultParams->first() + else null + endif + + + + + + <p>An <code>Expression</code> must have exactly one <code>featureMembership</code> (owned or inherited) that is a <code>ResultParameterMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ReturnParameterMembership)-> + size() = 1 + + + + + <p>An <code>Expression</code> must have at most one <code>ResultExpressionMembership</code>.</p> + + + OCL2.0 + membership->selectByKind(ResultExpressionMembership)->size() <= 1 + + + + + + <p>The <code>Function</code> that types this <code>Expression</code>.</p> + + + + <p>This is the Function that types the Expression.</p> + + + + + + + + <p><p>An <code>output</code> <code>parameter</code> of the <code>Expression</code> whose value is the result of the <code>Expression</code>. The result of an <code>Expression</code> is either inherited from its <code>function</code> or it is related to the <code>Expression</code> via a <code>ReturnParameterMembership</code>, in which case it redefines the <code>result</code> <code>parameter</code> of its <code>function</code>.</p> + + + + + + + + <p>Whether this <code>Expression</code> meets the constraints necessary to be evaluated at <em>model level</em>, that is, using metadata within the model.</p> + + + + + + <p>Return whether this <code>Expression</code> is model-level evaluable. The <code>visited</code> parameter is used to track possible circular <code>Feature</code> references made from <code>FeatureReferenceExpressions</code> (see the redefinition of this operation for <code>FeatureReferenceExpression</code>). Such circular references are not allowed in model-level evaluable expressions.</p> + +<p>An <code>Expression</code> that is not otherwise specialized is model-level evaluable if it has no (non-implied) <code>ownedSpecializations</code> and all its <code>ownedFeatures</code> are either <code>in</code> parameters, the <code>result</code> <code>parameter</code> or a result <code>Expression</code> owned via a <code>ResultExpressionMembership</code>. The <code>parameters</code> must not have any <code>ownedFeatures</code> or a <code>FeatureValue</code>, and the result <code>Expression</code> must be model-level evaluable.</p> + + + + OCL2.0 + ownedSpecialization->forAll(isImplied) and +ownedFeature->forAll(f | + (directionOf(f) = FeatureDirectionKind::_'in' or f = result) and + f.ownedFeature->isEmpty() and f.valuation = null or + f.owningFeatureMembership.oclIsKindOf(ResultExpressionMembership) and + f.oclAsType(Expression).modelLevelEvaluable(visited) + + + + + + + + + + + + + + <p>If this <code>Expression</code> <code>isModelLevelEvaluable</code>, then evaluate it using the <code>target</code> as the context <code>Element</code> for resolving <code>Feature</code> names and testing classification. The result is a collection of <code>Elements</code>, which, for a fully evaluable <code>Expression</code>, will be a <code>LiteralExpression</code> or a <code>Feature</code> that is not an <code>Expression</code>.</p> + + + + OCL2.0 + isModelLevelEvaluable + + + + + OCL2.0 + let resultExprs : Sequence(Expression) = + ownedFeatureMembership-> + selectByKind(ResultExpressionMembership). + ownedResultExpression in +if resultExpr->isEmpty() then Sequence{} +else resultExprs->first().evaluate(target) +endif + + + + + + + + + + + <p>Model-level evaluate this <code>Expression</code> with the given <code>target</code>. If the result is a <code>LiteralBoolean</code>, return its <code>value</code>. Otherwise return <code>false</code>.</p> + + + + + OCL2.0 + let results: Sequence(Element) = evaluate(target) in + result->size() = 1 and + results->first().oclIsKindOf(LiteralBoolean) and + results->first().oclAsType(LiteralBoolean).value + + + + + + + + + + + + <p>The ResultExpressionMembership that owns the <code>ownedResultExpression</code>.</p> + + + + + + + + + <p>The Functions that hasve a certain <code>expression</code> as a step.</p> + + + + + + + + <p>A <code>Function</code> is a <code>Behavior</code> that has an <code>out</code> <code>parameter</code> that is identified as its <code>result</code>. A <code>Function</code> represents the performance of a calculation that produces the values of its <code>result</code> <code>parameter</code>. This calculation may be decomposed into <code>Expressions</code> that are <code>steps</code> of the <code>Function</code>.</p> + + + + + <p>A <code>Function</code> must have exactly one <code>featureMembership</code> (owned or inherited) that is a <code>ResultParameterMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ReturnParameterMembership)-> + size() = 1 + + + + + <p>A <code>Function</code> must directly or indirectly specialize the base <code>Function</code> <code><em>Performances::Evaluation</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::Evaluation') + + + + + <p>If a <code>Function</code> has an <code>Expression</code> owned via a <code>ResultExpressionMembership</code>, then the owning <code>Function</code> must also own a <code>BindingConnector</code> between its <code>result</code> <code>parameter</code> and the <code>result</code> <code>parameter</code> of the result <code>Expression</code>.</p> + + + OCL2.0 + ownedMembership.selectByKind(ResultExpressionMembership)-> + forAll(mem | ownedFeature.selectByKind(BindingConnector)-> + exists(binding | + binding.relatedFeature->includes(result) and + binding.relatedFeature->includes(mem.ownedResultExpression.result))) + + + + + <p>The <code>result</code> <code>parameter</code> of a <code>Function</code> is its <code>parameter</code> owned (possibly in a supertype) via a <code>ReturnParameterMembership</code> (if any).</p> + + + OCL2.0 + result = + let resultParams : Sequence(Feature) = + featureMemberships-> + selectByKind(ReturnParameterMembership). + ownedMemberParameter in + if resultParams->notEmpty() then resultParams->first() + else null + endif + + + + + <p>A <code>Function</code> must have at most one <code>ResultExpressionMembership</code>.</p> + + + OCL2.0 + membership->selectByKind(ResultExpressionMembership)->size() <= 1 + + + + + + <p>The <code>Expressions</code> that are <code>steps</code> in the calculation of the <code>result</code> of this <code>Function</code>.</p> + + + + <p>The set of expressions that represent computational steps or parts of a system of equations within the Function.</p> + + + + + + + + <p>The object or value that is the result of evaluating the Function.</p> + + + <p>The <code>result</code> <code>parameter</code> of the <code>Function</code>, which is owned by the <code>Function</code> via a <code>ReturnParameterMembership</code>.</p> + + + + + + + + <p>Whether this <code>Function</code> can be used as the <code>function</code> of a model-level evaluable <code>InvocationExpression</code>. Certain <code>Functions</code> from the Kernel Functions Library are considered to have <code>isModelLevelEvaluable = true</code>. For all other <code>Functions</code> it is <code>false</code>.</p> + +<p><strong>Note:</strong> See the specification of the KerML concrete syntax notation for <code>Expressions</code> for an identification of which library <code>Functions</code> are model-level evaluable.</p> + + + + + + + + <p>The Expressions that are typed by a certain <code>function</code>.</p> + + + + + + + + <p>A <code>ResultExpressionMembership</code> is a <code>FeatureMembership</code> that indicates that the <code>ownedResultExpression</code> provides the result values for the <code>Function</code> or <code>Expression</code> that owns it. The owning <code>Function</code> or <code>Expression</code> must contain a <code>BindingConnector</code> between the <code>result</code> <code>parameter</code> of the <code>ownedResultExpression</code> and the <code>result</code> <code>parameter</code> of the owning <code>Function</code> or <code>Expression</code>.</p> + + + + + <p>The <code>owningType</code> of a <code>ResultExpressionMembership</code> must be a <code>Function</code> or <code>Expression</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(Function) or owningType.oclIsKindOf(Expression) + + + + + + <p>The <code>Expression</code> that provides the result for the owner of the <code>ResultExpressionMembership</code>.</p> + + + + + + + + + + + + + + + + + <p>A <code>MultiplicityRange</code> is a <code>Multiplicity</code> whose value is defined to be the (inclusive) range of natural numbers given by the result of a <code>lowerBound</code> <code>Expression</code> and the result of an <code>upperBound</code> <code>Expression</code>. The result of these <code>Expressions</code> shall be of type <code><em>Natural</em></code>. If the result of the <code>upperBound</code> <code>Expression</code> is the unbounded value <code>*</code>, then the specified range includes all natural numbers greater than or equal to the <code>lowerBound</code> value. If no <code>lowerBound</code> <code>Expression</code>, then the default is that the lower bound has the same value as the upper bound, except if the <code>upperBound</code> evaluates to <code>*</code>, in which case the default for the lower bound is 0.</p> + + + + + <p>The <code>bounds</code> of a <code>MultiplicityRange</code> must have the same <code>featuringTypes</code> as the <code>MultiplicityRange</code>.</p> + + + OCL2.0 + bound->forAll(b | b.featuringType = self.featuringType) + + + + + <p>The <code>results</code> of the <code>bound</code> <code>Expression(s)</code> of a <code>MultiplicityRange</code> must be typed by <code><em>ScalarValues::Intger</em></code> from the Kernel Data Types Library. If a <code>bound</code> is model-level evaluable, then it must evaluate to a non-negative value.</p> + + + OCL2.0 + bound->forAll(b | + b.result.specializesFromLibrary('ScalarValues::Integer') and + let value : UnlimitedNatural = valueOf(b) in + value <> null implies value >= 0 +) + + + + + <p>If a <code>MultiplicityRange</code> has two <code>ownedMembers</code> that are <code>Expressions</code>, then the <code>lowerBound</code> is the first of these, otherwise it is <code>null</code>.</p> + + + OCL2.0 + lowerBound = + let ownedExpressions : Sequence(Expression) = + ownedMember->selectByKind(Expression) in + if ownedExpressions->size() < 2 then null + else ownedExpressions->first() + endif + + + + + <p>If a <code>MultiplicityRange</code> has one <code>ownedMember</code> that is an <code>Expression</code>, then this is the <code>upperBound</code>. If it has more than one <code>ownedMember</code> that is an <code>Expression</code>, then the <code>upperBound</code> is the second of those. Otherwise, it is null.</p> + + + OCL2.0 + upperBound = + let ownedExpressions : Sequence(Expression) = + ownedMember->selectByKind(Expression) in + if ownedExpressions->isEmpty() then null + else if ownedExpressions->size() = 1 then ownedExpressions->at(1) + else ownedExpressions->at(2) + endif endif + + + + + <p>The <code>bounds</code> of a <code>MultiplicityRange</code> are the <code>lowerBound</code> (if any) followed by the <code>upperBound</code>.</p> + + + OCL2.0 + bound = + if upperBound = null then Sequence{} + else if lowerBound = null then Sequence{upperBound} + else Sequence{lowerBound, upperBound} + endif endif + + + + + <p>The <code>lowerBound</code> (if any) and <code>upperBound</code> <code>Expressions</code> must be the first <code>ownedMembers</code> of a <code>MultiplicityRange</code>.</p> + + + OCL2.0 + if lowerBound = null then + ownedMember->notEmpty() and + ownedMember->at(1) = upperBound +else + ownedMember->size() > 1 and + ownedMember->at(1) = lowerBound and + ownedMember->at(2) = upperBound +endif + + + + + + <p>The <code>Expression</code> whose result provides the lower bound of the <code>MultiplicityRange</code>. If no <code>lowerBound</code> <code>Expression</code> is given, then the lower bound shall have the same value as the upper bound, unless the upper bound is unbounded (<code>*</code>), in which case the lower bound shall be 0.</p> + + + + + + + + <p>The <code>Expression</code> whose result is the upper bound of the <code>MultiplicityRange</code>.</p> + + + + + + + <p>The owned <code>Expressions</code> of the <code>MultiplicityRange</code> whose results provide its bounds. These must be the first <code>ownedMembers</code> of the <code>MultiplicityRange</code>.</p> + + + + + + + <p>Check whether this <code>MultiplicityRange</code> represents the range bounded by the given values <code>lower</code> and <code>upper</code>, presuming the <code>lowerBound</code> and <code>upperBound</code> <code>Expressions</code> are model-level evaluable.</p> + + + + OCL2.0 + valueOf(upperBound) = upper and +let lowerValue: UnlimitedNatural = valueOf(lowerBound) in +(lowerValue = lower or + lowerValue = null and + (lower = upper or + lower = 0 and upper = *)) + + + + + + + + + + + + + + + + <p>Evaluate the given <code>bound</code> <code>Expression</code> (at model level) and return the result represented as a MOF <code>UnlimitedNatural</code> value.</p> + + + + OCL2.0 + if bound = null or not bound.isModelLevelEvaluable then + null +else + let boundEval: Sequence(Element) = bound.evaluate(owningType) in + if boundEval->size() <> 1 then null else + let valueEval: Element = boundEval->at(1) in + if valueEval.oclIsKindOf(LiteralInfinity) then * + else if valueEval.oclIsKindOf(LiteralInteger) then + let value : Integer = + valueEval.oclAsKindOf(LiteralInteger).value in + if value >= 0 then value else null endif + else null + endif endif + endif +endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>Step</code> is a <code>Feature</code> that is typed by one or more <code>Behaviors</code>. <code>Steps</code> may be used by one <code>Behavior</code> to coordinate the performance of other <code>Behaviors</code>, supporting a steady refinement of behavioral descriptions. <code>Steps</code> can be ordered in time and can be connected using <code>Flows</code> to specify things flowing between their <code>parameters</code>.</p> + + + + + <p>A <code>Step</code> must directly or indirectly specialize the base <code>Step</code> <code><em>Performances::performances</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Performances::performances') + + + + + <p>A<code>Step</code> whose <code>owningType</code> is a <code>Behavior</code> or another <code>Step</code> must directly or indirectly specialize the <code>Step</code> <code><em>Performances::Performance::enclosedPerformance</em></code>.</p> + + + OCL2.0 + owningType <> null and + (owningType.oclIsKindOf(Behavior) or + owningType.oclIsKindOf(Step)) implies + specializesFromLibrary('Performances::Performance::enclosedPerformance') + + + + + <p>A composite <code>Step</code> whose <code>owningType</code> is a <code>Structure</code> or a <code>Feature</code> typed by a <code>Structure</code> must directly or indirectly specialize the <code>Step</code> <code><em>Objects::Object::ownedPerformance</em></code>.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(Structure) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKindOf(Structure)) implies + specializesFromLibrary('Objects::Object::ownedPerformance') + + + + + <p>A<code>Step</code> whose <code>owningType</code> is a <code>Behavior</code> or another <code>Step</code>, and which is composite, must directly or indirectly specialize the <code>Step</code> <code><em>Performances::Performance::subperformance</em></code>.</p> + + + OCL2.0 + owningType <> null and + (owningType.oclIsKindOf(Behavior) or + owningType.oclIsKindOf(Step)) and + self.isComposite implies + specializesFromLibrary('Performances::Performance::subperformance') + + + + + <p>The <code>behaviors</code> of a <code>Step</code> are all its <code>types</code> that are <code>Behaviors</code>.</p> + + + OCL2.0 + behavior = type->selectByKind(Behavior) + + + + + + <p>The <code>Behaviors</code> that type this <code>Step</code>.</p> + + + + + + + + <p>The <code>parameters</code> of this <code>Step</code>, which are defined as its <code>directedFeatures</code>, whose values are passed into and/or out of a performance of the <code>Step</code>.</p> + + + + + + + + + <p>A <code>Behavior </code>coordinates occurrences of other <code>Behaviors</code>, as well as changes in objects. <code>Behaviors</code> can be decomposed into <code>Steps</code> and be characterized by <code>parameters</code>.</p> + + + + + <p>A <code>Behavior</code> must not specialize a <code>Structure</code>.</p> + + + OCL2.0 + ownedSpecialization.general->forAll(not oclIsKindOf(Structure)) + + + + + <p>A <code>Behavior</code> must directly or indirectly specialize the base <code>Behavior</code> <code><em>Performances::Performance</em></code> from the Kernel Semantic Library.</p> + + + English + specializesFromLibrary('Performances::Performance') + + + + + <p>The <code>steps</code> of a <code>Behavior</code> are its <code>features</code> that are <code>Steps</code>.</p> + + + OCL2.0 + step = feature->selectByKind(Step) + + + + + + <p>The <code>Steps</code> that make up this <code>Behavior</code>.</p> + + + + + + + + <p>The parameters of this <code>Behavior</code>, which are defined as its <code>directedFeatures</code>, whose values are passed into and/or out of a performance of the <code>Behavior</code>.</p> + + + + + + + + + + + + + + + + + + + + + <p>A <code>ParameterMembership</code> is a <code>FeatureMembership</code> that identifies its <code>memberFeature</code> as a parameter, which is always owned, and must have a <code>direction</code>. A <code>ParameterMembership</code> must be owned by a <code>Behavior</code>, a <code>Step</code>, or the <code>result</code> parameter of a <code>ConstructorExpression</code>.</p> + + + + <p>The <code>ownedMemberParameter</code> of a <code>ParameterMembership</code> must have a <code>direction</code> equal to the result of the <code>parameterDirection()</code> operation.</p> + + + OCL2.0 + ownedMemberParameter.direction = parameterDirection() + + + + + <p>A <code>ParameterMembership</code> must be owned by a <code>Behavior</code>,<code>Step</code>, or the <code>result</code> parameter of a <code>ConstructorExpression</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(Behavior) or owningType.oclIsKindOf(Step) or +owningType.owningMembership.oclIsKindOf(ReturnParameterMembership) and + owningType.owningNamespace.oclIsKindOf(ConstructorExpression) + + + + + + <p>The <code>Feature</code> that is identified as a <code>parameter</code> by this <code>ParameterMembership</code>.</p> + + + + + + + + <p>Return the required value of the <code>direction</code> of the <code>ownedMemberParameter</code>. By default, this is <code>in</code>.</p> + + + + OCL2.0 + FeatureDirectionKind::_'in' + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>Metaclass</code> is a <code>Structure</code> used to type <code>MetadataFeatures</code>.</p> + + + + <p>A <code>Metaclass</code> must directly or indirectly specialize the base <code>Metaclass</code> <code><em>Metaobjects::Metaobject</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Metaobjects::Metaobject') + + + + + + + <p>A <code>MetadataFeature</code> is a <code>Feature</code> that is an <code>AnnotatingElement</code> used to annotate another <code>Element</code> with metadata. It is typed by a <code>Metaclass</code>. All its <code>ownedFeatures</code> must redefine <code>features</code> of its <code>metaclass</code> and any feature bindings must be model-level evaluable.</p> + + + + + + <p>A <code>MetadataFeature</code> must have exactly one <code>type</code> that is a <code>Metaclass</code>.</p> + + + OCL2.0 + type->selectByKind(Metaclass).size() = 1 + + + + + <p>The <code>metaclass</code> of a <code>MetadataFeature</code> must not be abstract.</p> + + + OCL2.0 + not metaclass.isAbstract + + + + + <p>A <code>MetadataFeature</code> must directly or indirectly specialize the base <code>MetadataFeature</code> <code><em>Metaobjects::metaobjects</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Metaobjects::metaobjects') + + + + + <p>Each <code>ownedFeature</code> of a <code>MetadataFeature</code> must have no declared name, redefine a single <code>Feature</code>, either have no <code>featureValue</code> or a <code>featureValue</code> with a <code>value</code> <code>Expression</code> that is model-level evaluable, and only have <code>ownedFeatures</code> that also meet these restrictions.</p> + + + OCL2.0 + ownedFeature->closure(ownedFeature)->forAll(f | + f.declaredName = null and f.declaredShortName = null and + f.valuation <> null implies f.valuation.value.isModelLevelEvaluable and + f.redefinition.redefinedFeature->size() = 1) + + + + + <p>The <code>metaclass</code> of a <code>MetadataFeature</code> is one of its <code>types</code> that is a <code>Metaclass</code>. + + + OCL2.0 + metaclass = + let metaclassTypes : Sequence(Type) = type->selectByKind(Metaclass) in + if metaclassTypes->isEmpty() then null + else metaClassTypes->first() + endif + + + + + <p>The <code>annotatedElements</code> of a <code>MetadataFeature</code> must have an abstract syntax metaclass consistent with the <code>annotatedElement</code> declarations for the <code>MetadataFeature</code>.</p> + + + OCL2.0 + let baseAnnotatedElementFeature : Feature = + resolveGlobal('Metaobjects::Metaobject::annotatedElement').memberElement. + oclAsType(Feature) in +let annotatedElementFeatures : OrderedSet(Feature) = feature-> + select(specializes(baseAnnotatedElementFeature))-> + excluding(baseAnnotatedElementFeature) in +annotatedElementFeatures->notEmpty() implies + let annotatedElementTypes : Set(Feature) = + annotatedElementFeatures.typing.type->asSet() in + let metaclasses : Set(Metaclass) = + annotatedElement.oclType().qualifiedName->collect(qn | + resolveGlobal(qn).memberElement.oclAsType(Metaclass)) in + metaclasses->forAll(m | annotatedElementTypes->exists(t | m.specializes(t))) + + + + + <p>If this <code>MetadataFeature</code> is an application of <code><em>SemanticMetadata</em></code>, then its <code>annotatingElement</code> must be a <code>Type</code>. The annotated <code>Type</code> must then directly or indirectly specialize the specified value of the <code><em>baseType</em></code>, <em>unless</em> the <code>Type</code> is a <code>Classifier</code> and the <code><em>baseType</em></code> represents a kind of <code>Feature</code>, in which case the <code>Classifier</code> must directly or indirectly specialize each of the <code>types</code> of the <code>Feature</code>.</p> + + + OCL2.0 + isSemantic() implies + let annotatedTypes : Sequence(Type) = + annotatedElement->selectAsKind(Type) in + let baseTypes : Sequence(MetadataFeature) = + evaluateFeature(resolveGlobal( + 'Metaobjects::SemanticMetadata::baseType'). + memberElement. + oclAsType(Feature))-> + selectAsKind(MetadataFeature) in + annotatedTypes->notEmpty() and + baseTypes()->notEmpty() and + baseTypes()->first().isSyntactic() implies + let annotatedType : Type = annotatedTypes->first() in + let baseType : Element = baseTypes->first().syntaxElement() in + if annotatedType.oclIsKindOf(Classifier) and + baseType.oclIsKindOf(Feature) then + baseType.oclAsType(Feature).type-> + forAll(t | annotatedType.specializes(t)) + else if baseType.oclIsKindOf(Type) then + annotatedType.specializes(baseType.oclAsType(Type)) + else + true + endif + + + + + + + <p>The <code>type</code> of this <code>MetadataFeature</code>, which must be a <code>Metaclass</code>.</p> + + + + + + + <p>If the given <code>baseFeature</code> is a <code>feature</code> of this <code>MetadataFeature</code>, or is directly or indirectly redefined by a <code>feature</code>, then return the result of evaluating the appropriate (model-level evaluable) <code>value</code> <code>Expression</code> for it (if any), with the <code>MetadataFeature</code> as the target.</p> + + + + OCL2.0 + let selectedFeatures : Sequence(Feature) = feature-> + select(closure(ownedRedefinition.redefinedFeature)-> + includes(baseFeature)) in +if selectedFeatures->isEmpty() then null +else + let selectedFeature : Feature = selectedFeatures->first() in + let featureValues : FeatureValue = selectedFeature-> + closure(ownedRedefinition.redefinedFeature).ownedMember-> + selectAsKind(FeatureValue) in + if featureValues->isEmpty() then null + else featureValues->first().value.evaluate(self) + endif + + + + + + + + + + + <p>Check if this <code>MetadataFeature</code> has a <code>metaclass</code> which is a kind of <code><em>SemanticMetadata</code>.<p> + + + + OCL2.0 + specializesFromLibrary('Metaobjects::SemanticMetadata') + + + + + + + + + <p>Check if this <code>MetadataFeature</code> has a <code>metaclass</code> that is a kind of <code><em>KerML::Element</em></code> (that is, it is from the reflective abstract syntax model).</p> + + + + OCL2.0 + specializesFromLibrary('KerML::Element') + + + + + + + + + <p>If this <code>MetadataFeature</code> reflectively represents a model element, then return the corresponding <code>Element</code> instance from the MOF abstract syntax representation of the model.</p> + + + + English + No OCL + + + + + OCL2.0 + isSyntactic() + + + + + + + + + + + + <p>The MetadataFeatures whose <code>type</code> is a certain Metaclass.</p> + + + + + + + + + + <p>A <code>DataType</code> is a <code>Classifier</code> of things (in the universe) that can only be distinguished by how they are related to other things (via Features). This means multiple things classified by the same <code>DataType</code></p> + +<ul> + <li>Cannot be distinguished when they are related to other things in exactly the same way, even when they are intended to be about different things.</li> + <li>Can be distinguished when they are related to other things in different ways, even when they are intended to be about the same thing.</li> +</ul> + + + + + <p>A <code>DataType</code> must not specialize a <code>Class</code> or an <code>Association</code>.</p> + + + OCL2.0 + ownedSpecialization.general-> + forAll(not oclIsKindOf(Class) and + not oclIsKindOf(Association)) + + + + + <p>A <code>DataType</code> must directly or indirectly specialize the base <code>DataType</code> <code><em>Base::DataValue</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::DataValue') + + + + + + + + + <p>An <code>AssociationStructure</code> is an <code>Association</code> that is also a <code>Structure</code>, classifying link objects that are both links and objects. As objects, link objects can be created and destroyed, and their non-end <code>Features</code> can change over time. However, the values of the end <code>Features</code> of a link object are fixed and cannot change over its lifetime.</p> + + + + <p>An <code>AssociationStructure</code> must directly or indirectly specialize the base <code>AssociationStructure</code> <code><em>Objects::LinkObject</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Objects::LinkObject') + + + + + <p>A binary <code>AssociationStructure</code> must directly or indirectly specialize the base <code>AssociationStructure</code> <code><em>Objects::BinaryLinkObject</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + endFeature->size() = 2 implies + specializesFromLibrary('Objects::BinaryLinkObject') + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <p>An <code>Association</code> is a <code>Relationship</code> and a <code>Classifier</code> to enable classification of links between things (in the universe). The co-domains (<code>types</code>) of the <code>associationEnd</code> <code>Features</code> are the <code>relatedTypes</code>, as co-domain and participants (linked things) of an <code>Association</code> identify each other.</p> + + + + + <p>The <code>relatedTypes</code> of an <code>Association</code> are the <code>types</code> of its <code>associationEnds</code>.</p> + + + OCL2.0 + relatedType = associationEnd.type + + + + + <p>An <code>Association</code> must directly or indirectly specialize the base <code>Association</code> <code><em>Links::Link</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Links::Link') + + + + + <p>If an <code>Association</code> is also a kind of <code>Structure</code>, then it must be an <code>AssociationStructure</code>.</p> + + + English + oclIsKindOf(Structure) = oclIsKindOf(AssociationStructure) + + + + + <p>A binary <code>Association</code> must directly or indirectly specialize the base <code>Association</code> <code><em>Links::binaryLink</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + associationEnd->size() = 2 implies + specializesFromLibrary('Links::BinaryLink') + + + + + <p>If an <code>Association</code> is concrete (not abstract), then it must have at least two <code>relatedTypes</code>.</p> + + + OCL2.0 + not isAbstract implies relatedType->size() >= 2 + + + + + <p>If an <code>Association</code> has more than two <code>associationEnds</code>, then it must <em>not</em> specialize, directly or indirectly, the <code>Association</code> <em><code>BinaryLink</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + associationEnds->size() > 2 implies + not specializesFromLibrary('Links::BinaryLink') + + + + + <p>The <code>sourceType</code> of an <code>Association</code> is its first <code>relatedType</code> (if any).</p> + + + OCL2.0 + sourceType = + if relatedType->isEmpty() then null + else relatedType->first() endif + + + + + OCL2.0 + targetType = + if relatedType->size() < 2 then OrderedSet{} + else + relatedType-> + subSequence(2, relatedType->size())-> + asOrderedSet() + endif + + + + + <p>The <code>ownedEndFeatures</code> of an <code>Association</code> must have exactly one <code>type</code></p>. + + + OCL2.0 + ownedEndFeature->forAll(type->size() = 1) + + + + + + + <p>The <code>types</code> of the <code>associationEnds</code> of the <code>Association</code>, which are the <code>relatedElements</code> of the <code>Association</code> considered as a <code>Relationship</code>.</p> + + + + + + + + <p>The source <code>relatedType</code> for this <code>Association</code>. It is the first <code>relatedType</code> of the <code>Association</code>.</p> + + + + + + + + <p>The target <code>relatedTypes</code> for this <code>Association</code>. This includes all the <code>relatedTypes</code> other than the <code>sourceType</code>.</p> + + + + + + + + <p>The <code>features</code> of the <code>Association</code> that identify the things that can be related by it. A concrete <code>Association</code> must have at least two <code>associationEnds</code>. When it has exactly two, the <code>Association</code> is called a <em>binary</em> <code>Association</code>.</p> + + + + + + + + + + + + <p>The (at most one) <code>ownedMembership</code> of this Feature that is the FeatureValue that provides the value of the Feature.</p> + + + + + + + + + <p>The FeatureValue that owns the <code>value</code> Expression.</p> + + + + + + + + <p>A <code>FeatureValue</code> is a <code>Membership</code> that identifies a particular member <code>Expression</code> that provides the value of the <code>Feature</code> that owns the <code>FeatureValue</code>. The value is specified as either a bound value or an initial value, and as either a concrete or default value. A <code>Feature</code> can have at most one <code>FeatureValue</code>.</p> + +<p>The result of the <code>value</code> <code>Expression</code> is bound to the <code>featureWithValue</code> using a <code>BindingConnector</code>. If <code>isInitial = false</code>, then the <code>featuringType</code> of the <code>BindingConnector</code> is the same as the <code>featuringType</code> of the <code>featureWithValue</code>. If <code>isInitial = true</code>, then the <code>featuringType</code> of the <code>BindingConnector</code> is restricted to its <code>startShot</code>. + +<p>If <code>isDefault = false</code>, then the above semantics of the <code>FeatureValue</code> are realized for the given <code>featureWithValue</code>. Otherwise, the semantics are realized for any individual of the <code>featuringType</code> of the <code>featureWithValue</code>, unless another value is explicitly given for the <code>featureWithValue</code> for that individual.</p> + + + + + <p>If <code>isDefault = false</code>, then the <code>featureWithValue</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> whose <code>relatedElements</code> are the <code>featureWithValue</code> and a feature chain consisting of the <code>value</code> <code>Expression</code> and its <code>result</code>. If <code>isInitial = false</code>, then this <code>BindingConnector</code> must have <code>featuringTypes</code> that are the same as those of the <code>featureWithValue</code>. If <code>isInitial = true</code>, then the <code>BindingConnector</code> must have <code><em>that.startShot</em><code> as its <code>featuringType</code>.</p> + + + OCL2.0 + not isDefault implies + featureWithValue.ownedMember-> + selectByKind(BindingConnector)->exists(b | + b.relatedFeature->includes(featureWithValue) and + b.relatedFeature->exists(f | + f.chainingFeature = Sequence{value, value.result}) and + if not isInitial then + b.featuringType = featureWithValue.featuringType + else + b.featuringType->exists(t | + t.oclIsKindOf(Feature) and + t.oclAsType(Feature).chainingFeature = + Sequence{ + resolveGlobal('Base::things::that'). + memberElement, + resolveGlobal('Occurrences::Occurrence::startShot'). + memberElement + } + ) + endif) + + + + + <p>All <code>Features</code> directly or indirectly redefined by the <code>featureWithValue</code> of a <code>FeatureValue</code> must have only default <code>FeatureValues</code>.</p> + + + OCL2.0 + featureWithValue.redefinition.redefinedFeature-> + closure(redefinition.redefinedFeature).valuation-> + forAll(isDefault) + + + + + <p>If a <code>FeatureValue</code> has <code>isInitial = true</code>, then its <code>featureWithValue</code> must have <code>isVariable = true</code>.</p> + + + OCL2.0 + isInitial implies featureWithValue.isVariable + + + + + + <p>The Feature to be provided a value.</p> + + + <p>The <code>Feature</code> to be provided a value.</p> + + + + + + + + <p>The Expression that provides the value as a result.</p> + + + <p>The <code>Expression</code> that provides the value of the <code>featureWithValue</code> as its <code>result</code>.</p> + + + + + + + + <p>Whether this <code>FeatureValue</code> specifies a bound value or an initial value for the <code>featureWithValue</code>.</p> + + + + + + + <p>Whether this <code>FeatureValue</code> is a concrete specification of the bound or initial value of the <code>featureWithValue</code>, or just a default value that may be overridden.</p> + + + + + + + + + + <p>A <code>Connector</code> is a usage of <code>Associations</code>, with links restricted according to instances of the <code>Type</code> in which they are used (domain of the <code>Connector</code>). The <code>associations</code> of the <code>Connector</code> restrict what kinds of things might be linked. The <code>Connector</code> further restricts these links to be between values of <code>Features</code> on instances of its domain.</p> + + + + + <p>The <code>relatedFeatures</code> of a <code>Connector</code> are the referenced <code>Features</code> of its <code>connectorEnds</code>.</p> + + + OCL2.0 + relatedFeature = connectorEnd.ownedReferenceSubsetting-> + select(s | s <> null).subsettedFeature + + + + + <p>Each <code>relatedFeature</code> of a <code>Connector</code> must have each <code>featuringType</code> of the <code>Connector</code> as a direct or indirect <code>featuringType</code> (where a <code>Feature</code> with no <code>featuringType</code> is treated as if the <code>Classifier</code> <code><em>Base::Anything</em></code> was its <code>featuringType</code>).</p> + + + OCL2.0 + relatedFeature->forAll(f | + if featuringType->isEmpty() then f.isFeaturedWithin(null) + else featuringType->forAll(t | f.isFeaturedWithin(t)) + endif) + + + + + <p>The <code>sourceFeature</code> of a <code>Connector</code> is its first <code>relatedFeature</code> (if any).</p> + + + OCL2.0 + sourceFeature = + if relatedFeature->isEmpty() then null + else relatedFeature->first() + endif + + + + + <p>The <code>targetFeatures</code> of a <code>Connector</code> are the <code>relatedFeatures</code> other than the <code>sourceFeature</code>.</p> + + + OCL2.0 + targetFeature = + if relatedFeature->size() < 2 then OrderedSet{} + else + relatedFeature-> + subSequence(2, relatedFeature->size())-> + asOrderedSet() + endif + + + + + <p>If a <code>Connector</code> is concrete (not abstract), then it must have at least two <code>relatedFeatures</code>.</p> + + + OCL2.0 + not isAbstract implies relatedFeature->size() >= 2 + + + + + <p>A <code>Connector</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Links::links</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Links::links') + + + + + <p>A <code>Connector</code> for an <code>AssociationStructure</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Objects::linkObjects</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + association->exists(oclIsKindOf(AssociationStructure)) implies + specializesFromLibrary('Objects::linkObjects') + + + + + <p>A binary <code>Connector</code> for an <code>AssociationStructure</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Objects::binaryLinkObjects</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + connectorEnds->size() = 2 and +association->exists(oclIsKindOf(AssociationStructure)) implies + specializesFromLibrary('Objects::binaryLinkObjects') + + + + + <p>A binary <code>Connector</code> must directly or indirectly specialize the base <code>Connector</code> <code><em>Links::binaryLinks</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + connectorEnd->size() = 2 implies + specializesFromLibrary('Links::binaryLinks') + + + + + <p>If a <code>Connector</code> has more than two <code>connectorEnds</code>, then it must <em>not</em> specialize, directly or indirectly, the <code>Association</code> <em><code>BinaryLink</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + connectorEnds->size() > 2 implies + not specializesFromLibrary('Links::BinaryLink') + + + + + <p>The <code>defaultFeaturingType</code> of a <code>Connector</code> is the innermost common direct or indirect <code>featuringType</code> of the <code>relatedFeatures</code> of the <code>Connector</code>, so that each <code>relatedElement</code> is featured within the <code>defaultFeaturingType</code>, if such exists.</p> + + + OCL2.0 + let commonFeaturingTypes : OrderedSet(Type) = + relatedFeature->closure(featuringType)->select(t | + relatedFeature->forAll(f | f.isFeaturedWithin(t)) + ) in +let nearestCommonFeaturingTypes : OrderedSet(Type) = + commonFeaturingTypes->reject(t1 | + commonFeaturingTypes->exists(t2 | + t2 <> t1 and t2->closure(featuringType)->contains(t1) + )) in +if nearestCommonFeaturingTypes->isEmpty() then null +else nearestCommonFeaturingTypes->first() +endif + + + + + + + <p>The <code>Features</code> that are related by this <code>Connector</code> considered as a <code>Relationship</code> and that restrict the links it identifies, given by the referenced <code>Features</code> of the <code>connectorEnds</code> of the <code>Connector</code>.</p> + + + + + + + + <p>The <code>Associations</code> that type the <code>Connector</code>.</p> + + + + + + + + <p>The <code>endFeatures</code> of a <code>Connector</code>, which redefine the <code>endFeatures</code> of the <code>associations</code> of the <code>Connector</code>. The <code>connectorEnds</code> determine via <code>ReferenceSubsetting</code> <code>Relationships</code> which <code>Features</code> are related by the <code>Connector</code>.</p> + + + + + + + <p>The source <code>relatedFeature</code> for this <code>Connector</code>. It is the first <code>relatedFeature</code>.</p> + + + + + + + <p>The target <code>relatedFeatures</code> for this <code>Connector</code>. This includes all the <code>relatedFeatures</code> other than the <code>sourceFeature</code>.</p> + + + + + + + <p>The innermost <code>Type</code> that is a common direct or indirect <code>featuringType</code> of the <code>relatedFeatures</code>, such that, if it exists and was the <code>featuringType</code> of this <code>Connector</code>, the <code>Connector</code> would satisfy the <code>checkConnectorTypeFeaturing</code> constraint.</p> + + + + + + + + + + + + + + + + + + + + + + + + + + + <p>A <code>BindingConnector</code> is a binary <code>Connector</code> that requires its <code>relatedFeatures</code> to identify the same things (have the same values).</p> + + + + + <p>A <code>BindingConnector</code> must be binary.</p> + + + OCL2.0 + relatedFeature->size() = 2 + + + + + <p>A <code>BindingConnector</code> must directly or indirectly specialize the base <code>BindingConnector</code> <code><em>Links::selfLinks</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Links::selfLinks') + + + + + + + + + + + + + <p>A <code>Succession</code> is a binary <code>Connector</code> that requires its <code>relatedFeatures</code> to happen separately in time.</p> + + + + + <p>A <code>Succession</code> must directly or indirectly specialize the Feature <code><em>Occurrences::happensBeforeLinks</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Occurrences::happensBeforeLinks') + + + + + + + + + + + + + + + + + + + + <p>A <code>Connector</code> with a certain <code>defaultFeaturingType</code>.</p> + + + + + + + + + + + + + <p>A <code>PortUsage</code> is a usage of a <code>PortDefinition</code>. A <code>PortUsage</code> itself as well as all its <code>nestedUsages</code> must be referential (non-composite).</p> + + + + <p>The <code>nestedUsages</code> of a <code>PortUsage</code> that are not themselves <code>PortUsages</code> must not be composite.</p> + + + OCL2.0 + nestedUsage-> + reject(oclIsKindOf(PortUsage))-> + forAll(not isComposite) + + + + + <p>A <code>PortUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Ports::ports</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Ports::ports') + + + + + <p>A composite <code>PortUsage</code> with an <code>owningType</code> that is a <code>PortDefinition</code> or <code>PortUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Ports::Port::subports</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(PortDefinition) or + owningType.oclIsKindOf(PortUsage)) implies + specializesFromLibrary('Ports::Port::subports') + + + + + <p>Unless a <code>PortUsage</code> has an <code>owningType</code> that is a <code>PortDefinition</code> or a <code>PortUsage</code>, it must be referential (non-composite).</p> + + + OCL2.0 + owningType = null or +not owningType.oclIsKindOf(PortDefinition) and +not owningType.oclIsKindOf(PortUsage) implies + isReference + + + + + <p>A <code>PortUsage</code> whose <code>owningType</code> is a <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>PortUsage</code> <em><code>Parts::Part::ownedPorts</code></em> from the Systems Model Library.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::ownedPorts') + + + + + + <p>The <code>occurrenceDefinitions</code> of this <code>PortUsage</code>, which must all be <code>PortDefinitions<code>.</p> + + + + + + + + + <p>The PortUsages that are typed by a certain PortDefinition.</p> + + + + + + + + <p>A <code>PortDefinition</code> defines a point at which external entities can connect to and interact with a system or part of a system. Any <code>ownedUsages</code> of a <code>PortDefinition</code>, other than <code>PortUsages</code>, must not be composite.</p> + + + + + + + <p>The <code>conjugatedPortDefinition</code> of a <code>PortDefinition</code> is the <code>ownedMember</code> that is a <code>ConjugatedPortDefinition</code>.</p> + + + OCL2.0 + conjugatedPortDefinition = +let conjugatedPortDefinitions : OrderedSet(ConjugatedPortDefinition) = + ownedMember->selectByKind(ConjugatedPortDefinition) in +if conjugatedPortDefinitions->isEmpty() then null +else conjugatedPortDefinitions->first() +endif + + + + + <p>The <code>ownedUsages</code> of a <code>PortDefinition</code> that are not <code>PortUsages</code> must not be composite.</p> + + + OCL2.0 + ownedUsage-> + reject(oclIsKindOf(PortUsage))-> + forAll(not isComposite) + + + + + <p>Unless it is a <code>ConjugatedPortDefinition</code>, a <code>PortDefinition</code> must have exactly one <code>ownedMember</code> that is a <code>ConjugatedPortDefinition</code>.</p> + + + OCL2.0 + not oclIsKindOf(ConjugatedPortDefinition) implies + ownedMember-> + selectByKind(ConjugatedPortDefinition)-> + size() = 1 + + + + + <p>A <code>PortDefinition</code> must directly or indirectly specialize the <code>PortDefinition</code> <em><code>Ports::Port</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Ports::Port') + + + + + + + <p>The <codeConjugatedPortDefinition</code> that is conjugate to this <code>PortDefinition</code>.</p> + + + + + + + + + + <p>The PortConjugation that relates a certain PortDefinition to its ConjugatedPortDefinition (if any).</p> + + + + + + + + <p>A <code>ConjugatedPortDefinition</code> is a <code>PortDefinition</code> that is a <code>PortDefinition</code> of its original <code>PortDefinition</code>. That is, a <code>ConjugatedPortDefinition</code> inherits all the <code>features</code> of the original <code>PortDefinition</code>, but input <code>flows</code> of the original <code>PortDefinition</code> become outputs on the <code>ConjugatedPortDefinition</code> and output <code>flows</code> of the original <code>PortDefinition</code> become inputs on the <code>ConjugatedPortDefinition</code>. Every <code>PortDefinition</code> (that is not itself a <code><code>ConjugatedPortDefinition</code></code>) has exactly one corresponding <code>ConjugatedPortDefinition</code>, whose effective name is the name of the <code>originalPortDefinition</code>, with the character <code>~</code> prepended.</p> + + + + <p>The <code>originalPortDefinition</code> of the <code>ownedPortConjugator</code> of a <code>ConjugatedPortDefinition</code> must be the <code>originalPortDefinition</code> of the <code>ConjugatedPortDefinition</code>.</p> + + + OCL2.0 + ownedPortConjugator.originalPortDefinition = originalPortDefinition + + + + + <p>A <code>ConjugatedPortDefinition</code> must not itself have a <code>conjugatedPortDefinition</code>. + + + OCL2.0 + conjugatedPortDefinition = null + + + + + + <p>The original <code>PortDefinition</code> for this <code>ConjugatedPortDefinition</code>, which is the <code>owningNamespace</code> of the <code>ConjugatedPortDefinition</code>.</p> + + + + + + + <p>The <code>PortConjugation</code> that is the <code>ownedConjugator</code> of this <code>ConjugatedPortDefinition</code>, linking it to its <code>originalPortDefinition</code>.</p> + + + + + + + <p>If the <code>name</code> of the <code>originalPortDefinition</code> is non-empty, then return that with the character <code>~</code> prepended.</p> + + + + OCL2.0 + let originalName : String = originalPortDefinition.name in +if originalName = null then null +else '~' + originalName +endif + + + + + + + + + + + + <p>A <code>PortConjugation</code> is a <code>Conjugation</code> <code>Relationship</code> between a <code>PortDefinition</code> and its corresponding <code>ConjugatedPortDefinition</code>. As a result of this <code>Relationship</code>, the <code>ConjugatedPortDefinition</code> inherits all the <code>features</code> of the original <code>PortDefinition</code>, but input <code>flows</code> of the original <code>PortDefinition</code> become outputs on the <code>ConjugatedPortDefinition</code> and output <code>flows</code> of the original <code>PortDefinition</code> become inputs on the <code>ConjugatedPortDefinition</code>.</code></p> + + + + + + <p>The <code>PortDefinition</code> being conjugated.</p> + + + + + + + <p>The <code>ConjugatedPortDefinition</code> that is conjugate to the <code>originalPortDefinition</code>.</p> + + + + + + + + + <p>A <code>ConjugatedPortTyping</code> is a <code>FeatureTyping</code> whose <code>type</code> is a <code>ConjugatedPortDefinition</code>. (This relationship is intended to be an abstract-syntax marker for a special surface notation for conjugated typing of ports.)</p> + + + + <p>The <code>portDefinition</code> of a <code>ConjugatedPortTyping</code> is the <code>originalPortDefinition</code> of the <code>conjugatedPortDefinition</code> of the <code>ConjugatedPortTyping</code>.</p> + + + OCL2.0 + portDefinition = conjugatedPortDefinition.originalPortDefinition + + + + + + <p>The <code>originalPortDefinition</code> of the <code>conjugatedPortDefinition</code> of this <code>ConjugatedPortTyping</code>.</p> + + + + + + + <p>The <code>type</code> of this <code>ConjugatedPortTyping</code> considered as a <code>FeatureTyping</code>, which must be a <code>ConjugatedPortDefinition</code>.</p> + + + + + + + + + + <p>The ConjugatedPortTypings whose <code>conjugatedPortDefinition</code> a certain ConjugatedPortDefinition.</p> + + + + + + + + + <p>The ConjugatedPortTypings whose <code>portDefinition</code> is a certain PortDefinition.</p> + + + + + + + + + + <p>An <code>AttributeDefinition</code> is a <code>Definition</code> and a <code>DataType</code> of information about a quality or characteristic of a system or part of a system that has no independent identity other than its value. All <code>features</code> of an <code>AttributeDefinition</code> must be referential (non-composite).</p> + +<p>As a <code>DataType</code>, an <code>AttributeDefinition</code> must specialize, directly or indirectly, the base <code>DataType</code> <code><em>Base::DataValue</em></code> from the Kernel Semantic Library.</p> + + + + <p>All <code>features</code> of an <code>AttributeDefinition</code> must be non-composite.</p> + + + OCL2.0 + feature->forAll(not isComposite) + + + + + + + + + <p>The AttributeUsages that are typed by a certain DataType.</p> + + + + + + + + <p>An <code>AttributeUsage</code> is a <code>Usage</code> whose type is a <code>DataType</code>. Nominally, if the type is an <code>AttributeDefinition</code>, an <code>AttributeUsage</code> is a usage of a <code>AttributeDefinition</code> to represent the value of some system quality or characteristic. However, other kinds of kernel <code>DataTypes</code> are also allowed, to permit use of <code>DataTypes</code> from the Kernel Model Libraries. An <code>AttributeUsage</code> itself as well as all its nested <code>features</code> must be referential (non-composite).</p> + +<p>An <code>AttributeUsage</code> must specialize, directly or indirectly, the base <code>Feature</code> <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> + + + + <p>An <code>AttributeUsage</code> is always referential.</p> + + + OCL2.0 + isReference + + + + + <p>All <code>features</code> of an <code>AttributeUsage</code> must be non-composite.</p> + + + OCL2.0 + feature->forAll(not isComposite) + + + + + <p>An <code>AttributeUsage</code> must directly or indirectly specialize <code><em>Base::dataValues</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Base::dataValues') + + + + + + <p>The <code>DataTypes</code> that are the types of this <code>AttributeUsage</code>. Nominally, these are <code>AttributeDefinitions</code>, but other kinds of kernel <code>DataTypes</code> are also allowed, to permit use of <code>DataTypes</code> from the Kernel Model Libraries.</p> + + + + + + + <p>Always true for an <code>AttributeUsage</code>.</p> + + + + + + + + + + + <p>The PerformActionUsages that have a certain ActionUsage as their <code>performedAction</code>.</p> + + + + + + + + <p>An <code>AcceptActionUsage</code> is an <code>ActionUsage</code> that specifies the acceptance of an <em><code>incomingTransfer</code></em> from the <code><em>Occurrence</em></code> given by the result of its <code>receiverArgument</code> Expression. (If no <code>receiverArgument</code> is provided, the default is the <em><code>this</code></em> context of the AcceptActionUsage.) The payload of the accepted <em><code>Transfer</em></code> is output on its <code>payloadParameter</code>. Which <em><code>Transfers</em></code> may be accepted is determined by conformance to the typing and (potentially) binding of the <code>payloadParameter</code>.</p> + + + + + <p>An <code>AcceptUsageAction</code> must have at least two input <code>parameters</code>, corresponding to its <em><code>payload</code></em> and <em><code>receiver</code>, respectively (even if they have no <code>FeatureValue</code>). (Note that the <code>payloadParameter</code> is an input as well as an output.)</p> + + + OCL2.0 + inputParameters()->size() >= 2 + + + + + <p>The <code>receiverArgument</code> of an <code>AcceptUsageAction</code> is its second argument <code>Expression</code>.</p> + + + OCL2.0 + receiverArgument = argument(2) + + + + + <p>The <code>payloadArgument</code> of an <code>AcceptUsageAction</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + payloadArgument = argument(1) + + + + + <p>The <code>payloadParameter</code> of an <code>AcceptActionUsage<code> is its first <code>parameter</code>.</p> + + + OCL2.0 + payloadParameter = + if parameter->isEmpty() then null + else parameter->first() endif + + + + + <p>An <code>AcceptActionUsage</code> that is not the <code>triggerAction</code> of a <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::acceptActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + not isTriggerAction() implies + specializesFromLibrary('Actions::acceptActions') + + + + + <p>A composite <code>AcceptActionUsage</code> that is a subaction usage, but is <em>not</em> the <code>triggerAction</code> of a <code>TransitionUsage</code>, must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::acceptSubactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() and not isTriggerAction() implies + specializesFromLibrary('Actions::Action::acceptSubactions') + + + + + <p>An <code>AcceptActionUsage</code> that is the <code>triggerAction</code> of <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::TransitionAction::accepter</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isTriggerAction() implies + specializesFromLibrary('Actions::TransitionAction::accepter') + + + + + <p>If the <code>payloadArgument</code> of an <code>AcceptActionUsage</code> is a <code>TriggerInvocationExpression</code>, then the <code>AcceptActionusage</code> must have an <code>ownedFeature</code> that is a <code>BindingConnector</code> between its <code><em>receiver</em></code> <code>parameter</code> and the <code><em>receiver</em></code> <code>parameter</code> of the <code>TriggerInvocationExpression</code>.</p> + + + OCL2.0 + payloadArgument <> null and +payloadArgument.oclIsKindOf(TriggerInvocationExpression) implies + let invocation : Expression = + payloadArgument.oclAsType(Expression) in + parameter->size() >= 2 and + invocation.parameter->size() >= 2 and + ownedFeature->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(parameter->at(2)) and + b.relatedFeatures->includes(invocation.parameter->at(2))) + + + + + + <p>An <code>Expression</code> whose <code>result</code> is bound to the <em><code>receiver</code></em> input <code>parameter</code> of this <code>AcceptActionUsage</code>.</p> + + + + + + + + <p>The <code>nestedReference</code> of this <code>AcceptActionUsage</code> that redefines the <code>payload</code> output <code>parameter</code> of the base <code>AcceptActionUsage</code> <em><code>AcceptAction</code></em> from the Systems Model Library.</p> + + + + + + + <p>An <code>Expression</code> whose <code>result</code> is bound to the <code><em>payload</em></code> <code>parameter</code> of this <code>AcceptActionUsage</code>. If provided, the <code>AcceptActionUsage</code> will only accept a <code><em>Transfer</em></code> with exactly this <code><em>payload</em></code>.</p> + + + + + + + + <p>Check if this <code>AcceptActionUsage</code> is the <code>triggerAction</code> of a <code>TransitionUsage</code>.</p> + + + + OCL2.0 + owningType <> null and +owningType.oclIsKindOf(TransitionUsage) and +owningType.oclAsType(TransitionUsage).triggerAction->includes(self) + + + + + + + + + + + <p>The <code>SendActionUsage</code> that has a certain <code>Expression<code> as its <code>receiverArgument</code>.</p> + + + + + + + + <p>A <code>SendActionUsage</code> is an <code>ActionUsage</code> that specifies the sending of a payload given by the result of its <code>payloadArgument</code> <code>Expression</code> via a <em><code>MessageTransfer</code></em> whose <em><code>source</code></em> is given by the result of the <code>senderArgument</code> <code>Expression</code> and whose <code>target</code> is given by the result of the <code>receiverArgument</code> <code>Expression</code>. If no <code>senderArgument</code> is provided, the default is the <em><code>this</code></em> context for the action. If no <code>receiverArgument</code> is given, then the receiver is to be determined by, e.g., outgoing <em><code>Connections</code></em> from the sender.</p> + + + + + <p>The <code>senderArgument</code> of a <code>SendActionUsage</code> is its second argument <code>Expression</code>.</p> + + + OCL2.0 + senderArgument = argument(2) + + + + + <p>The <code>payloadArgument</code> of a <code>SendActionUsage</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + payloadArgument = argument(1) + + + + + <p>A <code>SendActionUsage</code> must have at least three owned input <code>parameters</code>, corresponding to its <em><code>payload</code></em>, <em><code>sender</code></em> and <em><code>receiver</code></em>, respectively (whether or not they have <code>FeatureValues</code>).</p> + + + OCL2.0 + inputParameters()->size() >= 3 + + + + + <p>The <code>receiverArgument</code> of a <code>SendActionUsage</code> is its third argument <code>Expression</code>.</p> + + + OCL2.0 + receiverArgument = argument(3) + + + + + <p>A composite <code>SendActionUsage</code> that is a subaction must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::sendSubactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::acceptSubactions') + + + + + <p>A <code>SendActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::sendActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::sendActions') + + + + + + <p>An <code>Expression</code> whose result is bound to the <em><code>receiver</code></em> input parameter of this <code>SendActionUsage</code>.</p> + + + + + + + + <p>An <code>Expression</code> whose result is bound to the <code><em>payload</em></code> input parameter of this <code>SendActionUsage</code>.</p> + + + + + + + + <p>An <code>Expression</code> whose result is bound to the <em><code>sender</code></em> input parameter of this <code>SendActionUsage</code>.</p> + + + + + + + + + <p>A <code>PerformActionUsage</code> is an <code>ActionUsage</code> that represents the performance of an <code>ActionUsage</code>. Unless it is the <code>PerformActionUsage</code> itself, the <code>ActionUsage</code> to be performed is related to the <code>PerformActionUsage</code> by a <code>ReferenceSubsetting</code> relationship. A <code>PerformActionUsage</code> is also an <code>EventOccurrenceUsage</code>, with its <code>performedAction</code> as the <code>eventOccurrence</code>.</p> + + + + <p>If a <code>PerformActionUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(ActionUsage) + + + + + <p>If a <code>PerformActionUsage</code> has an <code>owningType</code> that is a <code>PartDefinition</code> or <code>PartUsage</code>, then it must directly or indirectly specialize the <code>ActionUsage</code> <code><em>Parts::Part::performedActions</em></code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::performedActions') + + + + + + + <p>The <code>ActionUsage</code> to be performed by this <code>PerformedActionUsage</code>. It is the <code>eventOccurrence</code> of the <code>PerformActionUsage</code> considered as an <code>EventOccurrenceUsage</code>, which must be an <code>ActionUsage</code>.</p> + + + + + + + + <p>The naming <code>Feature</code> of a <code>PerformActionUsage</code> is its <code>performedAction</code>, if this is different than the <code>PerformActionUsage</code>. If the <code>PerformActionUsage</code> is its own <code>performedAction</code>, then the naming <code>Feature</code> is the same as the usual default for a <code>Usage</code>.</p> + + + + OCL2.0 + if performedAction <> self then performedAction +else self.oclAsType(Usage).namingFeature() +endif + + + + + + + + + + + <p>A <code>ForkNode</code> is a <code>ControlNode</code> that must be followed by successor <code>Actions</code> as given by all its outgoing <code>Successions</code>.</p> + + + + <p>A <code>ForkNode</code> may have at most one incoming <code>Succession</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)->size() <= 1 + + + + + <p>A <code>ForkNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::forks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::forks') + + + + + + + <p>A <code>JoinNode</code> is a <code>ControlNode</code> that waits for the completion of all the predecessor <code>Actions</code> given by incoming <code>Successions</code>.</p> + + + + <p>A <code>JoinNode</code> may have at most one outgoing <code>Succession</code>.</p> + + + OCL2.0 + sourceConnector->selectByKind(Succession)->size() <= 1 + + + + + <p>A <code>JoinNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::joins</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::join') + + + + + + + <p>A <code>ControlNode</code> is an <code>ActionUsage</code> that does not have any inherent behavior but provides constraints on incoming and outgoing <code>Successions</code> that are used to control other <code>Actions</code>. A <code>ControlNode</code> must be a composite owned <code>usage</code> of an <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> + + + + + <p>All outgoing <code>Successions</code> from a <code>ControlNode</code> must have a source <code>multiplicity</code> of <code>1..1</code>.</p> + + + OCL2.0 + sourceConnector->selectByKind(Succession)-> + collect(connectorEnd->at(1).multiplicity)-> + forAll(sourceMult | + multiplicityHasBounds(sourceMult, 1, 1)) + + + + + <p>The <code>owningType</code> of a <code>ControlNode</code> must be an <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(ActionDefinition) or + owningType.oclIsKindOf(ActionUsage)) + + + + + <p>All incoming <code>Successions</code> to a <code>ControlNode</code> must have a target <code>multiplicity</code> of <code>1..1</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)-> + collect(connectorEnd->at(2).multiplicity)-> + forAll(targetMult | + multiplicityHasBounds(targetMult, 1, 1)) + + + + + <p>A <code>ControlNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::control</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Action::Action::controls') + + + + + <p>A <code>ControlNode</code> must be composite.</p> + + + OCL2.0 + isComposite + + + + + + <p>Check that the given <code>Multiplicity</code> has <code>lowerBound</code> and <code>upperBound</code> expressions that are model-level evaluable to the given <code>lower</code> and <code>upper</code> values.</p> + + + + OCL2.0 + mult <> null and +if mult.oclIsKindOf(MultiplicityRange) then + mult.oclAsType(MultiplicityRange).hasBounds(lower, upper) +else + mult.allSuperTypes()->exists( + oclisKindOf(MultiplicityRange) and + oclAsType(MultiplicityRange).hasBounds(lower, upper) +endif + + + + + + + + + + + + + + + + + <p>An <code>ActionUsage</code> is a <code>Usage</code> that is also a <code>Step</code>, and, so, is typed by a <code>Behavior</code>. Nominally, if the type is an <code>ActionDefinition</code>, an <code>ActionUsage</code> is a <code>Usage</code> of that <code>ActionDefinition</code> within a system. However, other kinds of kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> + + + + + <p>A composite <code>ActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::subactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::subactions') + + + + + <p>An <code>ActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::actions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::actions') + + + + + <p>A composite <code>ActionUsage</code> whose <code>owningType</code> is <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Parts::Part::ownedActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::ownedActions') + + + + + <p>An <code>ActionUsage</code> that is the <code><em>entry</em></code>, <code><em>do</em></code>, or <code><em>exit</em></code> <code><em>Action</em></code> of a <code>StateDefinition</code> or <code>StateUsage</code> must redefine the <code>entryAction</code>, <code>doAction</code>, or <code>exitAction</code> <code>feature</code>, respectively, of the <code>StateDefinition</code> <code><em>States::StateAction</em></code> from the Systems Model Library.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies + let kind : StateSubactionKind = + owningFeatureMembership.oclAsType(StateSubactionMembership).kind in + if kind = StateSubactionKind::entry then + redefinesFromLibrary('States::StateAction::entryAction') + else if kind = StateSubactionKind::do then + redefinesFromLibrary('States::StateAction::doAction') + else + redefinesFromLibrary('States::StateAction::exitAction') + endif endif + + + + + + + <p>The <code>Behaviors</code> that are the <code>types</code> of this <code>ActionUsage</code>. Nominally, these would be <code>ActionDefinitions</code>, but other kinds of Kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> + + + + + + + + <p>Return the owned input <code>parameters</code> of this <code>ActionUsage</code>.</p> + + + + OCL2.0 + input->select(f | f.owner = self) + + + + + + + + + + <p>Return the <code>i</code>-th owned input <code>parameter</code> of the <code>ActionUsage</code>. Return null if the <code>ActionUsage</code> has less than <code>i</code> owned input <code>parameters</code>.</p> + + + + OCL2.0 + if inputParameters()->size() < i then null +else inputParameters()->at(i) +endif + + + + + + + + + + + + + <p>Return the <code>i</code>-th argument <code>Expression</code> of an <code>ActionUsage</code>, defined as the <code>value</code> <code>Expression</code> of the <code>FeatureValue</code> of the <code>i</code>-th owned input <code>parameter</code> of the <code>ActionUsage</code>. Return null if the <code>ActionUsage</code> has less than <code>i</code> owned input <code>parameters</code> or the <code>i</code>-th owned input <code>parameter</code> has no <code>FeatureValue</code>.</p> + + + + OCL2.0 + if inputParameter(i) = null then null +else + let featureValue : Sequence(FeatureValue) = inputParameter(i). + ownedMembership->select(oclIsKindOf(FeatureValue)) in + if featureValue->isEmpty() then null + else featureValue->at(1).value + endif +endif + + + + + + + + + + + + + <p>Check if this <code>ActionUsage</code> is composite and has an <code>owningType</code> that is an <code>ActionDefinition</code> or <code>ActionUsage</code> but is <em>not</em> the <code>entryAction</code> or <code>exitAction</em></code> of a <code>StateDefinition</code> or <code>StateUsage</code>. If so, then it represents an <code><em>Action</em></code> that is a <code><em>subaction</em></code> of another <code><em>Action</em></code>.</p> + + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ActionDefinition) or + owningType.oclIsKindOf(ActionUsage)) and +(owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies + owningFeatureMembership.oclAsType(StateSubactionMembership).kind = + StateSubactionKind::do) + + + + + + + + + + + <p>The Activities that feature a certain ActionUsage.</p> + + + + + + + + <p>A <code>DecisionNode</code> is a <code>ControlNode</code> that makes a selection from its outgoing <code>Successions</code>.</p> + + + + <p>A <code>DecisionNode</code> may have at most one incoming <code>Succession</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)->size() <= 1 + + + + + <p>All outgoing <code>Successions</code> from a <code>DecisionNode</code> must have a target <code>multiplicity</code> of <code>0..1</code>.</p> + + + OCL2.0 + sourceConnector->selectAsKind(Succession)-> + collect(connectorEnd->at(2))-> + forAll(targetMult | + multiplicityHasBounds(targetMult, 0, 1)) + + + + + <p>A <code>DecisionNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::decisions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::decisions') + + + + + <p>All outgoing <code>Successions</code> from a <code>DecisionNode</code> must subset the inherited <em><code>outgoingHBLink</code></em> <code>feature</code> of the <code>DecisionNode</code>.</p> + + + OCL2.0 + sourceConnector->selectByKind(Succession)-> + forAll(subsetsChain(self, + resolveGlobal('ControlPerformances::MergePerformance::outgoingHBLink'))) + + + + + + + <p>A <code>MergeNode</code> is a <code>ControlNode</code> that asserts the merging of its incoming <code>Successions</code>. A <code>MergeNode</code> may have at most one outgoing <code>Successions</code>.</p> + + + + <p>A <code>MergeNode</code> may have at most one outgoing <code>Succession</code>.</p> + + + OCL2.0 + sourceConnector->selectAsKind(Succession)->size() <= 1 + + + + + <p>All incoming <code>Successions</code> to a <code>MergeNode</code> must have a source <code>multiplicity</code> of <code>0..1</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)-> + collect(connectorEnd->at(1))-> + forAll(sourceMult | + multiplicityHasBounds(sourceMult, 0, 1)) + + + + + <p>All incoming <code>Successions</code> to a <code>MergeNode</code> must subset the inherited <em><code>incomingHBLink</code></em> <code>feature</code> of the <code>MergeNode</code>.</p> + + + OCL2.0 + targetConnector->selectByKind(Succession)-> + forAll(subsetsChain(self, + resolveGlobal('ControlPerformances::MergePerformance::incomingHBLink'))) + + + + + <p>A <code>MergeNode</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::merges</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action::merges') + + + + + + + + <p>The ActionUsages being typed by a certain Behavior.</p> + + + + + + + + <p>An <code>ActionDefinition</code> is a <code>Definition</code> that is also a <code>Behavior</code> that defines an <em><code>Action</code></em> performed by a system or part of a system.</p> + + + + <p>An <code>ActionDefinition</code> must directly or indirectly specialize the <code>ActionDefinition</code> <em><code>Actions::Action</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::Action') + + + + + <p> The <code>actions</code> of a <code>ActionDefinition</code> are those of its <code>usages</code> that are <code>ActionUsages</code>.</p> + + + OCL2.0 + action = usage->selectByKind(ActionUsage) + + + + + + + <p>The <code>ActionUsages</code> that are <code>steps</code> in this <code>ActionDefinition</code>, which define the actions that specify the behavior of the <code>ActionDefinition</code>.</p> + + + + + + + + + + <p>The <code>SendActionUsage</code> that has a certain <code>Expression</code> as its <code>itemsArgument</code>.</p> + + + + + + + + + <p>The AcceptActionUsage that has a certain Expression as its <code>receiverArgument</code>.</p> + + + + + + + + + <p>The AssignmentActionUsages that gave a certain <code>referent</code> Expression.</p> + + + + + + + + + <p>The <code>ForLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>seqArgument</code>.</p> + + + + + + + + <p>An <code>IfActionUsage</code> is an <code>ActionUsage</code> that specifies that the <code>thenAction</code> <code>ActionUsage</code> should be performed if the result of the <code>ifArgument</code> <code>Expression</code> is true. It may also optionally specify an <code>elseAction</code> <code>ActionUsage</code> that is performed if the result of the <code>ifArgument</code> is false.</p> + + + + <p>The <code>thenAction</code> of an <code>ifActionUsage</code> is its second <code>parameter</code>, which must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + thenAction = + let parameter : Feature = inputParameter(2) in + if parameter <> null and parameter.oclIsKindOf(ActionUsage) then + parameter.oclAsType(ActionUsage) + else + null + endif + + + + + <p>A composite <code>IfActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::ifSubactions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::ifSubactions') + + + + + <p>A <code>IfActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::ifThenActions</code></em> from the Systems Model Library. If it has an <code>elseAction</code>, then it must directly or indirectly specialize <em><code>Actions::ifThenElseActions</code></em>. + + + OCL2.0 + if elseAction = null then + specializesFromLibrary('Actions::ifThenActions') +else + specializesFromLibrary('Actions::ifThenElseActions') +endif + + + + + <p>The <code>ifArgument</code> of an <code>ifActionUsage</code> is its first <code>parameter</code>, which must be an <code>Expression</code>.</p> + + + OCL2.0 + ifArgument = + let parameter : Feature = inputParameter(1) in + if parameter <> null and parameter.oclIsKindOf(Expression) then + parameter.oclAsType(Expression) + else + null + endif + + + + + <p>The <code>elseAction</code> of an <code>ifActionUsage</code> is its third <code>parameter</code>, if there is one, which must then be an <code>ActionUsage</code>.</p> + + + OCL2.0 + elseAction = + let parameter : Feature = inputParameter(3) in + if parameter <> null and parameter.oclIsKindOf(ActionUsage) then + parameter.oclAsType(ActionUsage) + else + null + endif + + + + + <p>An <code>IfActionUsage</code> must have at least two owned <code>input</code> <code>parameters</code>.</p> + + + OCL2.0 + inputParameters()->size() >= 2 + + + + + + <p>The <code>ActionUsage</code> that is to be performed if the result of the <code>ifArgument</code> is false. It is the (optional) third <code>parameter</code> of the <code>IfActionUsage</code>.</p> + + + + + + + + <p>The <code>ActionUsage</code> that is to be performed if the result of the <code>ifArgument</code> is true. It is the second <code>parameter<code> of the <code>IfActionUsage</code>.</p> + + + + + + + + <p>The <code>Expression</code> whose result determines whether the <code>thenAction</code> or (optionally) the <code>elseAction</code> is performed. It is the first <code>parameter<code> of the <code>IfActionUsage</code>.</p> + + + + + + + + + + <p>The AssignmentActionUsage that has a certain Expression as its <code>targetArgument</code>.</p> + + + + + + + + + <p>The <code>WhileLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>untilArgument</code>.</p> + + + + + + + + + <p>The <code>WhileLoopActionUsage</code> that has a certain <code>Expression</code> as its <code>whileArgument</code>.</p> + + + + + + + + + <p>The <code>LoopActionUsage</code> that has a certain <code>ActionUsage</code> as its <code>bodyAction</code>.</p> + + + + + + + + + <p>The IfActionUsage that has a certain ActionUsage as its <code>elseAction</code>.</p> + + + + + + + + + <p>The <code>IfActionUsage</code> that has a certain <code>Expression</code> as its <code>ifArgument</code>.</p> + + + + + + + + + <p>The <code>IfActionUsage</code> that has a certain <code>ActionUsage</code> as its <code>thenAction</code>.</p> + + + + + + + + <p>A <code>LoopActionUsage</code> is an <code>ActionUsage</code> that specifies that its <code>bodyAction</code> should be performed repeatedly. Its subclasses <code>WhileLoopActionUsage</code> and <code>ForLoopActionUsage</code> provide different ways to determine how many times the <code>bodyAction</code> should be performed.</p> + + + + <p>The <code>bodyAction</code> of a <code>LoopActionUsage</code> is its second input <code>parameter</code>, which must be an <code>Action</code>.</p> + + + OCL2.0 + bodyAction = + let parameter : Feature = inputParameter(2) in + if parameter <> null and parameter.oclIsKindOf(Action) then + parameter.oclAsType(Action) + else + null + endif + + + + + + + <p>The <code>ActionUsage</code> to be performed repeatedly by the <code>LoopActionUsage</code>. It is the second <code>parameter</code> of the <code>LoopActionUsage</code>.</p> + + + + + + + + + + <p>The AssignmentActionUsage that has a certain Expression as its <code>valueArgument</code>.</p> + + + + + + + + <p>A <code>ForLoopActionUsage</code> is a <code>LoopActionUsage</code> that specifies that its <code>bodyAction</code> <code>ActionUsage</code> should be performed once for each value, in order, from the sequence of values obtained as the result of the <code>seqArgument</code> <code>Expression</code>, with the <code>loopVariable</code> set to the value for each iteration.</p> + + + + <p>The <code>seqArgument</code> of a <code>ForLoopActionUsage</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + seqArgument = argument(1) + + + + + + <p>A composite <code>ForLoopActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::forLoops</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::forLoops') + + + + + <p>The <code>loopVariable</code> of a <code>ForLoopActionUsage</code> must redefine the <code>ActionUsage</code> <code><em>Actions::ForLoopAction::var</em></code>.</p> + + + OCL2.0 + loopVariable <> null and +loopVariable.redefinesFromLibrary('Actions::ForLoopAction::var') + + + + + <p>A <code>ForLoopActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::forLoopActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::forLoopActions') + + + + + <p>The <code>loopVariable</code> of a <code>ForLoopActionUsage</code> is its first <code>ownedFeature</code>, which must be a <code>ReferenceUsage</code>.</p> + + + OCL2.0 + loopVariable = + if ownedFeature->isEmpty() or + not ownedFeature->first().oclIsKindOf(ReferenceUsage) then + null + else + ownedFeature->first().oclAsType(ReferenceUsage) + endif + + + + + <p>The first <code>ownedFeature</code> of a <code>ForLoopActionUsage</code> must be a <code>ReferenceUsage</code>.</p> + + + OCL2.0 + ownedFeature->notEmpty() and +ownedFeature->at(1).oclIsKindOf(ReferenceUsage) + + + + + + <p>A <code>ForLoopActionUsage</code> must have two owned <code>input</code> <code>parameters</code>.</p> + + + OCL2.0 + inputParameters()->size() = 2 + + + + + + <p>The <code>Expression</code> whose result provides the sequence of values to which the <code>loopVariable</code> is set for each iterative performance of the <code>bodyAction</code>. It is the <code>Expression</code> whose <code>result</code> is bound to the <em><code>seq</code></em> <code>input</code> <code>parameter</code> of this <code>ForLoopActionUsage</code>.</p> + + + + + + + + <p>The <code>ownedFeature</code> of this <co>ForLoopActionUsage</code> that acts as the loop variable, which is assigned the successive values of the input sequence on each iteration. It is the <code>ownedFeature</code> that redefines <em><code>ForLoopAction::var</code></em>.</p> + + + + + + + + <p>An <code>AssignmentActionUsage</code> is an <code>ActionUsage</code> that is defined, directly or indirectly, by the <code>ActionDefinition</code> <em><code>AssignmentAction</code></em> from the Systems Model Library. It specifies that the value of the <code>referent</code> <code>Feature</code>, relative to the target given by the result of the <code>targetArgument</code> <code>Expression</code>, should be set to the result of the <code>valueExpression</code>.</p> + + + + + <p>An <code>AssignmentActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::assignmentActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::assignmentActions') + + + + + <p>The first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine <code><em>AssignmentAction::target::startingAt</em></code>.</p> + + + OCL2.0 + let targetParameter : Feature = inputParameter(1) in +targetParameter <> null and +targetParameter.ownedFeature->notEmpty() and +targetParameter.ownedFeature->first(). + redefines('AssignmentAction::target::startingAt') + + + + + <p>The <code>valueExpression</code> of a <code>AssignmentActionUsage</code> is its second argument <code>Expression</code>.</p> + + + OCL2.0 + valueExpression = argument(2) + + + + + <p>The <code>targetArgument</code> of a <code>AssignmentActionUsage</code> is its first argument <code>Expression</code>.</p> + + + OCL2.0 + targetArgument = argument(1) + + + + + <p>A composite <code>AssignmentActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::assignments</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::assignments') + + + + + <p>The first <code>ownedFeature</code> of the first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine <code><em>AssignmentAction::target::startingAt::accessedFeature</em></code>.</p> + + + OCL2.0 + let targetParameter : Feature = inputParameter(1) in +targetParameter <> null and +targetParameter.ownedFeature->notEmpty() and +targetParameter->first().ownedFeature->notEmpty() and +targetParameter->first().ownedFeature->first(). + redefines('AssigmentAction::target::startingAt::accessedFeature') + + + + + <p>The first <code>ownedFeature</code> of the first <code>ownedFeature</code> of the first <code>parameter</code> of an <code>AssignmentActionUsage</code> must redefine the <code>referent</code> of the <code>AssignmentActionUsage</code>.</p> + + + OCL2.0 + let targetParameter : Feature = inputParameter(1) in +targetParameter <> null and +targetParameter.ownedFeature->notEmpty() and +targetParameter->first().ownedFeature->notEmpty() and +targetParameter->first().ownedFeature->first().redefines(referent) + + + + + <p>The <code>referent</code> of an <code>AssignmentActionUsage</code> is the first <code>Feature</code> that is the <code>memberElement</code> of a <code>ownedMembership</code> that is not a <code>FeatureMembership</code>.</p> + + + OCL2.0 + referent = + let unownedFeatures : Sequence(Feature) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement-> + selectByKind(Feature) in + if unownedFeatures->isEmpty() then null + else unownedFeatures->first().oclAsType(Feature) + endif + + + + + <p>An <code>AssignmentActionUsage</code> must have an <code>ownedMembership</code> that is not an <code>OwningMembership</code> and whose <code>memberElement</code> is a <code>Feature</code>.</p> + + + OCL2.0 + ownedMembership->exists( + not oclIsKindOf(OwningMembership) and + memberElement.oclIsKindOf(Feature)) + + + + + <p>The <code>featureTarget</code> of the <code>referent</code> of an <code>AssignmentActionUsage</code> must be able to have time-varying values.</p> + + + OCL2.0 + referent <> null implies referent.featureTarget.mayTimeVary + + + + + + <p>The <code>Expression</code> whose value is an occurrence in the domain of the <code>referent</code> <code>Feature</code>, for which the value of the <code>referent</code> will be set to the result of the <code>valueExpression</code> by this <code>AssignmentActionUsage</code>.</p> + + + + + + + <p>The <code>Expression</code> whose result is to be assigned to the <code>referent</code> <code>Feature</code>.</p> + + + + + + + <p>The <code>Feature</code> whose value is to be set.</p> + + + + + + + + <p>A <code>WhileLoopActionUsage</code> is a <code>LoopActionUsage</code> that specifies that the <code>bodyAction</code> <code>ActionUsage</code> should be performed repeatedly while the result of the <code>whileArgument</code> <code>Expression</code> is true or until the result of the <code>untilArgument</code> <code>Expression</code> (if provided) is true. The <code>whileArgument</code> <code>Expression</code> is evaluated before each (possible) performance of the <code>bodyAction</code>, and the <code>untilArgument</code> <code>Expression</code> is evaluated after each performance of the <code>bodyAction</code>.</p> + + + + <p>A composite <code>WhileLoopActionUsage</code> that is a subaction usage must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::whileLoops</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::whileLoops') + + + + + <p>The <code>whileArgument</code> of a <code>WhileLoopActionUsage</code> is its third input <code>parameter</code>, which, if it exists, must be an <code>Expression</code>.</p> + + + OCL2.0 + untilArgument = + let parameter : Feature = inputParameter(3) in + if parameter <> null and parameter.oclIsKindOf(Expression) then + parameter.oclAsType(Expression) + else + null + endif + + + + + + <p>A <code>WhileLoopActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::whileLoopActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::whileLoopActions') + + + + + <p>The <code>whileArgument</code> of a <code>WhileLoopActionUsage</code> is its first input <code>parameter</code>, which must be an <code>Expression</code>.</p> + + + OCL2.0 + whileArgument = + let parameter : Feature = inputParameter(1) in + if parameter <> null and parameter.oclIsKindOf(Expression) then + parameter.oclAsType(Expression) + else + null + endif + + + + + + <p>A <code>WhileLoopActionUsage</code> must have at least two owned <code>input</code> <code>parameters</code>.</p> + + + OCL2.0 + inputParameters()->size() >= 2 + + + + + + <p>The <code>Expression</code> whose result, if true, determines that the <code>bodyAction</code> should continue to be performed. It is the first owned <code>parameter</code> of the <code>WhileLoopActionUsage</code>.</p> + + + + + + + + <p>The <code>Expression</code> whose result, if false, determines that the <code>bodyAction</code> should continue to be performed. It is the (optional) third owned <code>parameter</code> of the <code>WhileLoopActionUsage</code>.</p> + + + + + + + + + + The <code>ForLoopActionUsage</code> that has a certain <code>ReferenceUsage</code> as its <code>loopVariable</code>. + + + + + + + + + <p>The AcceptActionUsage that owns the <code>payloadParameter</code>.</p> + + + + + + + + <p><code>TriggerKind</code> enumerates the kinds of triggers that can be represented by a <code>TriggerInvocationExpression</code>.</p> + + + + <p>Indicates a <em>change trigger</em>, corresponding to the <em><code>TriggerWhen</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the Kernel Semantic Library.</p> + + + + + <p>Indicates an <em>absolute time trigger</em>, corresponding to the <em><code>TriggerAt</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the Kernel Semantic Library.</p> + + + + + <p>Indicates a <em>relative time trigger</em>, corresponding to the <em><code>TriggerAfter</code></em> <code>Function</code> from the <em><code>Triggers</code></em> model in the <code>Kernel Semantic Library.</p> + + + + + + + + + + + + <p>A <code>TriggerInvocationExpression</code> is an <code>InvocationExpression</code> that invokes one of the trigger <code>Functions</code> from the Kernel Semantic Library <code><em>Triggers<em></code> package, as indicated by its <code>kind</code>.</p> + + + + <p>If a <code>TriggerInvocationExpression</code> has <code>kind = after</code>, then it must have an argument <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>Quantities::ScalarQuantityValue</code></em> and a <code>feature</code> that directly or indirectly redefines <em><code>Quantities::TensorQuantityValue::mRef</code></em> and directly or indirectly specializes <em><code>ISQBase::DurationUnit</code></em>.</p> + + + OCL2.0 + kind = TriggerKind::after implies + argument->notEmpty() and + argument->at(1).result.specializesFromLibrary('Quantities::ScalarQuantityValue') and + let mRef : Element = + resolveGlobal('Quantities::TensorQuantityValue::mRef').ownedMemberElement in + argument->at(1).result.feature-> + select(ownedRedefinition.redefinedFeature-> + closure(ownedRedefinition.redefinedFeature)-> + includes(mRef))-> + exists(specializesFromLibrary('ISQBase::DurationUnit')) + + + + + <p>If a <code>TriggerInvocationExpression</code> has <code>kind = at</code>, then it must have an argument <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>Time::TimeInstantValue</code></em>.</p> + + + OCL2.0 + kind = TriggerKind::at implies + argument->notEmpty() and + argument->at(1).result.specializesFromLibrary('Time::TimeInstantValue') + + + + + <p>If a <code>TriggerInvocationExpression</code> has <code>kind = when</code>, then it must have an <code>argument</code> that is a <code>FeatureReferenceExpression</code> whose <code>referent</code> is an <code>Expression</code> with a <code>result</code> that conforms to the type <em><code>ScalarValues::Boolean</code></em>.</p> + + + OCL2.0 + kind = TriggerKind::when implies + argument->notEmpty() and + argument->at(1).oclIsKindOf(FeatureReferenceExpression) and + let referent : Feature = + argument->at(1).oclAsType(FeatureReferenceExpression).referent in + referent.oclIsKindOf(Expression) and + referent.oclAsType(Expression).result.specializesFromLibrary('ScalarValues::Boolean') + + + + + + <p>Indicates which of the <code>Functions</code> from the <code><em>Triggers</em></code> model in the Kernel Semantic Library is to be invoked by this <code>TriggerInvocationExpression</code>.</p> + + + + + <p>Return one of the <code>Functions</code> <em><code>TriggerWhen</code></em>, <em><code>TriggerAt</code></em> or <em><code>TriggerAfter</code></em>, from the Kernel Semantic Library <em><code>Triggers</code></em> package, depending on whether the <code>kind</code> of this <code>TriggerInvocationExpression</code> is <code>when</code>, <code>at</code> or <code>after</code>, respectively.</p> + + + + OCL2.0 + resolveGlobal( + if kind = TriggerKind::when then + 'Triggers::TriggerWhen' + else if kind = TriggerKind::at then + 'Triggers::TriggerAt' + else + 'Triggers::TriggerAfter' + endif endif +).memberElement.oclAsType(Type) + + + + + + + + + <p>The <code>SendActionUsage</code> that has a certain <code>Expression</code> as its <code>senderArgument</code>.</p> + + + + + + + + <p>A <code>TerminateActionUsage</code> is an <code>ActionUsage</code> that directly or indirectly specializes the <code>ActionDefinition</code> <em><code>TerminateAction</code></em> from the Systems Model Library, which causes a given <em><code>terminatedOccurrence</code></em> to end during its performance. By default, the <code>terminatedOccurrence</code> is the featuring instance (<em><code>that</code></em>) of the performance of the <code>TerminateActionUsage</code>, generally the performance of its immediately containing <code>ActionDefinition</code> or <code>ActionUsage</code>.</p> + + + + <p>A <code>TerminateActionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::terminateActions</code></em> from the Systems Modeling Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::terminateActions') + + + + + <p>The <code>terminatedOccurrenceArgument</code> of a <code>TerminateActionUsage</code> is its first argument.</p> + + + OCL2.0 + terminatedOccurrenceArgument = argument(1) + + + + + <p>A composite <code>TerminateActionUsage</code> that is a subaction must must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::terminateSubactions</code></em> from the Systems Modeling Library.</p> + + + OCL2.0 + isSubactionUsage() implies + specializesFromLibrary('Actions::Action::terminateSubactions') + + + + + + <p>The <code>Expression</code> that is the <code>featureValue</code> of the <em><code>terminateOccurrence</code></em> <code>parameter</code> of this <code>TerminateActionUsage</code>. + + + + + + + + + <p>The <code>TerminateActionUsage</code> that has a certain <code>Expression</code> as its <code>terminatedOccurrenceArgument</code>.</p> + + + + + + + + + + + <p>The Definitions that have a certain Usage as a <code>flow</code>.</p> + + + + + + + + + <p>The Definitions that feature a certain Usage.</p> + + + + + + + + + <p>The Usage in which the <code>nestedPort</code> is nested (if any).</p> + + + + + + + + <p>A <code>Definition</code> is a <code>Classifier</code> of <code>Usages</code>. The actual kinds of <code>Definition</code> that may appear in a model are given by the subclasses of <code>Definition</code> (possibly as extended with user-defined <em><code>SemanticMetadata</code></em>).</p> + +<p>Normally, a <code>Definition</code> has owned Usages that model <code>features</code> of the thing being defined. A <code>Definition</code> may also have other <code>Definitions</code> nested in it, but this has no semantic significance, other than the nested scoping resulting from the <code>Definition</code> being considered as a <code>Namespace</code> for any nested <code>Definitions</code>.</p> + +<p>However, if a <code>Definition</code> has <code>isVariation</code> = <code>true</code>, then it represents a <em>variation point</em> <code>Definition</code>. In this case, all of its <code>members</code> must be <code>variant</code> <code>Usages</code>, related to the <code>Definition</code> by <code>VariantMembership</code> <code>Relationships</code>. Rather than being <code>features</code> of the <code>Definition</code>, <code>variant</code> <code>Usages</code> model different concrete alternatives that can be chosen to fill in for an abstract <code>Usage</code> of the variation point <code>Definition</code>.</p> + + + + + <p>If a <code>Definition</code> is a variation, then all it must not have any <code>ownedFeatureMemberships</code>.</p> + + + OCL2.0 + isVariation implies ownedFeatureMembership->isEmpty() + + + + + <p>The <code>variants</code> of a <code>Definition</code> are the <code>ownedVariantUsages</code> of its <code>variantMemberships</code>.</p> + + + OCL2.0 + variant = variantMembership.ownedVariantUsage + + + + + <p>The <code>variantMemberships</code> of a <code>Definition</code> are those <code>ownedMemberships</code> that are <code>VariantMemberships</code>.</p> + + + OCL2.0 + variantMembership = ownedMembership->selectByKind(VariantMembership) + + + + + <p>A variation <code>Definition</code> may not specialize any other variation <code>Definition</code>.</p> + + + OCL2.0 + isVariation implies + not ownedSpecialization.specific->exists( + oclIsKindOf(Definition) and + oclAsType(Definition).isVariation) + + + + + <p>The <code>usages</code> of a <code>Definition</code> are all its <code>features</code> that are <code>Usages</code>.</p> + + + OCL2.0 + usage = feature->selectByKind(Usage) + + + + + <p>The <code>directedUsages</code> of a <code>Definition</code> are all its <code>directedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + directedUsage = directedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedUsages</code> of a <code>Definition</code> are all its <code>ownedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + ownedUsage = ownedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedAttributes</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AttributeUsages</code>.</p> + + + OCL2.0 + ownedAttribute = ownedUsage->selectByKind(AttributeUsage) + + + + + <p>The <code>ownedReferences</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ReferenceUsages</code>.</p> + + + OCL2.0 + ownedReference = ownedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedEnumerations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>EnumerationUsages</code>.</p> + + + OCL2.0 + ownedEnumeration = ownedUsage->selectByKind(EnumerationUsage) + + + + + <p>The <code>ownedOccurrences</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>OccurrenceUsages</code>.</p> + + + OCL2.0 + ownedOccurrence = ownedUsage->selectByKind(OccurrenceUsage) + + + + + <p>The <code>ownedItems</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ItemUsages</code>.</p> + + + OCL2.0 + ownedItem = ownedUsage->selectByKind(ItemUsage) + + + + + <p>The <code>ownedParts</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>PartUsages</code>.</p> + + + OCL2.0 + ownedPart = ownedUsage->selectByKind(PartUsage) + + + + + <p>The <code>ownedPorts</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>PortUsages</code>.</p> + + + OCL2.0 + ownedPort = ownedUsage->selectByKind(PortUsage) + + + + + <p>The <code>ownedConnections</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConnectorAsUsages</code>.</p> + + + OCL2.0 + ownedConnection = ownedUsage->selectByKind(ConnectorAsUsage) + + + + + <p>The <code>ownedFlows</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>FlowUsages</code>.</p> + + + OCL2.0 + ownedFlow = ownedUsage->selectByKind(FlowConnectionUsage) + + + + + <p>The <code>ownedInterfaces</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>InterfaceUsages</code>.</p> + + + OCL2.0 + ownedInterface = ownedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedAllocations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AllocationUsages</code>.</p> + + + OCL2.0 + ownedAllocation = ownedUsage->selectByKind(AllocationUsage) + + + + + <p>The <code>ownedActions</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ActionUsages</code>.</p> + + + OCL2.0 + ownedAction = ownedUsage->selectByKind(ActionUsage) + + + + + <p>The <code>ownedStates</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>StateUsages</code>.</p> + + + OCL2.0 + ownedState = ownedUsage->selectByKind(StateUsage) + + + + + <p>The <code>ownedTransitions</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>TransitionUsages</code>.</p> + + + OCL2.0 + ownedTransition = ownedUsage->selectByKind(TransitionUsage) + + + + + <p>The <code>ownedCalculations</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>CalculationUsages</code>.</p> + + + OCL2.0 + ownedCalculation = ownedUsage->selectByKind(CalculationUsage) + + + + + <p>The <code>ownedConstraints</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConstraintUsages</code>.</p> + + + OCL2.0 + ownedConstraint = ownedUsage->selectByKind(ConstraintUsage) + + + + + <p>The <code>ownedRequirements</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>RequirementUsages</code>.</p> + + + OCL2.0 + ownedRequirement = ownedUsage->selectByKind(RequirementUsage) + + + + + <p>The <code>ownedConcerns</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ConcernUsages</code>.</p> + + + OCL2.0 + ownedConcern = ownedUsage->selectByKind(ConcernUsage) + + + + + <p>The <code>ownedCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>CaseUsages</code>.</p> + + + OCL2.0 + ownedCase = ownedUsage->selectByKind(CaseUsage) + + + + + <p>The <code>ownedAnalysisCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>AnalysisCaseUsages</code>.</p> + + + OCL2.0 + ownedAnalysisCase = ownedUsage->selectByKind(AnalysisCaseUsage) + + + + + <p>The <code>ownedValidationCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ValidationCaseUsages</code>.</p> + + + OCL2.0 + ownedVerificationCase = ownedUsage->selectByKind(VerificationCaseUsage) + + + + + <p>The <code>ownedUseCases</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>UseCaseUsages</code>.</p> + + + OCL2.0 + ownedUseCase = ownedUsage->selectByKind(UseCaseUsage) + + + + + <p>The <code>ownedViews</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ViewUsages</code>.</p> + + + OCL2.0 + ownedView = ownedUsage->selectByKind(ViewUsage) + + + + + <p>The <code>ownedViewpoints</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>ViewpointUsages</code>.</p> + + + OCL2.0 + ownedViewpoint = ownedUsage->selectByKind(ViewpointUsage) + + + + + <p>The <code>ownedRenderings</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>RenderingUsages</code>.</p> + + + OCL2.0 + ownedRendering = ownedUsage->selectByKind(RenderingUsage) + + + + + <p>The <code>ownedMetadata</code> of a <code>Definition</code> are all its <code>ownedUsages</code> that are <code>MetadataUsages</code>.</p> + + + OCL2.0 + ownedMetadata = ownedUsage->selectByKind(MetadataUsage) + + + + + <p>If a <code>Definition</code> is a variation, then it must be abstract.</p> + + + OCL2.0 + isVariation implies isAbstract + + + + + + <p>Whether this <code>Definition</code> is for a variation point or not. If true, then all the <code>memberships</code> of the <code>Definition</code> must be <code>VariantMemberships</code>.</p> + + + + + + <p>The <code>Usages</code> which represent the variants of this <code>Definition</code> as a variation point <code>Definition</code>, if <code>isVariation</code> = true. If <code>isVariation = false</code>, the there must be no <code>variants</code>.</p> + + + + + + + <p>The <code>ownedMemberships</code> of this <code>Definition</code> that are <code>VariantMemberships</code>. If <code>isVariation</code> = true, then this must be all <code>ownedMemberships</code> of the <code>Definition</code>. If <code>isVariation</code> = false, then <code>variantMembership</code>must be empty.</p> + + + + + + + <p>The <code>Usages</code> that are <code>features</code> of this <code>Definition</code> (not necessarily owned).</p> + + + + + + + <p>The <code>usages</code> of this <code>Definition</code> that are <code>directedFeatures</code>.</p> + + + + + + + + <p>The <code>Usages</code> that are <code>ownedFeatures</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ReferenceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>AttributeUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.<p> + + + + + + + <p>The <code>EnumerationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.<p> + + + + + + + <p>The <code>OccurrenceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ItemUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>PartUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>PortUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ConnectorAsUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>. Note that this list includes <code>BindingConnectorAsUsages</code>, <code>SuccessionAsUsages</code>, and <code>FlowUsages</code> because these are <code>ConnectorAsUsages</code> even though they are not <code>ConnectionUsages</code>.</p> + + + + + + + <p>The <code>FlowUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>InterfaceUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>AllocationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ActionUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>StateUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>TransitionUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>CalculationUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ConstraintUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + + <p>The <code>RequirementUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ConcernUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The code>CaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>AnalysisCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>VerificationCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>UseCaseUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ViewUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>ViewpointUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>RenderingUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + <p>The <code>MetadataUsages</code> that are <code>ownedUsages</code> of this <code>Definition</code>.</p> + + + + + + + + + <p>The ItemUsages being typed by a certain Structure.</p> + + + + + + + + + <p>The Usage in which the <code>nestedAction</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedPort</code>.</p> + + + + + + + + + + <p>A <code>Usage</code> is a usage of a <code>Definition</code>.</p> + +<p>A <code>Usage</code> may have <code>nestedUsages</code> that model <code>features</code> that apply in the context of the <code>owningUsage</code>. A <code>Usage</code> may also have <code>Definitions</code> nested in it, but this has no semantic significance, other than the nested scoping resulting from the <code>Usage</code> being considered as a <code>Namespace</code> for any nested <code>Definitions</code>.</p> + +<p>However, if a <code>Usage</code> has <code>isVariation = true</code>, then it represents a <em>variation point</em> <code>Usage</code>. In this case, all of its <code>members</code> must be <code>variant</code> <code>Usages</code>, related to the <code>Usage</code> by <code>VariantMembership</code> <code>Relationships</code>. Rather than being <code>features</code> of the <code>Usage</code>, <code>variant</code> <code>Usages</code> model different concrete alternatives that can be chosen to fill in for the variation point <code>Usage</code>.</p> + + + + <p>The <code>variants</code> of a <code>Usage</code> are the <code>ownedVariantUsages</code> of its <code>variantMemberships</code>.</p> + + + OCL2.0 + variant = variantMembership.ownedVariantUsage + + + + + <p>The <code>variantMemberships</code> of a <code>Usage</code> are those <code>ownedMemberships</code> that are <code>VariantMemberships</code>.</p> + + + OCL2.0 + variantMembership = ownedMembership->selectByKind(VariantMembership) + + + + + <p>If a <code>Usage</code> is a variation, then it must not have any <code>ownedFeatureMemberships</code>.</p> + + + OCL2.0 + isVariation implies ownedFeatureMembership->isEmpty() + + + + + <p>A <code>Usage</code> is referential if it is not composite.</p> + + + OCL2.0 + isReference = not isComposite + + + + + <p>If a <code>Usage</code> has an <code>owningVariationUsage</code>, then it must directly or indirectly specialize that <code>Usage</code>.</p> + + + OCL2.0 + owningVariationUsage <> null implies + specializes(owningVariationUsage) + + + + + <p>A variation <code>Usage</code> may not specialize any variation <code>Definition</code> or <code>Usage</code>.</p> + + + OCL2.0 + isVariation implies + not ownedSpecialization.specific->exists( + oclIsKindOf(Definition) and + oclAsType(Definition).isVariation or + oclIsKindOf(Usage) and + oclAsType(Usage).isVariation) + + + + + <p>If a <code>Usage</code> has an <code>owningVariationDefinition</code>, then it must directly or indirectly specialize that <code>Definition</code>.</p> + + + OCL2.0 + owningVariationDefinition <> null implies + specializes(owningVariationDefinition) + + + + + <p>The <code>directedUsages</code> of a <code>Usage</code> are all its <code>directedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + directedUsage = directedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedActions</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ActionUsages</code>.</p> + + + OCL2.0 + nestedAction = nestedUsage->selectByKind(ActionUsage) + + + + + <p>The <code>ownedAllocations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AllocationUsages</code>.</p> + + + OCL2.0 + nestedAllocation = nestedUsage->selectByKind(AllocationUsage) + + + + + <p>The <code>ownedAnalysisCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AnalysisCaseUsages</code>.</p> + + + OCL2.0 + nestedAnalysisCase = nestedUsage->selectByKind(AnalysisCaseUsage) + + + + + <p>The <code>ownedAttributes</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>AttributeUsages</code>.</p> + + + OCL2.0 + nestedAttribute = nestedUsage->selectByKind(AttributeUsage) + + + + + <p>The <code>ownedCalculations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>CalculationUsages</code>.</p> + + + OCL2.0 + nestedCalculation = nestedUsage->selectByKind(CalculationUsage) + + + + + <p>The <code>ownedCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>CaseUsages</code>.</p> + + + OCL2.0 + nestedCase = nestedUsage->selectByKind(CaseUsage) + + + + + <p>The <code>ownedConcerns</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConcernUsages</code>.</p> + + + OCL2.0 + nestedConcern = nestedUsage->selectByKind(ConcernUsage) + + + + + <p>The <code>ownedConnections</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConnectorAsUsages</code>.</p> + + + OCL2.0 + nestedConnection = nestedUsage->selectByKind(ConnectorAsUsage) + + + + + <p>The <code>ownedConstraints</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ConstraintUsages</code>.</p> + + + OCL2.0 + nestedConstraint = nestedUsage->selectByKind(ConstraintUsage) + + + + + <p>The <code>ownedEnumerations</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>EnumerationUsages</code>.</p> + + + OCL2.0 + ownedNested = nestedUsage->selectByKind(EnumerationUsage) + + + + + <p>The <code>ownedFlows</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>FlowConnectionUsages</code>.</p> + + + OCL2.0 + nestedFlow = nestedUsage->selectByKind(FlowConnectionUsage) + + + + + <p>The <code>ownedInterfaces</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>InterfaceUsages</code>.</p> + + + OCL2.0 + nestedInterface = nestedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedItems</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ItemUsages</code>.</p> + + + OCL2.0 + nestedItem = nestedUsage->selectByKind(ItemUsage) + + + + + <p>The <code>ownedMetadata</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>MetadataUsages</code>.</p> + + + OCL2.0 + nestedMetadata = nestedUsage->selectByKind(MetadataUsage) + + + + + <p>The <code>ownedOccurrences</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>OccurrenceUsages</code>.</p> + + + OCL2.0 + nestedOccurrence = nestedUsage->selectByKind(OccurrenceUsage) + + + + + <p>The <code>ownedParts</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>PartUsages</code>.</p> + + + OCL2.0 + nestedPart = nestedUsage->selectByKind(PartUsage) + + + + + <p>The <code>ownedPorts</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>PortUsages</code>.</p> + + + OCL2.0 + nestedPort = nestedUsage->selectByKind(PortUsage) + + + + + <p>The <code>ownedReferences</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ReferenceUsages</code>.</p> + + + OCL2.0 + nestedReference = nestedUsage->selectByKind(ReferenceUsage) + + + + + <p>The <code>ownedRenderings</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>RenderingUsages</code>.</p> + + + OCL2.0 + nestedRendering = nestedUsage->selectByKind(RenderingUsage) + + + + + <p>The <code>ownedRequirements</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>RequirementUsages</code>.</p> + + + OCL2.0 + nestedRequirement = nestedUsage->selectByKind(RequirementUsage) + + + + + <p>The <code>ownedStates</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>StateUsages</code>.</p> + + + OCL2.0 + nestedState = nestedUsage->selectByKind(StateUsage) + + + + + <p>The <code>ownedTransitions</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>TransitionUsages</code>.</p> + + + OCL2.0 + nestedTransition = nestedUsage->selectByKind(TransitionUsage) + + + + + <p>The <code>ownedUsages</code> of a <code>Usage</code> are all its <code>ownedFeatures</code> that are <code>Usages</code>.</p> + + + OCL2.0 + nestedUsage = ownedFeature->selectByKind(Usage) + + + + + <p>The <code>ownedUseCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>UseCaseUsages</code>.</p> + + + OCL2.0 + nestedUseCase = nestedUsage->selectByKind(UseCaseUsage) + + + + + <p>The <code>ownedValidationCases</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ValidationCaseUsages</code>.</p> + + + OCL2.0 + nestedVerificationCase = nestedUsage->selectByKind(VerificationCaseUsage) + + + + + <p>The <code>ownedViews</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ViewUsages</code>.</p> + + + OCL2.0 + nestedView = nestedUsage->selectByKind(ViewUsage) + + + + + <p>The <code>ownedViewpoints</code> of a <code>Usage</code> are all its <code>ownedUsages</code> that are <code>ViewpointUsages</code>.</p> + + + OCL2.0 + nestedViewpoint = nestedUsage->selectByKind(ViewpointUsage) + + + + + <p>The <code>usages</code> of a <code>Usage</code> are all its <code>features</code> that are <code>Usages</code>.</p> + + + OCL2.0 + usage = feature->selectByKind(Usage) + + + + + <p>A <code>Usage</code> that is directed, an end feature or has no <code>featuringTypes</code> must be referential.</p> + + + OCL2.0 + direction <> null or isEnd or featuringType->isEmpty() implies + isReference + + + + + <p>If a <code>Usage</code> is a variation, then it must be abstract.</p> + + + OCL2.0 + isVariation implies isAbstract + + + + + <p>A <code>Usage</code> <code>mayTimeVary</code> if and only if all of the following are true</p> +<ul> + <li>It has an <code>owningType</code> that specializes <em><code>Occurrences::Occurrence</code></em> (from the Kernel Semantic Library).</li> + <li>It is not a portion.</li> + <li>It does not specialize <em><code>Links::SelfLink</code></em> or <em><code>Occurrences::HappensLink</code></em> (from the Kernel Semantic Library).</li> + <li>If <code>isComposite = true</code>, it does not specialize <em><code>Actions::Action</code></em> (from the Systems Model Library). +</li></ul> + + + OCL2.0 + mayTimeVary = + owningType <> null and + owningType.specializesFromLibrary('Occurrences::Occurrence') and + not ( + isPortion or + specializesFromLibrary('Links::SelfLink') or + specializesFromLibrary('Occurrences::HappensLink') or + isComposite and specializesFromLibrary('Actions::Action') + ) + + + + + <p>If a <code>Usage</code> has an <code>owningVariationUsage</code>, then it must have the same <code>featuringTypes</code> as that <code>Usage</code>.</p> + + + OCL2.0 + owningVariationUsage <> null implies + featuringType->asSet() = owningVariationUsage.featuringType->asSet() + + + + + + <p>Whether this <code>Usage</code> may be time varying (that is, whether it is featured by the snapshots of its <code>owningType</code>, rather than being featured by the <code>owningType</code> itself). However, if <code>isConstant</code> is also true, then the value of the <code>Usage</code> is nevertheless constant over the entire duration of an instance of its <code>owningType</code> (that is, it has the same value on all snapshots).</p> + +<p>The property <code>mayTimeVary</code> redefines the KerML property <code>Feature::isVariable</code>, making it derived. The property <code>isConstant</code> is inherited from <code>Feature</code>.</p> + + + + + + <p>Whether this <code>Usage</code> is a referential <code>Usage</code>, that is, it has <code>isComposite = false</code>.<p> + + + + + + <p>The <code>Usages</code> which represent the variants of this <code>Usage</code> as a variation point <code>Usage</code>, if <code>isVariation = true</code>. If <code>isVariation = false</code>, then there must be no <code>variants</code>.</p> + + + + + + + <p>The <code>ownedMemberships</code> of this <code>Usage</code> that are <code>VariantMemberships</code>. If <code>isVariation = true</code>, then this must be all <code>memberships</code> of the <code>Usage</code>. If <code>isVariation = false</code>, then <code>variantMembership</code>must be empty.</p> + + + + + + + <p>The <code>Definition</code> that owns this <code>Usage</code> (if any).</p> + + + + + + + <p>The <code>Usage</code> in which this <code>Usage</code> is nested (if any).</p> + + + + + + + <p>The <code>Classifiers</code> that are the types of this <code>Usage</code>. Nominally, these are <code>Definitions</code>, but other kinds of Kernel <code>Classifiers</code> are also allowed, to permit use of <code>Classifiers</code> from the Kernel Model Libraries.</p> + + + + + + + <p>The <code>Usages</code> that are <code>features</code> of this <code>Usage</code> (not necessarily owned).</p> + + + + + + + + + + <p>The <code>usages</code> of this <code>Usage</code> that are <code>directedFeatures</code>.</p> + + + + + + + + <p>The <code>Usages</code> that are <code>ownedFeatures</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ReferenceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The code>AttributeUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The code>EnumerationUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.<p> + + + + + + + <p>The <code>OccurrenceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ItemUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>PartUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>PortUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ConnectorAsUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>. Note that this list includes <code>BindingConnectorAsUsages</code>, <code>SuccessionAsUsages</code>, and <code>FlowConnectionUsages</code> because these are <code>ConnectorAsUsages</code> even though they are not <code>ConnectionUsages</code>.</p> + + + + + + + <p>The code>FlowUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>InterfaceUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>AllocationUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + <p>The <code>ActionUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>StateUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>TransitionUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>CalculationUsage</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ConstraintUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>RequirementUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ConcernUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>CaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>AnalysisCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>VerificationCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>UseCaseUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ViewUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>ViewpointUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>RenderingUsages</code> that are <code>nestedUsages</code> of this <code>Usage</code>.</p> + + + + + + + + <p>The <code>MetadataUsages</code> that are <code>nestedUsages</code> of this of this <code>Usage</code>.</p> + + + + + + + <p>Whether this <code>Usage</code> is for a variation point or not. If true, then all the <code>memberships</code> of the <code>Usage</code> must be <code>VariantMemberships</code>.</p> + + + + + + <p>If this <code>Usage</code> is a variant, then its naming <code>Feature</code> is the <code>referencedFeature</code> of its <code>ownedReferenceSubsetting</code>.</p> + + + + OCL2.0 + if not owningMembership.oclIsKindOf(VariantMembership) then + self.oclAsType(Feature).namingFeature() +else if ownedReferenceSubsetting = null then null +else ownedReferenceSubsetting.referencedFeature +endif endif + + + + + + + + + + <p>If <code>ownedReferenceSubsetting</code> is not null, return the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code>.</p> + + + + OCL2.0 + if ownedReferenceSubsetting = null then null +else ownedReferenceSubsetting.referencedFeature.featureTarget +endif + + + + + + + + + <p>The Definition that owns the <code>ownedState</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedState</code> is nested.</p> + + + + + + + + + <p>The Usage in which the <code>nestedConstraint</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedTransition</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedConstraint</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedTransition</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedRequirement</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedRequirement</code> is nested.</p> + + + + + + + + <p>A <code>ReferenceUsage</code> is a <code>Usage</code> that specifies a non-compositional (<code>isComposite = false</code>) reference to something. The <code>definition</code> of a <code>ReferenceUsage</code> can be any kind of <code>Classifier</code>, with the default being the top-level <code>Classifier</code> <code><em>Base::Anything</em></code> from the Kernel Semantic Library. This allows the specification of a generic reference without distinguishing if the thing referenced is an attribute value, item, action, etc.</p> + + + + <p>A <code>ReferenceUsage</code> is always referential.</p> + + + OCL2.0 + isReference + + + + + + <p>Always <code>true</code> for a <code>ReferenceUsage</code>.</code> + + + + + + + <p>If this <code>ReferenceUsage</code> is the <em><code>payload</code></em> <code>parameter</code> of a <code>TransitionUsage</code>, then its naming <code>Feature</code> is the <code>payloadParameter</code> of the <code>triggerAction</code> of that <code>TransitionUsage</code> (if any).</p> + + + + OCL2.0 + if owningType <> null and owningType.oclIsKindOf(TransitionUsage) and + owningType.oclAsType(TransitionUsage).inputParameter(2) = self then + owningType.oclAsType(TransitionUsage).triggerPayloadParameter() +else self.oclAsType(Usage).namingFeature() +endif + + + + + + + + + + + + <p>The owning Definition of this VariantMembership, which must have <code>isVariation</code> = true.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedItem</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedInterface</code> is nested.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedReference</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAnalysisCase</code>.</p> + + + + + + + + + <p>The Usages that feature a certain Usage.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedPart</code>.</p> + + + + + + + + + <p>The Usages that have a certain Usage as a <code>flow</code>.</p> + + + + + + + + + + + + <p>The Usage in which the <code>nestedAnalysisCase</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedInterface</code>.</p> + + + + + + + + + <p>The variation point Definition that for which this Usage represents a variant, derived as the <code>owningVariationDefinition</code> of the <code>owningVariantMembership</code> of the Usage.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedReference</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedItem</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAction</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedPart</code> is nested.</p> + + + + + + + + + <p>The Usage in which the <code>nestedUsage</code> is nested.</p> + + + + + + + + + <p>The variation point Usage that for which this Usage represents a variant, derived as the <code>owningVariationUsage</code> of the <code>owningVariantMembership</code> of the Usage.</p> + + + + + + + + + <p>The Usage in which the <code>nestedAttribute</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAttribute</code>.</p> + + + + + + + + + <p>The Usages that have a certain Classifier as a <code>definition</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedConnection</code>.</p> + + + + + + + + <p>The Definition that owns this CaseUsage (if any).</p> + + + + <p>The Definition that owns the <code>ownedCase</code>.</p> + + + + + + + + <p>A <code>VariantMembership</code> is a <code>Membership</code> between a variation point <code>Definition</code> or <code>Usage</code> and a <code>Usage</code> that represents a variant in the context of that variation. The <code>membershipOwningNamespace</code> for the <code>VariantMembership</code> must be either a Definition or a <code>Usage</code> with <code>isVariation = true</code>.</p> + + + + <p>The <code>membershipOwningNamespace</code> of a <code>VariantMembership</code> must be a variation-point <code>Definition</code> or <code>Usage</code>.</p> + + + OCL2.0 + membershipOwningNamespace.oclIsKindOf(Definition) and + membershipOwningNamespace.oclAsType(Definition).isVariation or +membershipOwningNamespace.oclIsKindOf(Usage) and + membershipOwningNamespace.oclAsType(Usage).isVariation + + + + + + + <p>The <code>Usage</code> that represents a variant in the context of the <code>owningVariationDefinition</code> or <code>owningVariationUsage</code>.</p> + + + + + + + + + <p>The VariantMembership that owns this Usage, if the Usage represents a variant in the context of some variation point Definition or Usage.</p> + + + + + + + + + <p>The owning Definition of this VariantMembership, which must have <code>isVariation</code> = true.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedVerificationCase</code>.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedViewpoint</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedView</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedRendering</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedViewpoint</code>.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedRendering</code>.</p> + + + + + + + + + <p>The Definition that owns a certain <code>ownedVerificationCase</code>.</p> + + + + + + + + + <p>The Usage that owns a certain <code>nestedView</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedEnumeration</code>.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedEnumeration</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedAllocation</code>.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedAllocation</code>.</p> + + + + + + + + + <p>The Usage that owns the <code>nestedConcern</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedConcern</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedOccurrence</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedOccurrence</code> is nested.</p> + + + + + + + + + <p>The <code>Usage</code> that owns the <code>nestedFlow</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedUseCase</code> is nested.</p> + + + + + + + + + <p>The <code>Definition</code> that owns the <code>ownedFlow</code>.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedUseCase</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedMetadata</code> is nested.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedMetadata</code>.</p> + + + + + + + + + + <p>A <code>PartDefinition</code> is an <code>ItemDefinition</code> of a <code>Class</code> of systems or parts of systems. Note that all parts may be considered items for certain purposes, but not all items are parts that can perform actions within a system.</p> + + + + + </p>A <code>PartDefinition</code> must directly or indirectly specialize the base <code>PartDefinition</code> <em><code>Parts::Part</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Parts::Part') + + + + + + + <p>A <code>PartUsage</code> is a usage of a <code>PartDefinition</code> to represent a system or a part of a system. At least one of the <code>itemDefinitions</code> of the <code>PartUsage</code> must be a <code>PartDefinition</code>.</p> + +<p>A <code>PartUsage</code> must subset, directly or indirectly, the base <code>PartUsage</code> <em><code>parts</code></em> from the Systems Model Library.</p> + + + + <p>The <code>partDefinitions</code> of an <code>PartUsage</code> are those <code>itemDefinitions</code> that are <code>PartDefinitions</code>.</p> + + + OCL2.0 + itemDefinition->selectByKind(PartDefinition) + + + + + <p>At least one of the <code>itemDefinitions</code> of a <code>PartUsage</code> must be a <code>PartDefinition</code>.</p> + + + OCL2.0 + partDefinition->notEmpty() + + + + + <p>A <code>PartUsage</code> must directly or indirectly specialize the <code>PartUsage</code> <em><code>Parts::parts</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Parts::parts') + + + + + <p>A composite <code>PartUsage</code> whose <code>owningType</code> is a <code>ItemDefinition</code> or <code>ItemUsage</code> must directly or indirectly specialize the <code>PartUsage</code> <em><code>Items::Item::subparts</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ItemDefinition) or + owningType.oclIsKindOf(ItemUsage)) implies + specializesFromLibrary('Items::Item::subparts') + + + + + <p>If a <code>PartUsage</code> is owned via an <code>ActorMembership</code>, then it must directly or indirectly specialize either <code><em>Requirements::RequirementCheck::actors</em></code> (if its <code>owningType</code> is a <code>RequirementDefinition</code> or <code>RequirementUsage</code> or <code><em>Cases::Case::actors</em></code> (otherwise).</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(ActorMembership) implies + if owningType.oclIsKindOf(RequirementDefinition) or + owningType.oclIsKindOf(RequirementUsage) + then specializesFromLibrary('Requirements::RequirementCheck::actors') + else specializesFromLibrary('Cases::Case::actors') + + + + + <p>If a <code>PartUsage</code> is owned via a <code>StakeholderMembership</code>, then it must directly or indirectly specialize either <code><em>Requirements::RequirementCheck::stakeholders</em></code>.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(StakeholderMembership) implies + specializesFromLibrary('Requirements::RequirementCheck::stakeholders') + + + + + + <p>The <code>itemDefinitions</code> of this PartUsage that are PartDefinitions.</p> + + + + + + + + + <p>The PartUsages typed by a certain PartDefinition.</p> + + + + + + + + + + + <p>The InterfaceDefinitions that have a certain PortUsage as an <code>interfaceEnd</code>.</p> + + + + + + + + <p>An <code>InterfaceUsage</code> is a Usage of an <code>InterfaceDefinition</code> to represent an interface connecting parts of a system through specific ports.</p> + + + + <p>A binary <code>InterfaceUsage</code> must directly or indirectly specialize the <code>InterfaceUsage</code> <em><code>Interfaces::binaryInterfaces</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Interfaces::binaryInterfaces') + + + + + <p>An <code>InterfaceUsage</code> must directly or indirectly specialize the <code>InterfaceUsage</code> <em><code>Interfaces::interfaces</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Interfaces::interfaces') + + + + + + <p>The <code>InterfaceDefinitions</code> that type this <code>InterfaceUsage</code>.</p> + + + + + + + + + <p>The InterfaceUsages typed by a certain InterfaceDefinition.</p> + + + + + + + + <p>An <code>InterfaceDefinition</code> is a <code>ConnectionDefinition</code> all of whose ends are <code>PortUsages</code>, defining an interface between elements that interact through such ports.</p> + + + + <p>An <code>InterfaceDefinition</code> must directly or indirectly specialize the <code>InterfaceDefinition</code> <em><code>Interfaces::Interface</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Interfaces::Interface') + + + + + <p>A binary <code>InterfaceDefinition</code> must directly or indirectly specialize the <code>InterfaceDefinition</code> <em><code>Interfaces::BinaryInterface</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Interfaces::BinaryInterface') + + + + + + <p>The <code>PortUsages</code> that are the <code>connectionEnds</code> of this <code>InterfaceDefinition</code>. + + + + + + + + + + + + + + + + + <p>A <code>StateUsage</code> is an <code>ActionUsage</code> that is nominally the <code>Usage</code> of a <code>StateDefinition</code>. However, other kinds of kernel <code>Behaviors</code> are also allowed as <code>types</code>, to permit use of <code>Behaviors</code from the Kernel Model Libraries.</p> + +<p>A <code>StateUsage</code> may be related to up to three of its <code>ownedFeatures</code> by <code>StateSubactionMembership</code> <code>Relationships</code>, all of different <code>kinds</code>, corresponding to the entry, do and exit actions of the <code>StateUsage</code>.</p> + + + + + <p>The <code>doAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + OCL2.0 + doAction = + let doMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::do) in + if doMemberships->isEmpty() then null + else doMemberships->at(1) + endif + + + + + <p>The <code>entryAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + OCL2.0 + entryAction = + let entryMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::entry) in + if entryMemberships->isEmpty() then null + else entryMemberships->at(1) + endif + + + + + <p>If a <code>StateUsage</code> is parallel, then its <code>nestedActions</code> (which includes <code>nestedStates</code>) must not have any <code>incomingTransitions</code> or <code>outgoingTransitions</code>.</p> + + + OCL2.0 + isParallel implies + nestedAction.incomingTransition->isEmpty() and + nestedAction.outgoingTransition->isEmpty() + + + + + <p>A <code>StateUsage</code> that is a substate usage with a non-parallel owning <code>StateDefinition</code> or <code>StateUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::StateAction::exclusiveStates</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubstateUsage(false) implies + specializesFromLibrary('States::StateAction::exclusiveStates') + + + + + <p>The <code>exitAction</code> of a <code>StateUsage</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = exit +</code>.</p> + + + OCL2.0 + exitAction = + let exitMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::exit) in + if exitMemberships->isEmpty() then null + else exitMemberships->at(1) + endif + + + + + <p>A <code>StateUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::stateActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('States::stateActions') + + + + + <p>A <code>StateUsage</code> must not have more than one owned <code>StateSubactionMembership</code> of each <code>kind</code>.</p> + + + OCL2.0 + ownedMembership-> + selectByKind(StateSubactionMembership)-> + isUnique(kind) + + + + + <p>A <code>StateUsage</code> that is a substate usage with a owning <code>StateDefinition</code> or <code>StateUsage</code> that is parallel must directly or indirectly specialize the <code>StateUsage</code> <em><code>States::StateAction::substates</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isSubstateUsage(true) implies + specializesFromLibrary('States::StateAction::substates') + + + + + <p>A composite <code>StateUsage</code> whose <code>owningType</code> is a <code>PartDefinition</code> or <code>PartUsage</code> must directly or indirectly specialize the <code>StateUsage</code> <em><code>Parts::Part::ownedStates</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::ownedStates') + + + + + + <p>The <code>Behaviors</code> that are the <code>types</code> of this <code>StateUsage</code>. Nominally, these would be <code>StateDefinitions</code>, but kernel <code>Behaviors</code> are also allowed, to permit use of <code>Behaviors</code> from the Kernel Model Libraries.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed on entry to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed while in the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateUsage</code> to be performed on exit to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateUsage</code> by a <code>StateSubactionMembership</code> with <code>kind = exit</code>.</p> + + + + + + + <p>Whether the <code>nestedStates</code> of this <code>StateUsage</code> are to all be performed in parallel. If true, none of the <code>nestedActions</code> (which include <code>nestedStates</code>) may have any incoming or outgoing <code>Transitions</code>. If false, only one <code>nestedState</code> may be performed at a time.</p> + + + + + + + + <p>Check if this <code>StateUsage</code> is composite and has an <code>owningType</code> that is a <code>StateDefinition</code> or <code>StateUsage</code> with the given value of <code>isParallel</code>, but is <em>not</em> an <code>entryAction</code>, <code>doAction</code>, or <code>exitAction</code>. If so, then it represents a <code><em>StateAction</em></code> that is a <code><em>substate</em></code> or <code><em>exclusiveState</em></code> (for <code>isParallel = false</code>) of another <code><em>StateAction</em></code>.</p> + + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(StateDefinition) and + owningType.oclAsType(StateDefinition).isParallel = isParallel or + owningType.oclIsKindOf(StateUsage) and + owningType.oclAsType(StateUsage).isParallel = isParallel) and +not owningFeatureMembership.oclIsKindOf(StateSubactionMembership) + + + + + + + + + + + + + + <p>The StateDefinitions featuring a certain StateUsage.</p> + + + + + + + + <p>A <code>StateSubactionKind</code> indicates whether the <code>action</code> of a StateSubactionMembership is an entry, do or exit action.</p> + + + + <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is an <code>entryAction</code>.</p> + + + + + <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is a <code>doAction</code>.</p> + + + + + <p>Indicates that the <code>action</code> of a <code>StateSubactionMembership</code> is an <code>exitAction</code>.</p> + + + + + + <p>A <code>StateSubactionMembership</code> is a <code>FeatureMembership</code> for an entry, do or exit <code>ActionUsage<code> of a <code>StateDefinition</code> or <code>StateUsage</code>.</p> + + + + <p>The <code>owningType</code> of a <code>StateSubactionMembership</code> must be a <code>StateDefinition</code> or a <code>StateUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(StateDefinition) or +owningType.oclIsKindOf(StateUsage) + + + + + + <p>Whether this <code>StateSubactionMembership</code> is for an <code>entry<code>, <code>do</code> or <code>exit</code> <code>ActionUsage</code>.</p> + + + + + <p>The <code>ActionUsage</code> that is the <code>ownedMemberFeature</code> of this <code>StateSubactionMembership</code>.</p> + + + + + + + + <p>A <code>StateDefinition</code> is the <code>Definition</code> of the </code>Behavior</code> of a system or part of a system in a certain state condition.</p> + +<p>A <code>StateDefinition</code> may be related to up to three of its <code>ownedFeatures</code> by <code>StateBehaviorMembership</code> <code>Relationships</code>, all of different <code>kinds</code>, corresponding to the entry, do and exit actions of the <code>StateDefinition</code>.</p> + + + + <p>A <code>StateDefinition</code> must directly or indirectly specialize the <code>StateDefinition</code> <em><code>States::StateAction</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('States::StateAction') + + + + + <p>A <code>StateDefinition</code> must not have more than one owned <code>StateSubactionMembership</code> of each <code>kind</code>.</p> + + + OCL2.0 + ownedMembership-> + selectByKind(StateSubactionMembership)-> + isUnique(kind) + + + + + <p>The <code>states</code> of a <code>StateDefinition</code> are those of its <code>actions</code> that are <code>StateUsages</code>.</p> + + + OCL2.0 + state = action->selectByKind(StateUsage) + + + + + <p>The <code>doAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + OCL2.0 + doAction = + let doMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::do) in + if doMemberships->isEmpty() then null + else doMemberships->at(1) + endif + + + + + <p>The <code>entryAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + OCL2.0 + entryAction = + let entryMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::entry) in + if entryMemberships->isEmpty() then null + else entryMemberships->at(1) + endif + + + + + <p>If a <code>StateDefinition</code> is parallel, then its <code>ownedActions</code> (which includes its <code>ownedStates</code>) must not have any <code>incomingTransitions</code> or <code>outgoingTransitions</code>.</p> + + + OCL2.0 + isParallel implies + ownedAction.incomingTransition->isEmpty() and + ownedAction.outgoingTransition->isEmpty() + + + + + <p>The <code>exitAction</code> of a <code>StateDefinition</code> is the <code>action</code> of the owned <code>StateSubactionMembership</code> with <code>kind = exit +</code>.</p> + + + OCL2.0 + exitAction = + let exitMemberships : Sequence(StateSubactionMembership) = + ownedMembership-> + selectByKind(StateSubactionMembership)-> + select(kind = StateSubactionKind::exit) in + if exitMemberships->isEmpty() then null + else exitMemberships->at(1) + endif + + + + + + <p>The <code>StateUsages</code>, which are <code>actions</code> in the <code>StateDefinition</code>, that specify the discrete states in the behavior defined by the <code>StateDefinition</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed on entry to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = entry</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed while in the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = do</code>.</p> + + + + + + + <p>The <code>ActionUsage</code> of this <code>StateDefinition</code> to be performed on exit to the state defined by the <code>StateDefinition</code>. It is the owned <code>ActionUsage</code> related to the <code>StateDefinition</code> by a <code>StateSubactionMembership</code> with <code>kind = exit</code>.</p> + + + + + + + <p>Whether the <code>ownedStates</code> of this <code>StateDefinition</code> are to all be performed in parallel. If true, none of the <code>ownedActions</code> (which includes <code>ownedStates</code>) may have any incoming or outgoing <code>Transitions</code>. If false, only one <code>ownedState</code> may be performed at a time.</p> + + + + + + + + + + <p>The Behaviors that are the types of this StateUsage. Nominally, these would be StateDefinition, but non-StateDefinition Behaviors are also allowed, to permit use of Behaviors from the Kernel Library.</p> + + + + + + + + <p>A <code>TransitionUsage</code> is an <code>ActionUsage</code> representing a triggered transition between <code>ActionUsages</code> or <code>StateUsages</code>. When triggered by a <code>triggerAction</code>, when its <code>guardExpression</code> is true, the <code>TransitionUsage</code> asserts that its <code>source</code> is exited, then its <code>effectAction</code> (if any) is performed, and then its <code>target</code> is entered.</p> + +<p>A <code>TransitionUsage</code> can be related to some of its <code>ownedFeatures</code> using <code>TransitionFeatureMembership</code> <code>Relationships</code>, corresponding to the <code>triggerAction</code>, <code>guardExpression</code> and <code>effectAction</code> of the <code>TransitionUsage</code>.</p> + + + + <p>A composite <code>TransitionUsage</code> whose <code>owningType</code> is an <code>ActionDefinition</code> or <code>ActionUsage</code> and whose <code>source</code> is <em>not</em> a <code>StateUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::Action::decisionTransitions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ActionDefinition) or + owningType.oclIsKindOf(ActionUsage)) and +source <> null and not source.oclIsKindOf(StateUsage) implies + specializesFromLibrary('Actions::Action::decisionTransitions') + + + + + <p>A composite <code>TransitionUsage</code> whose <code>owningType</code> is a <code>StateDefinition</code> or <code>StateUsage</code> and whose <code>source</code> is a <code>StateUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>States::StateAction::stateTransitions</code></em> from the Systems Model Library</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(StateDefinition) or + owningType.oclIsKindOf(StateUsage)) and +source <> null and source.oclIsKindOf(StateUsage) implies + specializesFromLibrary('States::StateAction::stateTransitions') + + + + + + <p>A <code>TransitionUsage</code> must directly or indirectly specialize the <code>ActionUsage</code> <em><code>Actions::transitionActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Actions::transitionActions') + + + + + <p>The <code>source</code> of a <code>TransitionUsage</code> is <code>featureTarget</code> of the result of <code>sourceFeature()</code>, which must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + source = + let sourceFeature : Feature = sourceFeature() in + if sourceFeature = null then null + else sourceFeature.featureTarget.oclAsType(ActionUsage) + + + + + <p>The <code>target</code> of a <code>TransitionUsage</code> is given by the <code>featureTarget</code> of the <code>targetFeature</code> of its <code>succession</code>, which must be an <code>ActionUsage</code>.</p> + + + OCL2.0 + target = + if succession.targetFeature->isEmpty() then null + else + let targetFeature : Feature = + succession.targetFeature->first().featureTarget in + if not targetFeature.oclIsKindOf(ActionUsage) then null + else targetFeature.oclAsType(ActionUsage) + endif + endif + + + + + + <p>The <code>triggerActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = trigger</code>, which must all be <code>AcceptActionUsages</code>.</p> + + + OCL2.0 + triggerAction = ownedFeatureMembership-> + selectByKind(TransitionFeatureMembership)-> + select(kind = TransitionFeatureKind::trigger).transitionFeature-> + selectByKind(AcceptActionUsage) + + + + + <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>Succession</code> with an <code>ActionUsage</code> as the <code>featureTarget</code> of its <code>targetFeature</code>.</p> + + + OCL2.0 + let successions : Sequence(Successions) = + ownedMember->selectByKind(Succession) in +successions->notEmpty() and +successions->at(1).targetFeature.featureTarget-> + forAll(oclIsKindOf(ActionUsage)) + + + + + <p>The <code>triggerActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = trigger</code>, which must all be <code>Expressions</code>.</p> + + + OCL2.0 + guardExpression = ownedFeatureMembership-> + selectByKind(TransitionFeatureMembership)-> + select(kind = TransitionFeatureKind::trigger).transitionFeature-> + selectByKind(Expression) + + + + + <p>The <code>triggerActions</code>, <code>guardExpressions</code>, and <code>effectActions</code> of a <code>TransitionUsage</code> must specialize, respectively, the <em><code>accepter</code></em>, <em><code>guard</code></em>, and <em><code>effect</code></em> <code>features</code> of the <code>ActionUsage</code> <em><code>Actions::TransitionActions</code></em> from the Systems Model Library.</p> + + + OCL2.0 + triggerAction->forAll(specializesFromLibrary('Actions::TransitionAction::accepter') and +guardExpression->forAll(specializesFromLibrary('Actions::TransitionAction::guard') and +effectAction->forAll(specializesFromLibrary('Actions::TransitionAction::effect')) + + + + + <p>The <code>effectActions</code> of a <code>TransitionUsage</code> are the <code>transitionFeatures</code> of the <code>ownedFeatureMemberships</code> of the <code>TransitionUsage</code> with <code>kind = effect</code>, which must all be <code>ActionUsages</code>.</p> + + + OCL2.0 + triggerAction = ownedFeatureMembership-> + selectByKind(TransitionFeatureMembership)-> + select(kind = TransitionFeatureKind::trigger).transitionFeatures-> + selectByKind(AcceptActionUsage) + + + + + <p>The <code>sourceFeature</code> of the <code>succession</code> of a <code>TransitionUsage</code> must be the <code>source</code> of the <code>TransitionUsage</code> (i.e., the first <code>connectorEnd</code> of the <code>succession</code> must have a <code>ReferenceSubsetting</code> <code>Relationship</code> with the <code>source</code>).</p> + + + OCL2.0 + succession.sourceFeature = source + + + + + <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>source</code> and its first input <code>parameter</code> (which redefines <code><em>Actions::TransitionAction::transitionLinkSource</em></code>).</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(source) and + b.relatedFeatures->includes(inputParameter(1))) + + + + + <p>If a <code>TransitionUsage</code> has a <code>triggerAction</code>, then the <em><code>payload</code></em> <code>parameter</code> of the <code>TransitionUsage</code> subsets the <code>Feature</code> chain of the <code>triggerAction</code> and its <code>payloadParameter</code>.</p> + + + OCL2.0 + triggerAction->notEmpty() implies + let payloadParameter : Feature = inputParameter(2) in + payloadParameter <> null and + payloadParameter.subsetsChain(triggerAction->at(1), triggerPayloadParameter()) + + + + + <p>A <code>TransitionUsage</code> must have an <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>succession</code> and the inherited <code>Feature</code> <code><em>TransitionPerformances::TransitionPerformance::transitionLink</em></code>.</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)->exists(b | + b.relatedFeatures->includes(succession) and + b.relatedFeatures->includes(resolveGlobal( + 'TransitionPerformances::TransitionPerformance::transitionLink'))) + + + + + <p>A <code>TransitionUsage</code> must have at least one owned input <code>parameter</code> and, if it has a <code>triggerAction</code>, it must have at least two.</p> + + + OCL2.0 + if triggerAction->isEmpty() then + inputParameters()->size() >= 1 +else + inputParameters()->size() >= 2 +endif + + + + + + <p>The <code>succession</code> of a <code>TransitionUsage</code> is its first <code>ownedMember</code> that is a <code>Succession</code>.</p> + + + OCL2.0 + succession = ownedMember->selectByKind(Succession)->at(1) + + + + + <p>If the <code>source</code> of a <code>TransitionUsage</code> is <em>not</em> a <code>StateUsage</code>, then the <code>TransitionUsage</code> must not have any <code>triggerActions</code>.</p> + + + OCL2.0 + source <> null and not source.oclIsKindOf(StateUsage) implies + triggerAction->isEmpty() + + + + + + <p>The source <code>ActionUsage</code> of this <code>TransitionUsage</code>, which becomes the <code>source</code> of the <code>succession</code> for the <code>TransitionUsage</code>.</p> + + + + + + + <p>The target <code>ActionUsage</code> of this <code>TransitionUsage<code>, which is the <code>targetFeature</code> of the <code>succession</code> for the <code>TransitionUsage</code>.</p> + + + + + + + <p>The <code>AcceptActionUsages</code> that define the triggers of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = trigger</code>, which must all be <code>AcceptActionUsages</code>.</p> + + + + + + + <p>The <code>Expressions</code> that define the guards of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = guard</code>, which must all be <code>Expressions</code>.</p> + + + + + + + <p>The <code>ActionUsages</code> that define the effects of this <code>TransitionUsage</code>, which are the <code>ownedFeatures</code> of the <code>TransitionUsage</code> related to it by <code>TransitionFeatureMemberships</code> with <code>kind = effect</code>, which must all be <code>ActionUsages</code>.</p> + + + + + + + <p>The <code>Succession</code> that is the <code>ownedFeature</code> of this <code>TransitionUsage</code>, which, if the <code>TransitionUsage</code> is triggered, asserts the temporal ordering of the <code>source</code> and <code>target</code>.</p> + + + + + + + <p>Return the <code>payloadParameter</code> of the <code>triggerAction</code> of this <code>TransitionUsage</code>, if it has one.</p> + + + + OCL2.0 + if triggerAction->isEmpty() then null +else triggerAction->first().payloadParameter +endif + + + + + + + + + + <p>Return the <code>Feature</code> to be used as the <code>source</code> of the <code>succession</code> of this <code>TransitionUsage</code>, which is the first <code>member</code> of the <code>TransitionUsage</code> that is a <code>Feature</code>, that is owned by the <code>TransitionUsage</code> via a <code>Membership</code> that is <em>not</em> a <code>FeatureMembership</code>, and whose <code>featureTarget</code> is an <code>ActionUsage</code>.</p> + + + + OCL2.0 + let features : Sequence(Feature) = ownedMembership-> + reject(oclIsKindOf(FeatureMembership)).memberElement-> + selectByKind(Feature)-> + select(featureTarget.oclIsKindOf(ActionUsage)) in +if features->isEmpty() then null +else features->first() +endif + + + + + + + + + + + <p>A <code>TransitionFeatureMembership</code> is a <code>FeatureMembership</code> for a trigger, guard or effect of a <code>TransitionUsage</code>, whose <code>transitionFeature</code> is a <code>AcceptActionUsage</code>, <em><code>Boolean</code></em>-valued <code>Expression</code> or <code>ActionUsage</code>, depending on its <code>kind</code>. </p> + + + + <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>trigger</code>, then its <code>transitionFeature</code> must be a kind of <code>AcceptActionUsage</code>.</p> + + + OCL2.0 + kind = TransitionFeatureKind::trigger implies + transitionFeature.oclIsKindOf(AcceptActionUsage) + + + + + <p>The <code>owningType</code> of a <code>TransitionFeatureMembership</code> must be a <code>TransitionUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(TransitionUsage) + + + + + <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>guard</code>, then its <code>transitionFeature</code> must be a kind of <code>Expression</code> whose result is a <em><code>Boolean</code></em> value.</p> + + + OCL2.0 + kind = TransitionFeatureKind::guard implies + transitionFeature.oclIsKindOf(Expression) and + let guard : Expression = transitionFeature.oclIsKindOf(Expression) in + guard.result.specializesFromLibrary('ScalarValues::Boolean') and + guard.result.multiplicity <> null and + guard.result.multiplicity.hasBounds(1,1) + + + + + <p>If the <code>kind</code> of a <code>TransitionUsage</code> is <code>effect</code>, then its <code>transitionFeature</code> must be a kind of <code>ActionUsage</code>.</p> + + + OCL2.0 + kind = TransitionFeatureKind::effect implies + transitionFeature.oclIsKindOf(ActionUsage) + + + + + + <p>Whether this <code>TransitionFeatureMembership </code> is for a <code>trigger</code>, <code>guard</code> or <code>effect</code>.</p> + + + + + <p>The <code>Step</code> that is the <code>ownedMemberFeature</code> of this <code>TransitionFeatureMembership</code>.</p> + + + + + + + + <p>An <code>ExhibitStateUsage</code> is a <code>StateUsage</code> that represents the exhibiting of a <code>StateUsage</code>. Unless it is the <code>StateUsage</code> itself, the <code>StateUsage</code> to be exhibited is related to the <code>ExhibitStateUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>. An <code>ExhibitStateUsage</code> is also a <code>PerformActionUsage</code>, with its <code>exhibitedState</code> as the <code>performedAction</code>.</p> + + + + + <p>If an <code>ExhibitStateUsage</code> has an <code>owningType</code> that is a <code>PartDefinition</code> or <code>PartUsage</code>, then it must directly or indirectly specialize the <code>StateUsage</code> <code><em>Parts::Part::exhibitedStates</em></code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(PartDefinition) or + owningType.oclIsKindOf(PartUsage)) implies + specializesFromLibrary('Parts::Part::exhibitedStates') + + + + + <p>If an <code>ExhibitStateUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be a <code>StateUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(StateUsage) + + + + + + + <p>The <code>StateUsage</code> to be exhibited by the <code>ExhibitStateUsage</code>. It is the <code>performedAction</code> of the <code>ExhibitStateUsage</code> considered as a <code>PerformActionUsage</code>, which must be a <code>StateUsage</code>.</p> + + + + + + + + <p>A <code>TransitionActionKind</code> indicates whether the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a trigger, guard or effect.</p> + + + + <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a <code>triggerAction</code>.</p> + + + + + <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is a <code>guardExpression</code>.</p> + + + + + <p>Indicates that the <code>transitionFeature</code> of a <code>TransitionFeatureMembership</code> is an <code>effectAction</code>.</p> + + + + + + + <p>The ExhibitStateUsages that have a certain StateUsage as their <tt>exhibitedState</tt>.</p> + + + + + + + + + <p>The Transition that owns a certain Succession.</p> + + + + + + + + + <p>The TransitionUsage that has a certain <tt>effectAction</tt>.</p> + + + + + + + + + <p>The TransitionUsage incoming to a certain target <tt>ActionUsage</tt>.</p> + + + + + + + + + <p>The TransitionUsage that is triggered by a certain AcceptActionUsage.</p> + + + + + + + + + <p>The TransitionUsage that is guarded by a certain Expression.</p> + + + + + + + + + <p>The TransitionUsage outgoing from a certain source <tt>ActionUsage</tt>.</p> + + + + + + + + + <p>The StateDefinitions with a certain <tt>exitAction</tt>.</p> + + + + + + + + + <p>The StateDefinitions with a certain <tt>doAction</tt>.</p> + + + + + + + + + <p>The StateUsages with a certain <tt>entryAction</tt>.</p> + + + + + + + + + <p>The StateDefinitions with a certain <tt>entryAction</tt>.</p> + + + + + + + + + <p>The TransitionFeatureMembership that owns a certain Step (if any).</p> + + + + + + + + + <p>The StateUsages with a certain <tt>exitAction</tt>.</p> + + + + + + + + + <p>The StateUsages with a certain <tt>doAction</tt>.</p> + + + + + + + + + <p>The StateSubactionMembership that is the owner of a certain ActionUsage (if any).</p> + + + + + + + + + + <p>A <code>ConstraintUsage</code> is an <code>OccurrenceUsage</code> that is also a <code>BooleanExpression</code>, and, so, is typed by a <code>Predicate</code>. Nominally, if the type is a <code>ConstraintDefinition</code>, a <code>ConstraintUsage</code> is a <code>Usage</code> of that <code>ConstraintDefinition</code>. However, other kinds of kernel <code>Predicates</code> are also allowed, to permit use of <code>Predicates</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>ConstraintUsage</code> whose <code>owningFeatureMembership</code> is a <code>RequirementConstraintMembership</code> must directly or indirectly specialize on the <code>ConstraintUsages</code> <code><em>assumptions</em></code> or <code><em>constraints</em></code> from the <code>ConstraintDefinition</code> <code><em>Requirements::RequirementCheck</em></code> in the Systems Model Library, depending on whether the <code>kind</code> of the <code>RequirementConstraintMembership</code> is <code>assumption</code> or <code>requirement</code>, respectively.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(RequirementConstraintMembership) implies + if owningFeatureMembership.oclAsType(RequirementConstraintMembership).kind = + RequirementConstraintKind::assumption then + specializesFromLibrary('Requirements::RequirementCheck::assumptions') + else + specializesFromLibrary('Requirements::RequirementCheck::constraints') + endif + + + + + <p>A <code>ConstraintUsage</code> must directly or indirectly specialize the base <code>ConstraintUsage</code> <em><code>Constraints::constraintChecks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Constraints::constraintChecks') + + + + + <p>A <code>ConstraintUsage</code> whose <code>owningType</code> is an <code>ItemDefinition</code> or <code>ItemUsage</code> must directly or indirectly specialize the <code>ConstraintUsage</code> <em><code>Items::Item::checkedConstraints</code></em>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(ItemDefinition) or + owningType.oclIsKindOf(ItemUsage)) implies + specializesFromLibrary('Items::Item::checkedConstraints') + + + + + + + <p>The (single) <code>Predicate</code> that is the type of this <code>ConstraintUsage</code>. Nominally, this will be a <code>ConstraintDefinition</code>, but other kinds of <code>Predicates</code> are also allowed, to permit use of <code>Predicates</code> from the Kernel Model Libraries.</p> + + + + + + + <p>The naming <code>Feature</code> of a <code>ConstraintUsage</code> that is owned by a <code>RequirementConstraintMembership</code> and has an <code>ownedReferenceSubsetting</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of that <code>ownedReferenceSubsetting</code>.</p> + + + + OCL2.0 + if owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(RequirementConstraintMembership) and +ownedReferenceSubsetting <> null then + ownedReferenceSubsetting.referencedFeature.featureTarget +else + self.oclAsType(OccurrenceUsage).namingFeature() +endif + + + + + + + + + + <p>A <code>ConstraintUsage</code> is not model-level evaluable.</p> + + + + OCL2.0 + false + + + + + + + + + + + + + + <p>A <code>ConstraintDefinition</code> is an <code>OccurrenceDefinition</code> that is also a <code>Predicate</code> that defines a constraint that may be asserted to hold on a system or part of a system.</p> + + + + + + <p>A <code>ConstraintDefinition</code> must directly or indirectly specialize the base <code>ConstraintDefinition</code> <em><code>Constraints::ConstraintCheck</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Constraints::ConstraintCheck') + + + + + + + + + <p>The ConstraintUsages typed by a certain Predicate.</p> + + + + + + + + + <p>The AssertConstraintUsages that have a certain ConstraintUsage as their <tt>assertedConstraint</tt>.</p> + + + + + + + + <p>An <code>AssertConstraintUsage</code> is a <code>ConstraintUsage</code> that is also an <code>Invariant</code> and, so, is asserted to be true (by default). Unless it is the <code>AssertConstraintUsage</code> itself, the asserted <code>ConstraintUsage</code> is related to the <code>AssertConstraintUsage</code> by a ReferenceSubsetting <code>Relationship</code>.</p> + + + + <p>If an <code>AssertConstraintUsage</code> has no <code>ownedReferenceSubsetting</code>, then its <code>assertedConstraint</code> is the <code>AssertConstraintUsage</code> itself. Otherwise, the <code>assertedConstraint</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code>, which must be a <code>ConstraintUsage</code>.</p> + + + OCL2.0 + assertedConstraint = + if referencedFeatureTarget() = null then self + else if referencedFeatureTarget().oclIsKindOf(ConstraintUsage) then + referencedFeatureTarget().oclAsType(ConstraintUsage) + else null + endif endif + + + + + <p>If a <code>AssertConstraintUsage</code> is negated, then it must directly or indirectly specialize the <code>ConstraintUsage</code> <code><em>Constraints::negatedConstraintChecks</em></code>. Otherwise, it must directly or indirectly specialize the <code>ConstraintUsage</code> <code><em>Constraints::assertedConstraintChecks</em></code>.</p> + + + OCL2.0 + if isNegated then + specializesFromLibrary('Constraints::negatedConstraintChecks') +else + specializesFromLibrary('Constraints::assertedConstraintChecks') +endif + + + + + <p>If an <code>AssertConstraintUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of its <code>referencedFeature</code> must be a </code>ConstraintUsage</code>.</p> + + + OCL2.0 + referencedFeaureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(ConstraintUsage) + + + + + + + <p>The <code>ConstraintUsage</code> to be performed by the <code>AssertConstraintUsage</code>. It is the <code>referenceFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>AssertConstraintUsage</code>, if there is one, and, otherwise, the <code>AssertConstraintUsage</code> itself.</p> + + + + + + + + + + + <p>The RequirementUsage that has a certain ConstraintUsage as a <code>requiredConstraint</code> (if any).</p> + + + + + + + + + <p>The RequirementUsage that has a certain ConstraintUsage as an <cod>assumedConstraint</code> (if any).</p> + + + + + + + + + <p>The SatifyRequirementUsages that have a certain RequirementUsage as their <tt>satisfiedRequirement</tt>.</p> + + + + + + + + <p>A <code>RequirementDefinition</code> is a <code>ConstraintDefinition</code> that defines a requirement used in the context of a specification as a constraint that a valid solution must satisfy. The specification is relative to a specified subject, possibly in collaboration with one or more external actors.</p> + + + + <p>The <code>texts</code> of a<code>RequirementDefinition</code> are the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + text = documentation.body + + + + + <p>The <code>assumedConstraints</code> of a <code>RequirementDefinition</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> + + + OCL2.0 + assumedConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::assumption). + ownedConstraint + + + + + <p>The <code>requiredConstraints</code> of a <code>RequirementDefinition</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = requirement</code>.</p> + + + OCL2.0 + requiredConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::requirement). + ownedConstraint + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementDefinition</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjects : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjects->isEmpty() then null + else subjects->first().ownedSubjectParameter + endif + + + + + <p>The <code>framedConcerns</code> of a <code>RequirementDefinition</code> are the <code>ownedConcerns</code> of the <code>FramedConcernMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + framedConcern = featureMembership-> + selectByKind(FramedConcernMembership). + ownedConcern + + + + + <p>The <code>actorParameters</code> of a <code>RequirementDefinition</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>The <code>stakeHolderParameters</code> of a <code>RequirementDefinition</code> are the <code>ownedStakeholderParameters</code> of the <code>StakeholderMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + OCL2.0 + stakeholderParameter = featureMembership-> + selectByKind(StakholderMembership). + ownedStakeholderParameter + + + + + <p>A <code>RequirementDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(SubjectMembership)-> + size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementDefinition</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>RequirementDefinition</code> must directly or indirectly specialize the base <code>RequirementDefinition</code> <code><em>Requirements::RequirementCheck</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::RequirementCheck') + + + + + + <p>An optional modeler-specified identifier for this <code>RequirementDefinition</code> (used, e.g., to link it to an original requirement text in some source document), which is the <code>declaredShortName</code> for the <code>RequirementDefinition</code>.</p> + + + + + + + + <p>An optional textual statement of the requirement represented by this <code>RequirementDefinition</code>, derived from the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementDefinition</code>.</p> + + + + + + + + + <p>The <code>parameter</code> of this <code>RequirementDefinition</code> that represents its subject.</p> + + + + + + + <p>The <code>parameters</code> of this <code>RequirementDefinition</code> that represent actors involved in the requirement.</p> + + + + + + + <p>The <code>parameters</code> of this <code>RequirementDefinition</code> that represent stakeholders for th requirement.</p> + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent assumptions of this <code>RequirementDefinition</code>, which are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent requirements of this <code>RequirementDefinition</code>, derived as the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind</code> = <code>requirement</code>.</p> + + + + + + + <p>The <code>ConcernUsages</code> framed by this <code>RequirementDefinition</code>, which are the <code>ownedConcerns</code> of all <code>FramedConcernMemberships</code> of the <code>RequirementDefinition</code>.</p> + + + + + + + + + <p>The SatisfyRequirementUsages that have a certain Feature as their <tt>satisfyingFeature</tt>.</p> + + + + + + + + + <p>The RequirementUsages typed by a certain RequirementDefinition.</p> + + + + + + + + + <p>The RequirementDefinition that has a certain ConstraintUsage as an <code>assumedConstraint</code> (if any).</p> + + + + + + + + <p>A <code>SatisfyRequirementUsage</code> is an <code>AssertConstraintUsage</code> that asserts, by default, that a satisfied <code>RequirementUsage</code> is true for a specific <code>satisfyingFeature</code>, or, if <code>isNegated = true</code>, that the <code>RequirementUsage</code> is false. The satisfied <code>RequirementUsage</code> is related to the <code>SatisfyRequirementUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>.</p> + + + + <p>The <code>satisfyingFeature</code> of a <code>SatisfyRequirementUsage</code> is the <code>Feature</code> to which the <code>subjectParameter</code> is bound.</p> + + + OCL2.0 + satisfyingFeature = + let bindings: BindingConnector = ownedMember-> + selectByKind(BindingConnector)-> + select(b | b.relatedElement->includes(subjectParameter)) in + if bindings->isEmpty() or + bindings->first().relatedElement->exits(r | r <> subjectParameter) + then null + else bindings->first().relatedElement->any(r | r <> subjectParameter) + endif + + + + + <p>A <code>SatisfyRequirementUsage</code> must have exactly one <code>ownedMember</code> that is a <code>BindingConnector</code> between its <code>subjectParameter</code> and some <code>Feature</code> other than the <code>subjectParameter</code>.</p> + + + OCL2.0 + ownedMember->selectByKind(BindingConnector)-> + select(b | + b.relatedElement->includes(subjectParameter) and + b.relatedElement->exists(r | r <> subjectParameter))-> + size() = 1 + + + + + <p>If a <code>SatisfyRequirementUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of its <code>referencedFeature</code> must be a <code>RequirementUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(RequirementUsage) + + + + + <p>If a <code>SatisfyRequirementUsage</code> is negated, then it must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::notSatisfiedRequirementChecks</code></em>. Otherwise, it must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::satisfiedRequirementChecks</code></em>.</p> + + + OCL2.0 + if isNegated then + specializesFromLibrary('Requirements::notSatisfiedRequirementChecks') +else + specializesFromLibrary('Requirements::satisfiedRequirementChecks') +endif + + + + + + + <p>The <code>RequirementUsage</code> that is satisfied by the <code>satisfyingSubject</code> of this <code>SatisfyRequirementUsage</code>. It is the <code>assertedConstraint</code> of the <code>SatisfyRequirementUsage</code> considered as an <code>AssertConstraintUsage</code>, which must be a <code>RequirementUsage</code>.</p> + + + + + + + <p>The <code>Feature</code> that represents the actual subject that is asserted to satisfy the <code>satisfiedRequirement</code>. The <code>satisfyingFeature</code> is bound to the <code>subjectParameter</code> of the <code>SatisfyRequirementUsage</code>.</p> + + + + + + + + <p>A <code>RequirementUsage</code> is a <code>Usage</code> of a <code>RequirementDefinition</code>.</p> + + + + <p>The <code>actorParameters</code> of a <code>RequirementUsage</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>The <code>assumedConstraints</code> of a <code>RequirementUsage</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementDefinition</code> with <code>kind = assumption</code>.</p> + + + OCL2.0 + assumedConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::assumption). + ownedConstraint + + + + + <p>The <code>framedConcerns</code> of a <code>RequirementUsage</code> are the <code>ownedConcerns</code> of the <code>FramedConcernMemberships</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + framedConcern = featureMembership-> + selectByKind(FramedConcernMembership). + ownedConcern + + + + + <p>The <code>requiredConstraints</code> of a <code>RequirementUsage</code> are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind = requirement</code>.</p> + + + OCL2.0 + requiredConstraint = ownedFeatureMembership-> + selectByKind(RequirementConstraintMembership)-> + select(kind = RequirementConstraintKind::requirement). + ownedConstraint + + + + + <p>The <code>stakeHolderParameters</code> of a <code>RequirementUsage</code> are the <code>ownedStakeholderParameters</code> of the <code>StakeholderMemberships</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + stakeholderParameter = featureMembership-> + selectByKind(AStakholderMembership). + ownedStakeholderParameter + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementUsage</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjects : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjects->isEmpty() then null + else subjects->first().ownedSubjectParameter + endif + + + + + <p>The <code>texts</code> of a<code>RequirementUsage</code> are the <code>bodies</code> of the <code>documentation</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + text = documentation.body + + + + + <p>A <code>RequirementDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(SubjectMembership)-> + size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>RequirementUsage</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>RequirementUsage</code> must directly or indirectly specialize the base <code>RequirementUsage</code> <em><code>Requirements::requirementChecks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::requirementChecks') + + + + + <p>A composite <code>RequirementUsage</code> whose <code>owningType</code> is a <code>RequirementDefinition</code> or ,code>RequirementUsage</code> must directly or indirectly specialize the <code>RequirementUsage</code> <em><code>Requirements::RequirementCheck::subrequirements</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(RequirementDefinition) or + owningType.oclIsKindOf(RequirementUsage)) implies + specializesFromLibrary('Requirements::RequirementCheck::subrequirements') + + + + + <p>A <code>RequirementUsage</code> whose <code>owningFeatureMembership</code> is a <code>ObjectiveMembership</code> must redefine the <code>objectiveRequirement</code> of each <code>CaseDefinition</code> or <code>CaseUsage</code> that is specialized by the <code>owningType</code> of the <code>RequirementUsage</code>.</p> + + + OCL2.0 + owningfeatureMembership <> null and +owningfeatureMembership.oclIsKindOf(ObjectiveMembership) implies + owningType.ownedSpecialization.general->forAll(gen | + (gen.oclIsKindOf(CaseDefinition) implies + redefines(gen.oclAsType(CaseDefinition).objectiveRequirement)) and + (gen.oclIsKindOf(CaseUsage) implies + redefines(gen.oclAsType(CaseUsage).objectiveRequirement)) + + + + + <p>A <code>RequirementUsage</code> whose <code>owningFeatureMembership</code> is a <code>RequirementVerificationMembership</code> must directly or indirectly specialize the <code>RequirementUsage</code> <code><em>VerificationCases::VerificationCase::obj::requirementVerifications</em></code>.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(RequirementVerificationMembership) implies + specializesFromLibrary('VerificationCases::VerificationCase::obj::requirementVerifications') + + + + + + <p>The <code>RequirementDefinition</code> that is the single <code>definition</code> of this <code>RequirementUsage</code>.</p> + + + + + + + <p>An optional modeler-specified identifier for this <code>RequirementUsage</code> (used, e.g., to link it to an original requirement text in some source document), which is the <code>declaredShortName</code> for the <code>RequirementUsage</code>.</p> + + + + + + + + <p>An optional textual statement of the requirement represented by this <code>RequirementUsage</code>, derived from the <code>bodies<code> of the <code>documentation</code> of the <code>RequirementUsage</code>.</p> + + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent requirements of this <code>RequirementUsage</code>, which are the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind</code> = <code>requirement</code>.</p> + + + + + + + <p>The owned <code>ConstraintUsages</code> that represent assumptions of this <code>RequirementUsage</code>, derived as the <code>ownedConstraints</code> of the <code>RequirementConstraintMemberships</code> of the <code>RequirementUsage</code> with <code>kind</code> = <code>assumption</code>.</p> + + + + + + + <p>The <code>parameter</code> of this <code>RequirementUsage</code> that represents its subject.</p> + + + + + + + <p>The <code>ConcernUsages</code> framed by this <code>RequirementUsage</code>, which are the <code>ownedConcerns</code> of all <code>FramedConcernMemberships</code> of the <code>RequirementUsage</code>.</p> + + + + + + + <p>The <code>parameters</code> of this <code>RequirementUsage</code> that represent actors involved in the requirement.</p> + + + + + + + <p>The <code>parameters</code> of this <code>RequirementUsage</code> that represent stakeholders for the requirement.</p> + + + + + + + + + <p>The RequirementDefinition that has a certain ConstraintUsage as a <code>requiredConstraint</code> (if any).</p> + + + + + + + + + <p>The RequirementConstraintMembership that owns a certain ConstraintUsage as its <code>ownedConstraint</code>.</p> + + + + + + + + <p>A <code>RequirementConstraintMembership</code> is a <code>FeatureMembership</code> for an assumed or required <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage<code>.</p> + + + + <p>The <code>referencedConstraint</code> of a <code>RequirementConstraintMembership</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> of the <code>ownedConstraint</code>, if there is one, and, otherwise, the <code>ownedConstraint</code> itself.</p> + + + OCL2.0 + referencedConstraint = + let referencedFeature : Feature = + ownedConstraint.referencedFeatureTarget() in + if referencedFeature = null then ownedConstraint + else if referencedFeature.oclIsKindOf(ConstraintUsage) then + refrencedFeature.oclAsType(ConstraintUsage) + else null + endif endif + + + + + <p>The <code>owningType</code> of a <code>RequirementConstraintMembership</code> must be a <code>RequirementDefinition</code> or a <code>RequirementUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementDefinition) or +owningType.oclIsKindOf(RequirementUsage) + + + + + <p>The <code>ownedConstraint</code> of a <code>RequirementConstraintMembership</code> must be composite.</p> + + + OCL2.0 + ownedConstraint.isComposite + + + + + + <p>Whether the <code>RequirementConstraintMembership</code> is for an assumed or required <code>ConstraintUsage</code>.</p> + + + + + <p>The <code>ConstraintUsage</code> that is the <code>ownedMemberFeature</code> of this <code>RequirementConstraintMembership</code>.</p> + + + + + + + <p> The <code>ConstraintUsage</code> that is referenced through this <code>RequirementConstraintMembership</code>. It is the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> of the <code>ownedConstraint</code>, if there is one, and, otherwise, the <code>ownedConstraint</code> itself.</p> + + + + + + + + <p>A <code>RequirementConstraintKind</code> indicates whether a <code>ConstraintUsage</code> is an assumption or a requirement in a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> + + + + <p>Indicates that a member <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code> represents an assumption.</p> + + + + + <p>Indicates that a member <code>ConstraintUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>represents an requirement.</p> + + + + + + + <p>The RequirementDefinitions that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + + <p>The RequirementUsages that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + <p>A <code>SubjectMembership</code> is a <code>ParameterMembership</code> that indicates that its <code>ownedSubjectParameter</code> is the subject of its <code>owningType</code>. The <code>owningType</code> of a <code>SubjectMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> + + + + <p>The <code>owningType</code> of a <code>SubjectMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> + + + OCL2.0 + owningType.oclIsType(RequirementDefinition) or +owningType.oclIsType(RequiremenCaseRequirementDefinition) or +owningType.oclIsType(CaseDefinition) or +owningType.oclIsType(CaseUsage) + + + + + + + <p>The <code>Usage</code< that is the <code>ownedMemberParameter</code> of this <code>SubjectMembership</code>.</p> + + + + + + + + + <p>The SubjectMembership that owns a particular Parameter as its <code>ownedSubjectParameter</code>.</p> + + + + + + + + + <p>The RequirementDefinition that addresses a certain <code>addressedConcern</code>.</p> + + + + + + + + + <p>The ConcernUsages that are typed by a certain <code>concernDefinition</code>.</p> + + + + + + + + + <p>The AddressedConcernMembership that has a certain ConcernUsage as its <code>addressedConcern</code>.</p> + + + + + + + + <p>A <code>FramedConcernMembership</code> is a <code>RequirementConstraintMembership</code> for a framed <code>ConcernUsage</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> + + + + <p>A <code>FramedConcernMembership</code> must have <code>kind = requirement</code>.</p> + + + OCL2.0 + kind = RequirementConstraintKind::requirement + + + + + + <p>The <code>kind</code> of an <code>FramedConcernMembership</code> must be <code>requirement</code>.</p> + + + + + + <p>The <code>ConcernUsage</code> that is the <code>ownedConstraint</code> of this <code>FramedConcernMembership</code>.</p> + + + + + + + <p> The <code>ConcernUsage</code> that is referenced through this <code>FramedConcernMembership</code>. It is the <code>referencedConstraint</code> of the <code>FramedConcernMembership</code> considered as a <code>RequirementConstraintMembership</code>, which must be a <code>ConcernUsage</code>.</p> + + + + + + + + <p>A <code>ConcernDefinition</code> is a <code>RequirementDefinition</code> that one or more stakeholders may be interested in having addressed. These stakeholders are identified by the <code>ownedStakeholders</code>of the <code>ConcernDefinition</code>.</p> + + + + + <p>A <code>ConcernDefinition</code> must directly or indirectly specialize the base <code>ConcernDefinition</code> <em><code>Requirements::ConcernCheck</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::ConcernCheck') + + + + + + + + <p>The RequirementConstraintMembership that has a certain ConstraintUsage as its <code>referencedConstraint</code>.</p> + + + + + + + + + <p>The AddressedConcernMembership that owns a certain ConcernUsage as its <code>ownedConcern</code>.</p> + + + + + + + + <p>A <code>ConcernUsage</code> is a <code>Usage</code> of a <code>ConcernDefinition</code>.</p> + + The <code>ownedStakeholder</code> features of the ConcernUsage shall all subset the <em><code>ConcernCheck::concernedStakeholders</code> </em>feature. If the ConcernUsage is an <code>ownedFeature</code> of a StakeholderDefinition or StakeholderUsage, then the ConcernUsage shall have an <code>ownedStakeholder</code> feature that is bound to the <em><code>self</code></em> feature of its owner.</p> + + + + + <p>A <code>ConcernUsage</code> must directly or indirectly specialize the base <code>ConcernUsage</code> <em><code>Requirements::concernChecks</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Requirements::concernChecks') + + + + + <p>If a <code>ConcernUsage</code> is owned via a <code>FramedConcernMembership</code>, then it must directly or indirectly specialize the <code>ConcernUsage</code> <code><em>Requirements::RequirementCheck::concerns</em></code> from the Systems Model Library.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(FramedConcernMembership) implies + specializesFromLibrary('Requirements::RequirementCheck::concerns') + + + + + + <p>The ConcernDefinition that is the single type of this ConcernUsage.</p> + + + + + + + + + <p>The RequirementUsage that addresses a certain <code>addressedConcern</code>.</p> + + + + + + + + + + + + + + + <p>The RequirementUsages that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + <p>The RequirementDefinitions that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + <p>TheStakehplderMembership that has a certain PartUsage as its <code>ownedStakeholderParameter</code>.</p> + + + + + + + + <p>A <code>StakeholderMembership</code> is a <code>ParameterMembership</code> that identifies a <code>PartUsage</code> as a <code>stakeholderParameter</code> of a <code>RequirementDefinition</code> or <code>RequirementUsage</code>, which specifies a role played by an entity with concerns framed by the <code>owningType</code>.</p> + + + + <p>The <code>owningType</code> of a <code>StakeholderMembership</code> must be a <code>RequirementDefinition</code> or <code>RequirementUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementUsage) or +owningType.oclIsKindOf(RequirementDefinition) + + + + + + <p>The <code>PartUsage</code> specifying the stakeholder.</p> + + + + + + + + + + + + + + + <p>The ActorMembership that has a certain PartUsage as its <code>ownedActorParameter</code>.</p> + + + + + + + + <p>An <code>ActorMembership</code> is a <code>ParameterMembership</code> that identifies a <code>PartUsage</code> as an <em>actor</em> <code>parameter</code>, which specifies a role played by an external entity in interaction with the <code>owningType</code> of the <code>ActorMembership</code>.</p> + + + + <p>The <code>owningType</code> of an <code>ActorMembership</code> must be a <code>RequirementDefinition</code>, <code>RequirementUsage</code>, <code>CaseDefinition</code>, or <code>CaseUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementUsage) or +owningType.oclIsKindOf(RequirementDefinition) or +owningType.oclIsKindOf(CaseDefinition) or +owningType.oclIsKindOf(CaseUsage) + + + + + + + <p>The <code>PartUsage</code> specifying the actor.</p> + + + + + + + + + + <p>A <code>CalculationDefinition</code> is an <coed>ActionDefinition</code> that also defines a <code>Function</code> producing a <code>result</code>.</p> + + + + <p>A <code>CalculationDefinition</code> must directly or indirectly specialize the <code>CalculationDefinition</code> <em><code>Calculations::Calculation</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Calculations::Calculation') + + + + + <p>The <code>calculations</code> of a <code>CalculationDefinition</code> are those of its <code>actions</code> that are <code>CalculationUsages</code>.</p> + + + OCL2.0 + calculation = action->selectByKind(CalculationUsage) + + + + + + + <p>The <code>actions</code> of this <code>CalculationDefinition</code> that are <code>CalculationUsages</code>.</p> + + + + + + + + + <p>The CalculationUsage being typed by a certain Function.</p> + + + + + + + + <p>A <code>CalculationUsage</code> is an <code>ActionUsage</code> that is also an <code>Expression</code>, and, so, is typed by a <code>Function</code>. Nominally, if the <code>type</code> is a <code>CalculationDefinition</code>, a <code>CalculationUsage</code> is a <code>Usage</code> of that <code>CalculationDefinition</code> within a system. However, other kinds of kernel <code>Functions</code> are also allowed, to permit use of <code>Functions</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>CalculationUsage</code> must specialize directly or indirectly the <code>CalculationUsage</code> <em><code>Calculations::calculations</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Calculations::calculations') + + + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(CalculationDefinition) or + owningType.oclIsKindOf(CalculationUsage)) implies + specializesFromLibrary('Calculations::Calculation::subcalculations') + + + + + + + <p>The <ode>Function</code> that is the <code>type</code> of this <code>CalculationUsage</code>. Nominally, this would be a <code>CalculationDefinition</code>, but a kernel <code>Function</code> is also allowed, to permit use of <code>Functions</code> from the Kernel Model Libraries.</p> + + + + + + + <p>A <code>CalculationUsage</code> is not model-level evaluable.</p> + + + + OCL2.0 + false + + + + + + + + + + + + + + + <p>The CalculationDefinitions that feature a certain CalculationUsage.</p> + + + + + + + + + <p>The Definition that owns the <code>ownedCalculation</code>.</p> + + + + + + + + + <p>The Usage in which the <code>nestedCalculation<code> is nested.</p> + + + + + + + + + + + <p>The ConnectionDefinitions that have a certain Usage as an <code>connectionEnd</code>.</p> + + + + + + + + <p>A <code>ConnectionDefinition</code> is a <code>PartDefinition</code> that is also an <code>AssociationStructure</code>. The end <code>Features</code> of a <code>ConnectionDefinition</code> must be <code>Usages</code>.</p> + + + + <p>A <code>ConnectionDefinition</code> must directly or indirectly specialize the <code>ConnectionDefinition</code> <em><code>Connections::Connection</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Connections::Connection') + + + + + <p>A binary <code>ConnectionDefinition</code> must directly or indirectly specialize the <code>ConnectionDefinition</code> <em><code>Connections::BinaryConnection</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Connections::BinaryConnections') + + + + + <p>A <code>ConnectionDefinition</code> must have <code>isSufficient = true</code>.</p> + + + OCL2.0 + isSufficient + + + + + + + <p>The <code>Usages</code> that define the things related by the <code>ConnectionDefinition</code>.</p> + + + + + + + <p>A <code>ConnectionDefinition</code> always has <code>isSufficient = true</code>.</p> + + + + + + + + <p>A <code>ConnectionUsage</code> is a <code>ConnectorAsUsage</code> that is also a <code>PartUsage</code>. Nominally, if its type is a <code>ConnectionDefinition</code>, then a <code>ConnectionUsage</code> is a Usage of that <code>ConnectionDefinition</code>, representing a connection between parts of a system. However, other kinds of kernel <code>AssociationStructures</code> are also allowed, to permit use of <code>AssociationStructures</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>ConnectionUsage</code> must directly or indirectly specialize the <code>ConnectionUsage</code> <em><code>Connections::connections</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Connections::connections') + + + + + <p>A binary <code>ConnectionUsage</code> must directly or indirectly specialize the <code>ConnectionUsage</code> <em><code>Connections::binaryConnections</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeature->size() = 2 implies + specializesFromLibrary('Connections::binaryConnections') + + + + + + + <p>The <code>AssociationStructures</code> that are the types of this <code>ConnectionUsage</code>. Nominally, these are , but other kinds of Kernel <code>AssociationStructures</code> are also allowed, to permit use of <code>AssociationStructures</code> from the Kernel Model Libraries</p> + + + + + + + + + <p>The ConnectionUsages that have a certain AssociationStructure as their <code>connectionDefinition</code>.</p> + + + + + + + + <p>A <code>SuccessionAsUsage</code> is both a <code>ConnectorAsUsage</code> and a <code>Succession</code>.<p> + + + + + + + <p>A <code>ConnectorAsUsage</code> is both a <code>Connector</code> and a <code>Usage</code>. <code>ConnectorAsUsage</code> cannot itself be instantiated in a SysML model, but it is a base class for the concrete classes <code>BindingConnectorAsUsage</code>, <code>SuccessionAsUsage</code>, <code>ConnectionUsage</code> and <code>FlowConnectionUsage</code>.</p> + + + + + + + <p>A <code>BindingConnectorAsUsage</code> is both a <code>BindingConnector</code> and a <code>ConnectorAsUsage</code>.</p> + + + + + + + + + <p>A <code>CaseUsage</code> is a <code>Usage</code> of a <code>CaseDefinition</code>.</p> + + + + <p>The <code>objectiveRequirement</code> of a <code>CaseUsage</code> is the <code>RequirementUsage</code> it owns via an <case>ObjectiveMembership</code>, if any.</p> + + + OCL2.0 + objectiveRequirement = + let objectives: OrderedSet(RequirementUsage) = + featureMembership-> + selectByKind(ObjectiveMembership). + ownedRequirement in + if objectives->isEmpty() then null + else objectives->first().ownedObjectiveRequirement + endif + + + + + <p>A <code>CaseUsage</code> must have at most one <code>featureMembership</code> that is a <code>ObjectiveMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ObjectiveMembership)-> + size() <= 1 + + + + + <p>A <code>CaseUsage</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(SubjectMembership)-> + size() <= 1 + + + + + <p>The <code>actorParameters</code> of a <code>CaseUsage</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>CaseUsage</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>The <code>subjectParameter</code> of a <code>CaseUsage</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjects : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjects->isEmpty() then null + else subjects->first().ownedSubjectParameter + endif + + + + + <p>The <code>subjectParameter</code> of a <code>CaseUsage</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>CaseUsage</code> must directly or indirectly specialize the base <code>CaseUsage</code> <em><code>Cases::cases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Cases::cases') + + + + + <p>A composite <code>CaseUsage</code> whose <code>owningType</code> is a <code>CaseDefinition</code> or <code>CaseUsage</code> must directly or indirectly specialize the <code>CaseUsage</code> <em><code>Cases::Case::subcases</code></em>.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(CaseDefinition) or + owningType.oclIsKindOf(CaseUsage)) implies + specializesFromLibrary('Cases::Case::subcases') + + + + + + <p>The <code>RequirementUsage</code> representing the objective of this <code>CaseUsage</code>.</p> + + + + + + + + <p>The CaseDefinition that is the type of this CaseUsage.</p> + + + + + + + <p>The <code>parameter</code> of this <code>CaseUsage</code> that represents its subject.</p> + + + + + + + + <p>The <code>parameters</code> of this <code>CaseUsage</code> that represent actors involved in the case.</p> + + + + + + + + + <p>The Usage in which the <code>nestedCase</code> is nested.</p> + + + + + + + + + <p>The CaseUsages being typed by a certain CaseDefinition.</p> + + + + + + + + <p>A <code>CaseDefinition</code> is a <code>CalculationDefinition</code> for a process, often involving collecting evidence or data, relative to a subject, possibly involving the collaboration of one or more other actors, producing a result that meets an objective.</p> + + + + <p>The <code>objectiveRequirement</code> of a <code>CaseDefinition</code> is the <code>ownedObjectiveRequirement</code> of its <case>ObjectiveMembership</code>, if any.</p> + + + OCL2.0 + objectiveRequirement = + let objectives: OrderedSet(RequirementUsage) = + featureMembership-> + selectByKind(ObjectiveMembership). + ownedRequirement in + if objectives->isEmpty() then null + else objectives->first().ownedObjectiveRequirement + endif + + + + + <p>A <code>CaseDefinition</code> must have at most one <code>featureMembership</code> that is a <code>ObjectiveMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ObjectiveMembership)-> + size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>CaseDefinition</code> is the <code>ownedSubjectParameter</code> of its <code>SubjectMembership</code> (if any).</p> + + + OCL2.0 + subjectParameter = + let subjectMems : OrderedSet(SubjectMembership) = + featureMembership->selectByKind(SubjectMembership) in + if subjectMems->isEmpty() then null + else subjectMems->first().ownedSubjectParameter + endif + + + + + <p>The <code>actorParameters</code> of a <code>CaseDefinition</code> are the <code>ownedActorParameters</code> of the <code>ActorMemberships</code> of the <code>CaseDefinition</code>.</p> + + + OCL2.0 + actorParameter = featureMembership-> + selectByKind(ActorMembership). + ownedActorParameter + + + + + <p>A <code>CaseDefinition</code> must have at most one <code>featureMembership</code> that is a <code>SubjectMembership</code>.</p> + + + English + featureMembership->selectByKind(SubjectMembership)->size() <= 1 + + + + + <p>The <code>subjectParameter</code> of a <code>CaaseDefinition</code> must be its first <code>input</code>.</p> + + + OCL2.0 + input->notEmpty() and input->first() = subjectParameter + + + + + <p>A <code>CaseDefinition</code> must directly or indirectly specialize the base <code>CaseDefinition</code> <em><code>Cases::Case></code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Cases::Case') + + + + + + <p>The <code>RequirementUsage</code> representing the objective of this <code>CaseDefinition</code>.</p> + + + + + + + + <p>The <code>parameter</code> of this <code>CaseDefinition</code> that represents its subject.</p> + + + + + + + <p>The <code>parameters</code> of this <code>CaseDefinition</code> that represent actors involved in the case.</p> + + + + + + + + <p>An <code>ObjectiveMembership</code> is a <code>FeatureMembership</code> that indicates that its <code>ownedObjectiveRequirement</code> is the objective <code>RequirementUsage</code> for its <code>owningType</code>, which must be a <code>CaseDefinition</code> or <code>CaseUsage</code>.</p> + + + + <p>The <code>owningType</code> of an <code>ObjectiveMembership</code> must be a <code>CaseDefinition</code> or <code>CaseUsage</code>.</p> + + + OCL2.0 + owningType.oclIsType(CaseDefinition) or +owningType.oclIsType(CaseUsage) + + + + + + <p>The <code>ownedObjectiveRequirement</code> of an <code>ObjectiveMembership</code> must be composite.</p> + + + OCL2.0 + ownedObjectiveRequirement.isComposite + + + + + + <p>The RequirementUsage that is the <code>ownedMemberFeature</code> of this RequirementUsage.</p> + + + + + + + + + + + + + + + + <p>The CaseDefinitions that have a certain RequirementUsage as their <code>objectiveRequirement</code>.</p> + + + + + + + + + <p>The ObjectMembership that owns a particular RequirementUsage as its <code>ownedObjectiveRequirement</code>.</p> + + + + + + + + + <p>The CaseDefinitions that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + + <p>The CaseUsages that have a certain Usage as their <code>subjectParameter</code>.</p> + + + + + + + + + <p>The CaseDefinitions that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + <p>The CaseUsages that have a certain PartUsage as an <code>actorParameter</code>.</p> + + + + + + + + + + + <p>The AnalysisCaseDefinitions that have a certain Expression as their <code>resultExpression</code>.</p> + + + + + + + + + <p>The AnalysisCaseUsages being typed by a certain AnalysisCaseDefinition.</p> + + + + + + + + <p>An <code>AnalysisCaseUsage</code> is a <code>Usage</code> of an <code>AnalysisCaseDefinition</code>.</p> + + + + <p>The <code>resultExpression</code> of a <code>AnalysisCaseUsage</code> is the <code>ownedResultExpression</code> of its <code>ResultExpressionMembership</code>, if any.</p> + + + OCL2.0 + resultExpression = + let results : OrderedSet(ResultExpressionMembership) = + featureMembersip-> + selectByKind(ResultExpressionMembership) in + if results->isEmpty() then null + else results->first().ownedResultExpression + endif + + + + + <p>An <code>AnalysisCaseUsage</code> must directly or indirectly specialize the base <code>AnalysisCaseUsage</code> <code><em>AnalysisCases::analysisCases</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('AnalysisCases::analysisCases') + + + + + <p>A composite <code>AnalysisCaseUsage</code> whose <code>owningType</code> is an <code>AnalysisCaseDefinition</code> or <code>AnalysisCaseUsage</code> must specialize the <code>AnalysisCaseUsage</code> <code><em>AnalysisCases::AnalysisCase::subAnalysisCases</code> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(AnalysisCaseDefinition) or + owningType.oclIsKindOf(AnalysisCaseUsage)) implies + specializesFromLibrary('AnalysisCases::AnalysisCase::subAnalysisCases') + + + + + + <p>The <code>AnalysisCaseDefinition</code> that is the <code>definition</code> of this <code>AnalysisCaseUsage</code>.</p> + + + + + + + <p>An <code>Expression</code> used to compute the <code>result</code> of the <code>AnalysisCaseUsage</code>, owned via a <code>ResultExpressionMembership</code>.</p> + + + + + + + + + <p>The AnalysisCaseUsages that have a certain Expression as their <code>resultExpression</code>.</p> + + + + + + + + <p>An <code>AnalysisCaseDefinition</code> is a <code>CaseDefinition</code> for the case of carrying out an analysis.</p> + + + + <p>The <code>resultExpression</code> of a <code>AnalysisCaseDefinition</code> is the <code>ownedResultExpression</code> of its <code>ResultExpressionMembership</code>, if any.</p> + + + OCL2.0 + resultExpression = + let results : OrderedSet(ResultExpressionMembership) = + featureMembersip-> + selectByKind(ResultExpressionMembership) in + if results->isEmpty() then null + else results->first().ownedResultExpression + endif + + + + + <p>An <code>AnalysisCaseDefinition</code> must directly or indirectly specialize the base <code>AnalysisCaseDefinition</code> <code><em>AnalysisCases::AnalysisCase</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('AnalysisCases::AnalysisCase') + + + + + + <p>An <code>Expression</code> used to compute the <code>result</code> of the <code>AnalysisCaseDefinition</code>, owned via a <code>ResultExpressionMembership</code>.</p> + + + + + + + + + + + <p>An <code>ItemUsage</code> is a <code>ItemUsage</code> whose <code>definition</code> is a <code>Structure</code>. Nominally, if the <code>definition</code> is an <code>ItemDefinition</code>, an <code>ItemUsage</code> is a <code>ItemUsage</code> of that <code>ItemDefinition</code> within a system. However, other kinds of Kernel <code>Structures</code> are also allowed, to permit use of <code>Structures</code> from the Kernel Model Libraries.</p> + + + + <p>The <code>itemDefinitions</code> of an <code>ItemUsage</code> are those <code>occurrenceDefinitions</code> that are <code>Structures</code>.</p> + + + OCL2.0 + itemDefinition = occurrenceDefinition->selectByKind(Structure) + + + + + <p>An <code>ItemUsage</code> must directly or indirectly specialize the Systems Model Library <code>ItemUsage</code> <em><code>items</code></em>.</p> + + + OCL2.0 + specializesFromLibrary('Items::items') + + + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ItemDefinition) or + owningType.oclIsKindOf(ItemUsage)) implies + specializesFromLibrary('Items::Item::subitem') + + + + + + <p>The Structures that are the <code>definitions</code> of this ItemUsage. Nominally, these are ItemDefinitions, but other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Library.</p> + + + + + + + + <p>An <code>ItemDefinition</code> is an <code>OccurrenceDefinition</code> of the <code>Structure</code> of things that may themselves be systems or parts of systems, but may also be things that are acted on by a system or parts of a system, but which do not necessarily perform actions themselves. This includes items that can be exchanged between parts of a system, such as water or electrical signals.</p> + + + + + <p>An <code>ItemDefinition</code> must directly or indirectly specialize the Systems Library Model <code>ItemDefinition</code> <em><code>Items::Item</code>.</p> + + + OCL2.0 + specializesFromLibrary('Items::Item') + + + + + + + + + + <p>A <code>ViewpointDefinition</code> is a <code>RequirementDefinition</code> that specifies one or more stakeholder concerns that are to be satisfied by creating a view of a model.</p> + + + + <p>The <code>viewpointStakeholders</code> of a <code>ViewpointDefinition</code> are the <code>ownedStakeholderParameters</code> of all <code>featureMemberships</code> that are <code>StakeholderMemberships</code>.</p> + + + OCL2.0 + viewpointStakeholder = framedConcern.featureMemberhsip-> + selectByKind(StakeholderMembership). + ownedStakeholderParameter + + + + + <p>A <code>ViewpointDefinition</code> must directly or indirectly specialize the base <code>ViewpointDefinition</code> <code><em>Views::Viewpoint</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::Viewpoint') + + + + + + <p>The <code>PartUsages</code> that identify the stakeholders with concerns framed by this <code>ViewpointDefinition</code>, which are the owned and inherited <code>stakeholderParameters</code> of the <code>framedConcerns</code> of this <code>ViewpointDefinition</code>.</p> + + + + + + + + + <p>A ViewUsage exposing a certain <code>exposedElement</code>.</p> + + + + + + + + + <p>The RenderingUsages defined by a certain <code>renderingDefinition</code>.</p> + + + + + + + + <p>A <code>ViewUsage</code> is a usage of a <code>ViewDefinition</code> to specify the generation of a view of the <code>members</code> of a collection of <code>exposedNamespaces</code>. The <code>ViewUsage</code> can satisfy more <code>viewpoints</code> than its definition, and it can specialize the <code>viewRendering</code> specified by its definition.<p> + + + + <p>The <code>exposedElements</code> of a <code>ViewUsage</code> are those <code>memberElements</code> of the imported <code>Memberships</code> from all the <code>Expose</code> <code>Relationships</code> for which the <code>includeAsExposed</code> operation returns true.</p> + + + OCL2.0 + exposedElement = ownedImport->selectByKind(Expose). + importedMemberships(Set{}).memberElement-> + select(elm | includeAsExposed(elm))-> + asOrderedSet() + + + + + <p>The <code>satisfiedViewpoints</code> of a <code>ViewUsage</code> are its <code>ownedRequirements</code> that are composite <code>ViewpointUsages</code>. + + + OCL2.0 + satisfiedViewpoint = ownedRequirement-> + selectByKind(ViewpointUsage)-> + select(isComposite) + + + + + <p>The <code>viewConditions</code> of a <code>ViewUsage</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> + + + OCL2.0 + viewCondition = ownedMembership-> + selectByKind(ElementFilterMembership). + condition + + + + + <p>The <code>viewRendering</code> of a <code>ViewUsage</code> is the <code>referencedRendering</code> of its owned <code>ViewRenderingMembership<code>, if any.</p> + + + OCL2.0 + viewRendering = + let renderings: OrderedSet(ViewRenderingMembership) = + featureMembership->selectByKind(ViewRenderingMembership) in + if renderings->isEmpty() then null + else renderings->first().referencedRendering + endif + + + + + <p>A <code>ViewUsage</code> must have at most one <code>ViewRenderingMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ViewRenderingMembership)-> + size() <= 1 + + + + + <p>A <code>ViewUsage</code> must directly or indirectly specialize the base <code>ViewUsage</code> <code><em>Views::views</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::views') + + + + + <p>A <code>ViewUsage</code> whose <code>owningType</code> is a <code>ViewDefinition</code> or <code>ViewUsage</code> must specialize the <code>ViewUsage</code> <code><em>Views::View::subviews</em></code> from the Systems Library Model.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(ViewDefinition) or + owningType.oclIsKindOf(ViewUsage)) implies + specializesFromLibrary('Views::View::subviews') + + + + + + <p>The <code>ViewDefinition</code> that is the <code>definition</code> of this <code>ViewUsage</code>.</p> + + + + + + + <p>The <code>nestedRequirements</code> of this <code>ViewUsage</code> that are <code>ViewpointUsages</code> for (additional) viewpoints satisfied by the <code>ViewUsage</code>.</p> + + + + + + + <p>The <code>Elements</code> that are exposed by this <code>ViewUsage</code>, which are those <code>memberElements</code> of the imported <code>Memberships</code> from all the <code>Expose</code> <code>Relationships</code> that meet all the owned and inherited <code>viewConditions</code>.</p> + + + + + + + <p>The <code>RenderingUsage</code> to be used to render views defined by this <code>ViewUsage</code>, which is the <code>referencedRendering</code> of the <code>ViewRenderingMembership</code> of the <code>ViewUsage</code>.<p> + + + + + + + <p>The <code>Expressions</code> related to this <code>ViewUsage</code> by <code>ElementFilterMemberships</code>, which specify conditions on <code>Elements</code> to be rendered in a view.</p> + + + + + + + <p>Determine whether the given <code>element</code> meets all the owned and inherited <code>viewConditions</code>.</p> + + + + OCL2.0 + let metadataFeatures: Sequence(AnnotatingElement) = + element.ownedAnnotation.annotatingElement-> + select(oclIsKindOf(MetadataFeature)) in +self.membership->selectByKind(ElementFilterMembership). + condition->forAll(cond | + metadataFeatures->exists(elem | + cond.checkCondition(elem))) + + + + + + + + + + + + <p>The ViewUsage that owns a certain <code>rendering</code>.</p> + + + + + + + + + <p>The ViewDefinition that owns a certain <code>rendering</code>.</p> + + + + + + + + + p>The ViewUsage that owns a certain <code>satisfiedViewpoint</code>.</p> + + + + + + + + + <p>The ViewDefinition that owns a certain <code>satisfiedViewpoint</code>.</p> + + + + + + + + + <p>The ViewDefinitions that feature a certain ViewUsage.</p> + + + + + + + + <p>A <code>RenderingDefinition</code> is a <code>PartDefinition</code> that defines a specific rendering of the content of a model view (e.g., symbols, style, layout, etc.).</p> + + + + <p>The <code>renderings</code> of a <code>RenderingDefinition</code> are all its <code>usages</code> that are <code>RenderingUsages</code>.</p> + + + OCL2.0 + rendering = usages->selectByKind(RenderingUsage) + + + + + <p>A <code>RenderingDefinition</code> must directly or indirectly specialize the base <code>RenderingDefinition</code> <code><em>Views::Rendering</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::Rendering') + + + + + + <p>The <code>usages</code> of a <code>RenderingDefinition</code> that are <code>RenderingUsages</code>.</p> + + + + + + + + <p>A <code>ViewpointUsage</code> is a <code>Usage</code> of a <code>ViewpointDefinition</code>.</p> + + + + + + <p>The <code>viewpointStakeholders</code> of a <code>ViewpointUsage</code> are the <code>ownedStakeholderParameters</code> of all <code>featureMemberships</code> that are <code>StakeholderMemberships</code>.</p> + + + OCL2.0 + viewpointStakeholder = framedConcern.featureMemberhsip-> + selectByKind(StakeholderMembership). + ownedStakeholderParameter + + + + + <p>A <code>ViewpointUsage</code> must directly or indirectly specialize the base <code>ViewpointUsage</code> <code><em>Views::viewpoints</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::viewpoints') + + + + + <p>A composite <code>ViewpointUsage</code> whose <code>owningType</code> is a <code>ViewDefinition</code> or <code>ViewUsage</code> must directly or indirectly specialize the <code>ViewpointUsage</code> <code><em>Views::View::viewpointSatisfactions</em></code> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(ViewDefinition) or + owningType.oclIsKindOf(ViewUsage)) implies + specializesFromLibrary('Views::View::viewpointSatisfactions') + + + + + + <p>The <code>ViewpointDefinition</code> that is the <code>definition</code> of this <code>ViewpointUsage<code>.</p> + + + + + + + <p>The <code>PartUsages</code> that identify the stakeholders with concerns framed by this <code>ViewpointUsage</code>, which are the owned and inherited <code>stakeholderParameters</code> of the <code>framedConcerns</code> of this <code>ViewpointUsage</code>.</p> + + + + + + + + + <p>The ViewUsages that have a certain <code>ViewDefinition</code>.</p> + + + + + + + + + + + + + + <p>A <code>ViewDefinition</code> is a <code>PartDefinition</code> that specifies how a view artifact is constructed to satisfy a <code>viewpoint</code>. It specifies a <code>viewConditions</code> to define the model content to be presented and a <code>viewRendering</code> to define how the model content is presented.</p> + + + + <p>The <code>views</code> of a <code>ViewDefinition</code> are all its <code>usages</code> that are <code>ViewUsages</code>.</p> + + + OCL2.0 + view = usage->selectByKind(ViewUsage) + + + + + <p>The <code>satisfiedViewpoints</code> of a <code>ViewDefinition</code> are its <code>ownedRequirements</code> that are composite <code>ViewpointUsages</code>. + + + OCL2.0 + satisfiedViewpoint = ownedRequirement-> + selectByKind(ViewpointUsage)-> + select(isComposite) + + + + + <p>The <code>viewRendering</code> of a <code>ViewDefinition</code> is the <code>referencedRendering</code> of its owned <code>ViewRenderingMembership<code>, if any.</p> + + + OCL2.0 + viewRendering = + let renderings: OrderedSet(ViewRenderingMembership) = + featureMembership->selectByKind(ViewRenderingMembership) in + if renderings->isEmpty() then null + else renderings->first().referencedRendering + endif + + + + + <p>The <code>viewConditions</code> of a <code>ViewDefinition</code> are the <code>conditions</code> of its owned <code>ElementFilterMemberships</code>.</p> + + + OCL2.0 + viewCondition = ownedMembership-> + selectByKind(ElementFilterMembership). + condition + + + + + <p>A <code>ViewDefinition</code> must have at most one <code>ViewRenderingMembership</code>.</p> + + + OCL2.0 + featureMembership-> + selectByKind(ViewRenderingMembership)-> + size() <= 1 + + + + + </p>A <code>ViewDefinition</code> must directly or indirectly specialize the base <code>ViewDefinition</code> <code><em>Views::View</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::View') + + + + + + <p>The <code>usages</code> of this <code>ViewDefinition</code> that are <code>ViewUsages</code>.</p> + + + + + + + <p>The composite <code>ownedRequirements</code> of this <code>ViewDefinition</code> that are <code>ViewpointUsages</code> for viewpoints satisfied by the <code>ViewDefinition</code>.</p> + + + + + + + <p>The <code>RenderingUsage</code> to be used to render views defined by this <code>ViewDefinition</code>, which is the <code>referencedRendering</code> of the <code>ViewRenderingMembership</code> of the <code>ViewDefinition</code>.<p> + + + + + + + <p>The <code>Expressions</code> related to this <code>ViewDefinition</code> by <code>ElementFilterMemberships</code>, which specify conditions on <code>Elements</code> to be rendered in a view.</p> + + + + + + + + <p>An <code>Expose</code> is an <code>Import</code> of <code>Memberships</code> into a <code>ViewUsage</code> that provide the <code>Elements</code> to be included in a view. Visibility is always ignored for an <code>Expose</code> (i.e., <code>isImportAll = true</code>).</p> + + + + <p>An <code>Expose</code> always imports all <code>Elements</code>, regardless of visibility.</p> + + + OCL2.0 + isImportAll + + + + + <p>The <code>importOwningNamespace</code> of an <code>Expose</code> must be a <code>ViewUsage</code>.</p> + + + OCL2.0 + importOwningNamespace.oclIsType(ViewUsage) + + + + + <p>An <code>Expose</code> always has <code>protected</code> visibility.</p> + + + OCL2.0 + visibility = VisibilityKind::protected + + + + + + <p>An <code>Expose</code> always has <code>protected</code> visibility.</p> + + + + + + <p>An <code>Expose</code> always imports all <code>Elements</code>, regardless of visibility (<code>isImportAll = true</code>).</p> + + + + + + + + + <p>The RenderingDefinitions that feature a certain <code>rendering</code>.</p> + + + + + + + + <p>A <code>RenderingUsage</code> is the usage of a <code>RenderingDefinition</code> to specify the rendering of a specific model view to produce a physical view artifact.</p> + + + + + + <p>A <code>RenderingUsage</code> must directly or indirectly specialize the base <code>RenderingUsage</code> <code><em>Views::renderings</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Views::renderings') + + + + + <p>A <code>RenderingUsage</code> whose <code>owningType</code> is a <code>RenderingDefinition</code> or <code>RenderingUsage</code> must directly or indirectly specialize the <code>RenderingUsage</code> <code><em>Views::Rendering::subrenderings</em></code> from the Systems Model Library.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(RenderingDefinition) or + owningType.oclIsKindOf(RenderingUsage)) implies + specializesFromLibrary('Views::Rendering::subrenderings') + + + + + <p>A <code>RenderingUsage</code> whose <code>owningFeatureMembership</code> is a <code>ViewRenderingMembership</code> must redefine the <code>RenderingUsage</code> <code><em>Views::View::viewRendering</em></code>.</p> + + + OCL2.0 + owningFeatureMembership <> null and +owningFeatureMembership.oclIsKindOf(ViewRenderingMembership) implies + redefinesFromLibrary('Views::View::viewRendering') + + + + + + <p>The <code>RenderingDefinition</code> that is the <code>definition</code> of this <code>RenderingUsage</code>.</p> + + + + + + + + + <p>The ViewUsage that owns a certain <code>viewCondition</code>.</p> + + + + + + + + + <p>The ViewDefinition that owns a certain <code>viewCondition</code>.</p> + + + + + + + + + <p>The ViewpointDefinition that has a certain <code>viewpointStakeholder</code>.</p> + + + + + + + + + + + + + + <p>A <code>ViewRenderingMembership</code> is a <coed>FeatureMembership</code> that identifies the <code>viewRendering</code> of a <code>ViewDefinition</code> or <code>ViewUsage</code>.</p> + + + + <p>The <code>referencedRendering</code> of a <code>ViewRenderingMembership</code> is the the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> (which must be a <code>RenderingUsage</code>) of the <code>ownedRendering</code>, if there is one, and, otherwise, the <code>ownedRendering</code> itself.</p> + + + OCL2.0 + referencedRendering = + let referencedFeature : Feature = + ownedRendering.referencedFeatureTarget() in + if referencedFeature = null then ownedRendering + else if referencedFeature.oclIsKindOf(RenderingUsage) then + refrencedFeature.oclAsType(RenderingUsage) + else null + endif endif + + + + + <p>The <code>owningType</code> of a <code>ViewRenderingMembership</code> must be a <code>ViewDefinition</code> or a <code>ViewUsage</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(ViewDefinition) or +owningType.oclIsKindOf(ViewUsage) + + + + + + <p>The owned <code>RenderingUsage</code> that is either itself the <code>referencedRendering</code> or subsets the <code>referencedRendering</code>. + + + + + + + <p> The <code>RenderingUsage</code> that is referenced through this <code>ViewRenderingMembership</code>. It is the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>ownedRendering</code>, if there is one, and, otherwise, the <code>ownedRendering</code> itself.</p> + + + + + + + + + <p>The ViewpointUsage that has a certain <code>viewpointStakeholder</code>.</p> + + + + + + + + + + + + + + <p>A <code>NamespaceExpose</code> is an <code>Expose</code> <code>Relationship</code> that exposes the <code>Memberships</code> of a specific <code>importedNamespace</code> and, if <code>isRecursive = true</code>, additional <code>Memberships</code> recursively.</p> + + + + + + + <p>A <code>MembershipExpose</code> is an <code>Expose</code> <code.Relationship</code> that exposes a specific <code>importedMembership</code> and, if <code>isRecursive = true</code>, additional <code>Memberships</code> recursively.</p> + + + + + + + + + <p>A <code>VerificationCaseDefinition</code> is a <code>CaseDefinition</code> for the purpose of verification of the subject of the case against its requirements.</p> + + + + <p>The <code>verifiedRequirements</code> of a <code>VerificationCaseDefinition</code> are the <code>verifiedRequirements</code> of its <code>RequirementVerificationMemberships</code>.</p> + + + OCL2.0 + verifiedRequirement = + if objectiveRequirement = null then OrderedSet{} + else + objectiveRequirement.featureMembership-> + selectByKind(RequirementVerificationMembership). + verifiedRequirement->asOrderedSet() + endif + + + + + <p>A <code>VerificationCaseDefinition</code> must directly or indirectly specialize the base <code>VerificationCaseDefinition</code> <em><code>VerificationCases::VerificationCase</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('VerificationCases::VerificationCase') + + + + + + <p>The <code>RequirementUsages</code> verified by this <code>VerificationCaseDefinition</code>, which are the <code>verifiedRequirements</code> of all <code>RequirementVerificationMemberships</code> of the <code>objectiveRequirement</code>.</p> + + + + + + + + + <p>The VerificationUsages that are defined by a certain <code>verificationCaseDefinition</code>.</p> + + + + + + + + <p>A <code>VerificationCaseUsage</code> is a </code>Usage</code> of a <code>VerificationCaseDefinition</code>.</p> + + + + <p>The <code>verifiedRequirements</code> of a <code>VerificationCaseUsage</code> are the <code>verifiedRequirements</code> of its <code>RequirementVerificationMemberships</code>.</p> + + + OCL2.0 + verifiedRequirement = + if objectiveRequirement = null then OrderedSet{} + else + objectiveRequirement.featureMembership-> + selectByKind(RequirementVerificationMembership). + verifiedRequirement->asOrderedSet() + endif + + + + + <p>A <code>VerificationCaseUsage</code> must subset, directly or indirectly, the base <code>VerificationCaseUsage</code> <code><em>VerificationCases::verificationCases</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('VerificationCases::verificationCases') + + + + + If it is composite and owned by a <code>VerificationCaseDefinition</code> or <code>VerificationCaseUsage</code>, then it must specialize <code>VerificationCaseUsage</code> <code><em>VerificationCases::VerificationCase::subVerificationCases</code>.</p> + + + OCL2.0 + isComposite and owningType <> null and + (owningType.oclIsKindOf(VerificationCaseDefinition) or + owningType.oclIsKindOf(VerificationCaseUsage)) implies + specializesFromLibrary('VerificationCases::VerificationCase::subVerificationCases') + + + + + + <p>The <code>VerificationCase</code> that is the <code>definition</code> of this <code>VerificationCaseUsage</code>.</p> + + + + + + + <p>The <code>RequirementUsages</code> verified by this <code>VerificationCaseUsage</code>, which are the <code>verifiedRequirements</code> of all <code>RequirementVerificationMemberships</code> of the <code>objectiveRequirement</code>.</p> + + + + + + + + + <p>The RequirementVerificationMembership that owns a certain RequirementUsage as its <code>ownedRequirement</code>.</p> + + + + + + + + <p>A <code>RequirementVerificationMembership</code> is a <code>RequirementConstraintMembership </code> used in the objective of a <code>VerificationCase</code> to identify a <code>RequirementUsage</code> that is verified by the <code>VerificationCase</code>.</p> + + + + <p>A <code>RequirementVerificationMembership</code> must have <code>kind = requirement</code>.</p> + + + OCL2.0 + kind = RequirementConstraintKind::requirement + + + + + <p>The <code>owningType</code> of a <code>RequirementVerificationMembership</code> must a <code>RequirementUsage</code> that is owned by an <code>ObjectiveMembership</code>.</p> + + + OCL2.0 + owningType.oclIsKindOf(RequirementUsage) and +owningType.owningFeatureMembership <> null and +owningType.owningFeatureMembership.oclIsKindOf(ObjectiveMembership) + + + + + + <p>The owned <code>RequirementUsage</code> that acts as the <code>ownedConstraint</code> for this <code>RequirementVerificationMembership</code>. This will either be the <code>verifiedRequirement</code>, or it will subset the <code>verifiedRequirement</code>.</p> + + + + + + + <p>The <code>kind</code> of a <code>RequirementVerificationMembership</code> must be <code>requirement</code>.</p> + + + + + + <p> The <code>RequirementUsage</code> that is identified as being verified. It is the <code>referencedConstraint</code> of the <code>RequirementVerificationMembership</code> considered as a <code>RequirementConstraintMembership</code>, which must be a <code>RequirementUsage</code>.</p> + + + + + + + + + <p>The VerificationCaseUsages that verify a certain <code>verifiedRequirement</code>.</p> + + + + + + + + + <p>The VerificationCaseDefinitions that verify a certain <code>verifiedRequirement</code>.</p> + + + + + + + + + <p>The RequirementVerificationMembership that has a certain RequirementUsage as its <code>verifiedRequirement</code>.</p> + + + + + + + + + + <p>An <code>EnumerationDefinition</code> is an <code>AttributeDefinition</code> all of whose instances are given by an explicit list of <code>enumeratedValues</code>. This is realized by requiring that the <code>EnumerationDefinition</code> have <code>isVariation = true</code>, with the <code>enumeratedValues</code> being its <code>variants</code>.</p> + + + + <p>An <code>EnumerationDefinition</code> must be a variation.</p> + + + OCL2.0 + isVariation + + + + + + <p><code>EnumerationUsages</code> of this <code>EnumerationDefinition</code>that have distinct, fixed values. Each <code>enumeratedValue</code> specifies one of the allowed instances of the <code>EnumerationDefinition</code>.</p> + + + + + + + <p>An EnumerationDefinition is considered semantically to be a variation whose allowed variants are its <code>enumerationValues</code>.</p> + + + + + + + + <p>An <code>EnumerationUsage</code> is an <code>AttributeUsage</code> whose <code>attributeDefinition</code> is an <code>EnumerationDefinition</code>.</p> + + + + + <p>The single EnumerationDefinition that is the type of this EnumerationUsage.</p> + + + + + + + + + <p>The EnumerationDefinition that owns a certain <code>enumeratedValue</code>.</p> + + + + + + + + + <p>The EnumerationUsages that are typed by a certain EnumerationDefinition.</p> + + + + + + + + + + + <p>The AllocationUsages that have a certain AllocationDefinition as their <code>allocationDefinition</code>.</p> + + + + + + + + <p>An <code>AllocationDefinition</code> is a <code>ConnectionDefinition</code> that specifies that some or all of the responsibility to realize the intent of the <code>source</code> is allocated to the <code>target</code> instances. Such allocations define mappings across the various structures and hierarchies of a system model, perhaps as a precursor to more rigorous specifications and implementations. An <code>AllocationDefinition</code> can itself be refined using nested <code>allocations</code> that give a finer-grained decomposition of the containing allocation mapping.</p> + + + + <p> The <code>allocations</code> of an <code>AllocationDefinition</code> are all its <code>usages</code> that are <code>AllocationUsages</code>.</p> + + + OCL2.0 + allocation = usage->selectAsKind(AllocationUsage) + + + + + <p>An <code>AllocationDefinition</code> must directly or indirectly specialize the <code>AllocationDefinition</code> <em><code>Allocations::Allocation</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Allocations::Allocation') + + + + + + <p>The <code>AllocationUsages</code> that refine the allocation mapping defined by this <code>AllocationDefinition</code>.</p> + + + + + + + + <p>An <code>AllocationUsage</code> is a usage of an <code>AllocationDefinition</code> asserting the allocation of the <code>source</code> feature to the <code>target</code> feature.</p> + + + + <p>An <code>AllocationUsage</code> must directly or indirectly specialize the <code>AllocationUsage</code> <em><code>Allocations::allocations</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Allocations::allocations') + + + + + + <p>The <code>AllocationDefinitions</code> that are the types of this <code>AllocationUsage</code>.</p> + + + + + + + + + <p>The AllocationDefinitions that feature a certain <code>allocation</code>.</p> + + + + + + + + + + + <p>The <code>OccurrenceUsage</code> that has a certain <code>individualDefinition</code>.</p> + + + + + + + + <p><code>PortionKind</code> is an enumeration of the specific kinds of <code><em>Occurrence</em></code> portions that can be represented by an <code>OccurrenceUsage</code>.</p> + + + + <p>A time slice of an <code>Occurrence</code> (a portion over time).</p> + + + + + <p>A snapshot of an <code>Occurrence</code> (a time slice with zero duration).</p> + + + + + + <p>An <code>OccurrenceUsage</code> is a <code>Usage</code> whose <code>types</code> are all <code>Classes</code>. Nominally, if a <code>type</code> is an <code>OccurrenceDefinition</code>, an <code>OccurrenceUsage</code> is a <code>Usage</code> of that <code>OccurrenceDefinition</code> within a system. However, other types of Kernel <code>Classes</code> are also allowed, to permit use of <code>Classes</code> from the Kernel Model Libraries.</p> + + + + + <p>The <code>individualDefinition</code> of an <code>OccurrenceUsage</code> is the <code>occurrenceDefinition</code> that is an <code>OccurrenceDefinition</code> with <code>isIndividual = true</code>, if any.</p> + + + OCL2.0 + individualDefinition = + let individualDefinitions : OrderedSet(OccurrenceDefinition) = + occurrenceDefinition-> + selectByKind(OccurrenceDefinition)-> + select(isIndividual) in + if individualDefinitions->isEmpty() then null + else individualDefinitions->first() endif + + + + + <p>If an <code>OccurrenceUsage</code> has <code>isIndividual = true</code>, then it must have an <code>individualDefinition</code>.</p> + + + OCL2.0 + isIndividual implies individualDefinition <> null + + + + + <p>An <code>OccurrenceUsage</code> must directly or indirectly specialize <code><em>Occurrences::occurrences</em></code> from the Kernel Semantic Library.</p> + + + OCL2.0 + specializesFromLibrary('Occurrences::occurrences') + + + + + <p>A composite <code>OccurrenceUsage</code>, whose <code>ownedType</code> is a <code>Class</code>, another <code>OccurrenceUsage</code>, or any kind of <code>Feature</code> typed by a <code>Class</code>, must directly or indirectly specialize <em><code>Occurrences::Occurrence::suboccurrences</code></em>. + + + OCL2.0 + isComposite and +owningType <> null and +(owningType.oclIsKindOf(Class) or + owningType.oclIsKindOf(OccurrenceUsage) or + owningType.oclIsKindOf(Feature) and + owningType.oclAsType(Feature).type-> + exists(oclIsKind(Class))) implies + specializesFromLibrary('Occurrences::Occurrence::suboccurrences') + + + + + <p>An <code>OccurrenceUsage</code> must have at most one <code>occurrenceDefinition</code> with <code>isIndividual = true</code>.</p> + + + OCL2.0 + occurrenceDefinition-> + selectByKind(OccurrenceDefinition)-> + select(isIndividual).size() <= 1 + + + + + <p>If an <code>OccurrenceUsage</code> has <code>portionKind = snapshot</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::snapshots</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + portionKind = PortionKind::snapshot implies + specializesFromLibrary('Occurrences::Occurrence::snapshots') + + + + + <p>If an <code>OccurrenceUsage</code> has <code>portionKind = timeslice</code>, then it must directly or indirectly specialize <em><code>Occurrences::Occurrence::timeSlices</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + portionKind = PortionKind::timeslice implies + specializesFromLibrary('Occurrences::Occurrence::timeSlices') + + + + + <p>If an <code>OccurrenceUsage</code> has a non-null <code>portionKind</code>, then its <code>owningType</code> must be an <code>OccurrenceDefinition</code> or an <code>OccurrenceUsage</code>.</p> + + + OCL2.0 + portionKind <> null implies + owningType <> null and + (owningType.oclIsKindOf(OccurrenceDefinition) or + owningType.oclIsKindOf(OccurrenceUsage)) + + + + + <p>If an <code>OccurrenceUsage</code> has a non-null <code>portionKind</code>, then it must have <code>isPortion = true</code>.</p> + + + OCL2.0 + portionKind <> null implies isPortion + + + + + + <p>The <code>Classes</code> that are the types of this <code>OccurrenceUsage</code>. Nominally, these are <code>OccurrenceDefinitions</code>, but other kinds of kernel <code>Classes</code> are also allowed, to permit use of <code>Classes</code> from the Kernel Model Libraries.</p> + + + + + + + <p>The at most one <code>occurrenceDefinition</code> that has <code>isIndividual = true</code>.</p> + + + + + + + <p>Whether this <code>OccurrenceUsage</code> represents the usage of the specific individual represented by its <code>individualDefinition</code>.</p> + + + + + + + <p>The kind of temporal portion (time slice or snapshot) is represented by this <code>OccurrenceUsage</code>. If <code>portionKind</code> is not null, then the <code>owningType</code> of the <code>OccurrenceUsage</code> must be non-null, and the <code>OccurrenceUsage</code> represents portions of the featuring instance of the <code>owningType</code>.</p> + + + + + + + + + <p>The EventOccurrenceUsages that reference a certain <code>eventOccurrence</code>.</p> + + + + + + + + <p>An <code>OccurrenceDefinition</code> is a <code>Definition</code> of a <code>Class</code> of individuals that have an independent life over time and potentially an extent over space. This includes both structural things and behaviors that act on such structures. If <code>isIndividual</code> is true, then the <code>OccurrenceDefinition</code> is constrained to have (at most) a single instance that is the entire life of a single individual.</p> + + + + <p>An <code>OccurrenceDefinition</code> with <code>isIndividual = true</code> must directly or indirectly specialize <em><code>Occurrences::Life</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isIndividual implies specializesFromLibrary('Occurrences::Life') + + + + + <p>An <code>OccurrenceDefinition</code> with <code>isIndividual = true</code> must have a <code>multiplicity</code> that specializes <em><code>Base::zeroOrOne</code></em> from the Kernel Semantic Library.</p> + + + OCL2.0 + isIndividual implies + multiplicity <> null and + multiplicity.specializesFromLibrary('Base::zeroOrOne') + + + + + + + <p>Whether this <code>OccurrenceDefinition</code> is constrained to represent at most one thing.</p> + + + + + + + + + <p>The <code>OccurrenceUsages</code> being typed by a certain <code>Class</code>.</p> + + + + + + + + <p>An <code>EventOccurrenceUsage</code> is an <code>OccurrenceUsage</code> that represents another <code>OccurrenceUsage</code> occurring as a <code><em>suboccurrence</em></code> of the containing occurrence of the <code>EventOccurrenceUsage</code>. Unless it is the <code>EventOccurrenceUsage</code> itself, the referenced <code>OccurrenceUsage</code> is related to the <code>EventOccurrenceUsage</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>.</p> + +<p>If the <code>EventOccurrenceUsage</code> is owned by an <code>OccurrenceDefinition</code> or <code>OccurrenceUsage</code>, then it also subsets the <em><code>timeEnclosedOccurrences</code></em> property of the <code>Class</code> <em><code>Occurrence</code></em> from the Kernel Semantic Library model <em><code>Occurrences</code></em>.</p> + + + + <p>If an <code>EventOccurrenceUsage</code> has no <code>ownedReferenceSubsetting</code>, then its <code>eventOccurrence</code> is the <code>EventOccurrenceUsage</code> itself. Otherwise, the <code>eventOccurrence</code> is the <code>featureTarget</code> of the <code>referencedFeature</code> of the <code>ownedReferenceSubsetting</code> (which must be an <code>OccurrenceUsage</code>).</p> + + + OCL2.0 + eventOccurrence = + if referencedFeatureTarget() = null then self + else if referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) then + referencedFeatureTarget().oclAsType(OccurrenceUsage) + else null + endif endif + + + + + <p>If an <code>EventOccurrenceUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be an <code>OccurrenceUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) + + + + + <p>If an <code>EventOccurrenceUsage</code> has an <code>owningType</code> that is an <code>OccurrenceDefinition</code> or <code>OccurrenceUsage</code>, then it must directly or indirectly specialize the <code>Feature</code> <code><em>Occurrences::Occurrence::timeEnclosedOccurrences</em></code>.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(OccurrenceDefinition) or + owningType.oclIsKindOf(OccurrenceUsage)) implies + specializesFromLibrary('Occurrences::Occurrence::timeEnclosedOccurrences') + + + + + <p>An <code>EventOccurrenceUsage</code> must be referential.</p> + + + OCL2.0 + isReference + + + + + + <p>The <code>OccurrenceUsage</code> referenced as an event by this <code>EventOccurrenceUsage</code>. It is the <code>referenceFeature</code> of the <code>ownedReferenceSubsetting</code> for the <code>EventOccurrenceUsage</code>, if there is one, and, otherwise, the <code>EventOccurrenceUsage</code> itself.</p> + + + + + + + <p>Always true for an <code>EventOccurrenceUsage</code>.</p> + + + + + + + + + + + <p>The UseCaseDefinition that includes a certain <code>includedUseCase</code>.</p> + + + + + + + + + <p>The UseCaseUsage that includes a certain <code>includedUseCase</code>.</p> + + + + + + + + <p>An <code>IncludeUseCaseUsage</code> is a <code>UseCaseUsage</code> that represents the inclusion of a <code>UseCaseUsage</code> by a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code>. Unless it is the <code>IncludeUseCaseUsage</code> itself, the <code>UseCaseUsage</code> to be included is related to the <code>includedUseCase</code> by a <code>ReferenceSubsetting</code> <code>Relationship</code>. An <code>IncludeUseCaseUsage</code> is also a PerformActionUsage, with its <code>useCaseIncluded</code> as the <code>performedAction</code>.</p> + + + + + <p>A <code>IncludeUseCaseUsage</code> whose <code>owningType</code> is a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code> must directly or indirectly specialize the <code>UseCaseUsage</code> <em><code>UseCases::UseCase::includedUseCases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + owningType <> null and +(owningType.oclIsKindOf(UseCaseDefinition) or + owningType.oclIsKindOf(UseCaseUsage) implies + specializesFromLibrary('UseCases::UseCase::includedUseCases') + + + + + <p>If an <code>IncludeUseCaseUsage</code> has an <code>ownedReferenceSubsetting</code>, then the <code>featureTarget</code> of the <code>referencedFeature</code> must be a <code>UseCaseUsage</code>.</p> + + + OCL2.0 + referencedFeatureTarget() <> null implies + referencedFeatureTarget().oclIsKindOf(UseCaseUsage) + + + + + + + <p>The <code>UseCaseUsage</code> to be included by this <code>IncludeUseCaseUsage</code>. It is the <code>performedAction</code> of the <code>IncludeUseCaseUsage</code> considered as a <code>PerformActionUsage</code>, which must be a <code>UseCaseUsage</code>.</p> + + + + + + + + + + <p>The IncludeUseCaseUsages that have a certain UseCaseUsage as their <code>includedUseCase</code>.</p> + + + + + + + + + <p>The UseCaseUsages being typed by a certain UseCaseDefinition.</p> + + + + + + + + <p>A <code>UseCaseUsage</code> is a <code>Usage</code> of a <code>UseCaseDefinition</code>.</p> + + + + <p>The <code>includedUseCases<code> of a <code>UseCaseUsage</code> are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by the <code>UseCaseUsage<code>.</p> + + + OCL2.0 + includedUseCase = ownedUseCase-> + selectByKind(IncludeUseCaseUsage). + useCaseIncluded + + + + + <p>A <code>UseCaseUsage</code> must directly or indirectly specializes the base <code>UseCaseUsage</code> <em><code>UseCases::useCases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('UseCases::useCases') + + + + + <p>A composite <code>UseCaseUsage</code> whose <code>owningType</code> is a <code>UseCaseDefinition</code> or <code>UseCaseUsage</code> must specialize the <code>UseCaseUsage</code> <em><code>UseCases::UseCase::subUseCases</code></em> from the Systems Model Library.</p> + + + OCL2.0 + isComposite and owningType <> null and +(owningType.oclIsKindOf(UseCaseDefinition) or + owningType.oclIsKindOf(UseCaseUsage)) implies + specializesFromLibrary('UseCases::UseCase::subUseCases') + + + + + + <p>The <code>UseCaseDefinition</code> that is the <code>definition</code> of this <code>UseCaseUsage</code>.</p> + + + + + + + <p>The <code>UseCaseUsages</code> that are included by this <code>UseCaseUse</code>, which are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by this <code>UseCaseUsage<code>.</p> + + + + + + + + <p>A <code>UseCaseDefinition</code> is a <code>CaseDefinition</code> that specifies a set of actions performed by its subject, in interaction with one or more actors external to the subject. The objective is to yield an observable result that is of value to one or more of the actors.</p> + + + + + <p>The <code>includedUseCases<code> of a <code>UseCaseDefinition</code> are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by the <code>UseCaseDefinition<code>.</p> + + + OCL2.0 + includedUseCase = ownedUseCase-> + selectByKind(IncludeUseCaseUsage). + useCaseIncluded + + + + + <p>A <code>UseCaseDefinition</code> must directly or indirectly specializes the base <code>UseCaseDefinition</code> <code><em>UseCases::UseCase</em></code> from the Systems Model Library.</p> + + + + + + OCL2.0 + specializesFromLibrary('UseCases::UseCase') + + + + + + <p>The <code>UseCaseUsages</code> that are included by this <code>UseCaseDefinition</code>, which are the <code>useCaseIncludeds</code> of the <code>IncludeUseCaseUsages</code> owned by this <code>UseCaseDefinition<code>.</p> + + + + + + + + + + + + + + + + <p>A <code>MetadataDefinition</code> is an <code>ItemDefinition</code> that is also a <code>Metaclass</code>.</p> + + + + <p>A <code>MetadataDefinition</code> must directly or indirectly specialize the base <code>MetadataDefinition</code> <code><em>Metadata::MetadataItem</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Metadata::MetadataItem') + + + + + + + + <p>A <code>MetadataUsage</code> is a <code>Usage</code> and a <code>MetadataFeature</code>, used to annotate other <code>Elements</code> in a system model with metadata. As a <code>MetadataFeature</code>, its type must be a <code>Metaclass</code>, which will nominally be a <code>MetadataDefinition</code>. However, any kernel <code>Metaclass</code> is also allowed, to permit use of <code>Metaclasses</code> from the Kernel Model Libraries.</p> + + + + <p>A <code>MetadataUsage</code> must directly or indirectly specialize the base <code>MetadataUsage</code> <code><em>Metadata::metadataItems</em></code> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Metadata::metadataItems') + + + + + + + <p>The <code>MetadataDefinition</code> that is the <code>definition</code> of this <code>MetadataUsage</code>.</p> + + + + + + + + + + <p>A <code>FlowUsage</code> is an <code>ActionUsage</code> that is also a <code>ConnectorAsUsage</code> and a KerML <code>Flow</code>.</p> + + + + <p>A <code>FlowUsage</code> must directly or indirectly specialize the base <code>FlowUsage</code> <em><code>Flows::messages</code></em> from the Systems Library model.</p> + + + OCL2.0 + specializesFromLibrary('Flows::messages') + + + + + <p>If a <code>FlowUsage</code> has <code>ownedEndFeatures</code>, it must directly or indirectly specialize the <code>FlowUsage</code> <em><code>Flows::flows</code></em> from the Systems Model Library.</p> + + + OCL2.0 + ownedEndFeatures->notEmpty() implies + specializesFromLibrary('Flows::flows') + + + + + + + + <p>The <code>Interactions</code> that are the <code>types</code> of this <code>FlowUsage</code>. Nominally, these are <code>FlowDefinitions</code>, but other kinds of Kernel <code>Interactions</code> are also allowed, to permit use of Interactions from the Kernel Model Libraries.</p> + + + + + + + + <p>A <code>FlowDefinition</code> is an <code>ActionDefinition</code> that is also an <code>Interaction</code> (which is both a KerML <code>Behavior</code> and <code>Association</code>), representing flows between <code>Usages</code>.</p> + + + + <p>A <code>FlowDefinition</code> must directly or indirectly specialize the base <code>FlowDefinition</code> <em><code>Flows::MessageAction</code></em> from the Systems Model Library.</p> + + + OCL2.0 + specializesFromLibrary('Flows::MessageAction') + + + + + <p>A binary <code>FlowDefinition</code> must directly or indirectly specialize the base <code>FlowDefinition<code> <em><code>Flows::Message</code></em> from the Systems Model Library.</p> + + + OCL2.0 + flowEnd->size() = 2 implies + specializesFromLibrary('Flows::Message') + + + + + <p>A <code>FlowDefinition</code> may not have more than two <code>flowEnds</code>.</p> + + + OCL2.0 + flowEnd->size() <= 2 + + + + + + + <p>The <code>Usages</code> that define the things related by the <code>FlowDefinition</code>.</p> + + + + + + + + + <p>The <code>FlowDefinitions<code> that have a certain Usage as <code>flowEnd</code>.</p> + + + + + + + + + <p>The <code>FlowUsages<code> that have a certain <code>Interaction</code> as their <code>flowDefinition</code>.</p> + + + + + + + + <p>A <code>SuccessionFlowUsage</code> is a <code>FlowUsage</code> that is also a KerML <code>SuccessionFlow</code>.</p> + + + + <p>A <code>SuccessionFlowUsage</code> must directly or indirectly specialize the base <code>FlowUsage</code> <em><code>Flows::successionFlows</code></em> from the Systems Library model.</p> + + + OCL2.0 + specializesFromLibrary('Flows::successionFlows') + + + + + + + + diff --git a/unified/org.omg.sysml.model/.classpath b/unified/org.omg.sysml.model/.classpath new file mode 100644 index 000000000..0c16512eb --- /dev/null +++ b/unified/org.omg.sysml.model/.classpath @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/unified/org.omg.sysml.model/.project b/unified/org.omg.sysml.model/.project new file mode 100644 index 000000000..10f976e8d --- /dev/null +++ b/unified/org.omg.sysml.model/.project @@ -0,0 +1,20 @@ + + + org.omg.sysml.model + + + + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.m2e.core.maven2Builder + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/unified/org.omg.sysml.model/.settings/org.eclipse.core.resources.prefs b/unified/org.omg.sysml.model/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 000000000..99f26c020 --- /dev/null +++ b/unified/org.omg.sysml.model/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/unified/org.omg.sysml.model/.settings/org.eclipse.jdt.core.prefs b/unified/org.omg.sysml.model/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..e9186c3e3 --- /dev/null +++ b/unified/org.omg.sysml.model/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.source=21 diff --git a/unified/org.omg.sysml.model/.settings/org.eclipse.m2e.core.prefs b/unified/org.omg.sysml.model/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 000000000..54212ae86 --- /dev/null +++ b/unified/org.omg.sysml.model/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/unified/org.omg.sysml.model/README.md b/unified/org.omg.sysml.model/README.md new file mode 100644 index 000000000..e460249c8 --- /dev/null +++ b/unified/org.omg.sysml.model/README.md @@ -0,0 +1,23 @@ +# org.omg.sysml.model + +## Purpose +- Hosts the generated EMF standalone Java metamodel for SysML v2. +- Contains `src/main/resources/model/SysML.ecore` and + `src/main/resources/model/SysML.genmodel` as the source artifacts for model code generation. + +## What This Module Provides +- EMF model interfaces and implementations under `org.omg.sysml.model`. +- EMF package/factory initialization for the SysML metamodel. + +## Design Intent +- Pure model module: no dependency on `org.omg.sysml.logic` or other `org.omg.sysml.*` modules. +- No Spring runtime wiring in this module. + +## Generation Source of Truth +- Model code is generated from `src/main/resources/model/SysML.genmodel`. +- The metamodel definition is `src/main/resources/model/SysML.ecore`. + +## Generation Workflow +- Do not generate metamodel Java code directly from `SysML.genmodel` in Eclipse/STS. +- Generate metamodel code only through the Maven build profiles in `org.omg.sysml.model.tools`. +- This guarantees the complete generation pipeline is applied consistently. diff --git a/unified/org.omg.sysml.model/pom.xml b/unified/org.omg.sysml.model/pom.xml new file mode 100644 index 000000000..7afbda359 --- /dev/null +++ b/unified/org.omg.sysml.model/pom.xml @@ -0,0 +1,49 @@ + + + 4.0.0 + + + org.omg.sysml + org.omg.sysml.unified.parent + 0.1.0-SNAPSHOT + ../pom.xml + + + org.omg.sysml.model + org.omg.sysml.model + + + + org.eclipse.emf + org.eclipse.emf.common + + + org.eclipse.emf + org.eclipse.emf.ecore + + + org.eclipse.emf + org.eclipse.emf.ecore.xmi + + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.3.1 + + + attach-sources + + jar-no-fork + + + + + + + diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AcceptActionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AcceptActionUsage.java new file mode 100644 index 000000000..51be54c61 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AcceptActionUsage.java @@ -0,0 +1,167 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Accept Action Usage'. + * + * + * + *

An AcceptActionUsage is an ActionUsage that specifies the acceptance of an incomingTransfer from the Occurrence given by the result of its receiverArgument Expression. (If no receiverArgument is provided, the default is the this context of the AcceptActionUsage.) The payload of the accepted Transfer is output on its payloadParameter. Which Transfers may be accepted is determined by conformance to the typing and (potentially) binding of the payloadParameter.

+ * + * inputParameters()->size() >= 2 + * receiverArgument = argument(2) + * payloadArgument = argument(1) + * payloadParameter = + * if parameter->isEmpty() then null + * else parameter->first() endif + * not isTriggerAction() implies + * specializesFromLibrary('Actions::acceptActions') + * isSubactionUsage() and not isTriggerAction() implies + * specializesFromLibrary('Actions::Action::acceptSubactions') + * isTriggerAction() implies + * specializesFromLibrary('Actions::TransitionAction::accepter') + * payloadArgument <> null and + * payloadArgument.oclIsKindOf(TriggerInvocationExpression) implies + * let invocation : Expression = + * payloadArgument.oclAsType(Expression) in + * parameter->size() >= 2 and + * invocation.parameter->size() >= 2 and + * ownedFeature->selectByKind(BindingConnector)->exists(b | + * b.relatedFeatures->includes(parameter->at(2)) and + * b.relatedFeatures->includes(invocation.parameter->at(2))) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.AcceptActionUsage#getPayloadArgument Payload Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.AcceptActionUsage#getPayloadParameter Payload Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.AcceptActionUsage#getReceiverArgument Receiver Argument}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAcceptActionUsage() + * @model + * @generated + */ +public interface AcceptActionUsage extends ActionUsage { + /** + * Returns the value of the 'Payload Argument' reference. + * + * + * + *

An Expression whose result is bound to the payload parameter of this AcceptActionUsage. If provided, the AcceptActionUsage will only accept a Transfer with exactly this payload.

+ * + * + * @return the value of the 'Payload Argument' reference. + * @see #setPayloadArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAcceptActionUsage_PayloadArgument() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='acceptingActionUsage'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getPayloadArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AcceptActionUsage#getPayloadArgument Payload Argument}' reference. + * + * + * @param value the new value of the 'Payload Argument' reference. + * @see #getPayloadArgument() + * @generated + */ + void setPayloadArgument(Expression value); + + /** + * Returns the value of the 'Payload Parameter' reference. + * + * + * + *

The nestedReference of this AcceptActionUsage that redefines the payload output parameter of the base AcceptActionUsage AcceptAction from the Systems Model Library.

+ * + * @return the value of the 'Payload Parameter' reference. + * @see #setPayloadParameter(ReferenceUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAcceptActionUsage_PayloadParameter() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningAcceptActionUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ReferenceUsage getPayloadParameter(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AcceptActionUsage#getPayloadParameter Payload Parameter}' reference. + * + * + * @param value the new value of the 'Payload Parameter' reference. + * @see #getPayloadParameter() + * @generated + */ + void setPayloadParameter(ReferenceUsage value); + + /** + * Returns the value of the 'Receiver Argument' reference. + * + * + * + *

An Expression whose result is bound to the receiver input parameter of this AcceptActionUsage.

+ * + * + * @return the value of the 'Receiver Argument' reference. + * @see #setReceiverArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAcceptActionUsage_ReceiverArgument() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='acceptActionUsage'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getReceiverArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AcceptActionUsage#getReceiverArgument Receiver Argument}' reference. + * + * + * @param value the new value of the 'Receiver Argument' reference. + * @see #getReceiverArgument() + * @generated + */ + void setReceiverArgument(Expression value); + + /** + * + * + * + *

Check if this AcceptActionUsage is the triggerAction of a TransitionUsage.

+ * owningType <> null and + * owningType.oclIsKindOf(TransitionUsage) and + * owningType.oclAsType(TransitionUsage).triggerAction->includes(self) + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isTriggerAction(); + +} // AcceptActionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ActionDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ActionDefinition.java new file mode 100644 index 000000000..4ece88409 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ActionDefinition.java @@ -0,0 +1,66 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Action Definition'. + * + * + * + *

An ActionDefinition is a Definition that is also a Behavior that defines an Action performed by a system or part of a system.

+ * specializesFromLibrary('Actions::Action') + * action = usage->selectByKind(ActionUsage) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ActionDefinition#getAction Action}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getActionDefinition() + * @model + * @generated + */ +public interface ActionDefinition extends OccurrenceDefinition, Behavior { + /** + * Returns the value of the 'Action' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ActionUsage}. + * + * + * + *

The ActionUsages that are steps in this ActionDefinition, which define the actions that specify the behavior of the ActionDefinition.

+ * + * + * @return the value of the 'Action' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getActionDefinition_Action() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringActionDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getAction(); + +} // ActionDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ActionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ActionUsage.java new file mode 100644 index 000000000..72f7a1d7a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ActionUsage.java @@ -0,0 +1,149 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Action Usage'. + * + * + * + *

An ActionUsage is a Usage that is also a Step, and, so, is typed by a Behavior. Nominally, if the type is an ActionDefinition, an ActionUsage is a Usage of that ActionDefinition within a system. However, other kinds of kernel Behaviors are also allowed, to permit use of Behaviors from the Kernel Model Libraries.

+ * + * isSubactionUsage() implies + * specializesFromLibrary('Actions::Action::subactions') + * specializesFromLibrary('Actions::actions') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(PartDefinition) or + * owningType.oclIsKindOf(PartUsage)) implies + * specializesFromLibrary('Parts::Part::ownedActions') + * owningFeatureMembership <> null and + * owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies + * let kind : StateSubactionKind = + * owningFeatureMembership.oclAsType(StateSubactionMembership).kind in + * if kind = StateSubactionKind::entry then + * redefinesFromLibrary('States::StateAction::entryAction') + * else if kind = StateSubactionKind::do then + * redefinesFromLibrary('States::StateAction::doAction') + * else + * redefinesFromLibrary('States::StateAction::exitAction') + * endif endif + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ActionUsage#getActionDefinition Action Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getActionUsage() + * @model + * @generated + */ +public interface ActionUsage extends OccurrenceUsage, Step { + /** + * Returns the value of the 'Action Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Behavior}. + * + * + * + *

The Behaviors that are the types of this ActionUsage. Nominally, these would be ActionDefinitions, but other kinds of Kernel Behaviors are also allowed, to permit use of Behaviors from the Kernel Model Libraries.

+ * + * + * @return the value of the 'Action Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getActionUsage_ActionDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedAction'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getActionDefinition(); + + /** + * + * + * + *

Return the i-th argument Expression of an ActionUsage, defined as the value Expression of the FeatureValue of the i-th owned input parameter of the ActionUsage. Return null if the ActionUsage has less than i owned input parameters or the i-th owned input parameter has no FeatureValue.

+ * if inputParameter(i) = null then null + * else + * let featureValue : Sequence(FeatureValue) = inputParameter(i). + * ownedMembership->select(oclIsKindOf(FeatureValue)) in + * if featureValue->isEmpty() then null + * else featureValue->at(1).value + * endif + * endif + * + * @model ordered="false" iRequired="true" iOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression argument(int i); + + /** + * + * + * + *

Return the i-th owned input parameter of the ActionUsage. Return null if the ActionUsage has less than i owned input parameters.

+ * if inputParameters()->size() < i then null + * else inputParameters()->at(i) + * endif + * + * @model ordered="false" iRequired="true" iOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature inputParameter(int i); + + /** + * + * + * + *

Return the owned input parameters of this ActionUsage.

+ * input->select(f | f.owner = self) + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList inputParameters(); + + /** + * + * + * + *

Check if this ActionUsage is composite and has an owningType that is an ActionDefinition or ActionUsage but is not the entryAction or exitAction of a StateDefinition or StateUsage. If so, then it represents an Action that is a subaction of another Action.

+ * isComposite and owningType <> null and + * (owningType.oclIsKindOf(ActionDefinition) or + * owningType.oclIsKindOf(ActionUsage)) and + * (owningFeatureMembership.oclIsKindOf(StateSubactionMembership) implies + * owningFeatureMembership.oclAsType(StateSubactionMembership).kind = + * StateSubactionKind::do) + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isSubactionUsage(); + +} // ActionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ActorMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ActorMembership.java new file mode 100644 index 000000000..39872abd8 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ActorMembership.java @@ -0,0 +1,77 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Actor Membership'. + * + * + * + *

An ActorMembership is a ParameterMembership that identifies a PartUsage as an actor parameter, which specifies a role played by an external entity in interaction with the owningType of the ActorMembership.

+ * owningType.oclIsKindOf(RequirementUsage) or + * owningType.oclIsKindOf(RequirementDefinition) or + * owningType.oclIsKindOf(CaseDefinition) or + * owningType.oclIsKindOf(CaseUsage) + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ActorMembership#getOwnedActorParameter Owned Actor Parameter}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getActorMembership() + * @model + * @generated + */ +public interface ActorMembership extends ParameterMembership { + /** + * Returns the value of the 'Owned Actor Parameter' reference. + * + * + * + *

The PartUsage specifying the actor.

+ * + * @return the value of the 'Owned Actor Parameter' reference. + * @see #setOwnedActorParameter(PartUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getActorMembership_OwnedActorParameter() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningActorMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + PartUsage getOwnedActorParameter(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ActorMembership#getOwnedActorParameter Owned Actor Parameter}' reference. + * + * + * @param value the new value of the 'Owned Actor Parameter' reference. + * @see #getOwnedActorParameter() + * @generated + */ + void setOwnedActorParameter(PartUsage value); + +} // ActorMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AllocationDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AllocationDefinition.java new file mode 100644 index 000000000..a3d54cba7 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AllocationDefinition.java @@ -0,0 +1,65 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Allocation Definition'. + * + * + * + *

An AllocationDefinition is a ConnectionDefinition that specifies that some or all of the responsibility to realize the intent of the source is allocated to the target instances. Such allocations define mappings across the various structures and hierarchies of a system model, perhaps as a precursor to more rigorous specifications and implementations. An AllocationDefinition can itself be refined using nested allocations that give a finer-grained decomposition of the containing allocation mapping.

+ * allocation = usage->selectAsKind(AllocationUsage) + * specializesFromLibrary('Allocations::Allocation') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.AllocationDefinition#getAllocation Allocation}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAllocationDefinition() + * @model + * @generated + */ +public interface AllocationDefinition extends ConnectionDefinition { + /** + * Returns the value of the 'Allocation' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.AllocationUsage}. + * + * + * + *

The AllocationUsages that refine the allocation mapping defined by this AllocationDefinition.

+ * + * @return the value of the 'Allocation' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getAllocationDefinition_Allocation() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringAllocationDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getAllocation(); + +} // AllocationDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AllocationUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AllocationUsage.java new file mode 100644 index 000000000..b6ae61453 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AllocationUsage.java @@ -0,0 +1,64 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Allocation Usage'. + * + * + * + *

An AllocationUsage is a usage of an AllocationDefinition asserting the allocation of the source feature to the target feature.

+ * specializesFromLibrary('Allocations::allocations') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.AllocationUsage#getAllocationDefinition Allocation Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAllocationUsage() + * @model + * @generated + */ +public interface AllocationUsage extends ConnectionUsage { + /** + * Returns the value of the 'Allocation Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.AllocationDefinition}. + * + * + * + *

The AllocationDefinitions that are the types of this AllocationUsage.

+ * + * @return the value of the 'Allocation Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getAllocationUsage_AllocationDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedAllocation'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getAllocationDefinition(); + +} // AllocationUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AnalysisCaseDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AnalysisCaseDefinition.java new file mode 100644 index 000000000..03a518d40 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AnalysisCaseDefinition.java @@ -0,0 +1,81 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Analysis Case Definition'. + * + * + * + *

An AnalysisCaseDefinition is a CaseDefinition for the case of carrying out an analysis.

+ * resultExpression = + * let results : OrderedSet(ResultExpressionMembership) = + * featureMembersip-> + * selectByKind(ResultExpressionMembership) in + * if results->isEmpty() then null + * else results->first().ownedResultExpression + * endif + * specializesFromLibrary('AnalysisCases::AnalysisCase') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.AnalysisCaseDefinition#getResultExpression Result Expression}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnalysisCaseDefinition() + * @model + * @generated + */ +public interface AnalysisCaseDefinition extends CaseDefinition { + /** + * Returns the value of the 'Result Expression' reference. + * + * + * + *

An Expression used to compute the result of the AnalysisCaseDefinition, owned via a ResultExpressionMembership.

+ * + * + * @return the value of the 'Result Expression' reference. + * @see #setResultExpression(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnalysisCaseDefinition_ResultExpression() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='analysisCaseDefintion'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getResultExpression(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AnalysisCaseDefinition#getResultExpression Result Expression}' reference. + * + * + * @param value the new value of the 'Result Expression' reference. + * @see #getResultExpression() + * @generated + */ + void setResultExpression(Expression value); + +} // AnalysisCaseDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AnalysisCaseUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AnalysisCaseUsage.java new file mode 100644 index 000000000..f49ae3592 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AnalysisCaseUsage.java @@ -0,0 +1,113 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Analysis Case Usage'. + * + * + * + *

An AnalysisCaseUsage is a Usage of an AnalysisCaseDefinition.

+ * resultExpression = + * let results : OrderedSet(ResultExpressionMembership) = + * featureMembersip-> + * selectByKind(ResultExpressionMembership) in + * if results->isEmpty() then null + * else results->first().ownedResultExpression + * endif + * specializesFromLibrary('AnalysisCases::analysisCases') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(AnalysisCaseDefinition) or + * owningType.oclIsKindOf(AnalysisCaseUsage)) implies + * specializesFromLibrary('AnalysisCases::AnalysisCase::subAnalysisCases') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.AnalysisCaseUsage#getAnalysisCaseDefinition Analysis Case Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.AnalysisCaseUsage#getResultExpression Result Expression}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnalysisCaseUsage() + * @model + * @generated + */ +public interface AnalysisCaseUsage extends CaseUsage { + /** + * Returns the value of the 'Analysis Case Definition' reference. + * + * + * + *

The AnalysisCaseDefinition that is the definition of this AnalysisCaseUsage.

+ * + * @return the value of the 'Analysis Case Definition' reference. + * @see #setAnalysisCaseDefinition(AnalysisCaseDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnalysisCaseUsage_AnalysisCaseDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedAnalysisCase'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + AnalysisCaseDefinition getAnalysisCaseDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AnalysisCaseUsage#getAnalysisCaseDefinition Analysis Case Definition}' reference. + * + * + * @param value the new value of the 'Analysis Case Definition' reference. + * @see #getAnalysisCaseDefinition() + * @generated + */ + void setAnalysisCaseDefinition(AnalysisCaseDefinition value); + + /** + * Returns the value of the 'Result Expression' reference. + * + * + * + *

An Expression used to compute the result of the AnalysisCaseUsage, owned via a ResultExpressionMembership.

+ * + * @return the value of the 'Result Expression' reference. + * @see #setResultExpression(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnalysisCaseUsage_ResultExpression() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='analysisCase'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getResultExpression(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AnalysisCaseUsage#getResultExpression Result Expression}' reference. + * + * + * @param value the new value of the 'Result Expression' reference. + * @see #getResultExpression() + * @generated + */ + void setResultExpression(Expression value); + +} // AnalysisCaseUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AnnotatingElement.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AnnotatingElement.java new file mode 100644 index 000000000..4bb247d6b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AnnotatingElement.java @@ -0,0 +1,144 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Annotating Element'. + * + * + * + *

An AnnotatingElement is an Element that provides additional description of or metadata on some other Element. An AnnotatingElement is either attached to its annotatedElements by Annotation Relationships, or it implicitly annotates its owningNamespace.

+ * + * annotatedElement = + * if annotation->notEmpty() then annotation.annotatedElement + * else Sequence{owningNamespace} endif + * ownedAnnotatingRelationship = ownedRelationship-> + * selectByKind(Annotation)-> + * select(a | a.annotatedElement <> self) + * annotation = + * if owningAnnotatingRelationship = null then ownedAnnotatingRelationship + * else owningAnnotatingRelationship->prepend(owningAnnotatingRelationship) + * endif + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.AnnotatingElement#getAnnotatedElement Annotated Element}
  • + *
  • {@link org.omg.sysml.model.sysml.AnnotatingElement#getAnnotation Annotation}
  • + *
  • {@link org.omg.sysml.model.sysml.AnnotatingElement#getOwnedAnnotatingRelationship Owned Annotating Relationship}
  • + *
  • {@link org.omg.sysml.model.sysml.AnnotatingElement#getOwningAnnotatingRelationship Owning Annotating Relationship}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotatingElement() + * @model + * @generated + */ +public interface AnnotatingElement extends Element { + /** + * Returns the value of the 'Annotated Element' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * + * + * + *

The Elements that are annotated by this AnnotatingElement. If annotation is not empty, these are the annotatedElements of the annotations. If annotation is empty, then it is the owningNamespace of the AnnotatingElement.

+ * + * + * @return the value of the 'Annotated Element' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotatingElement_AnnotatedElement() + * @model required="true" transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='annotatingElement'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getAnnotatedElement(); + + /** + * Returns the value of the 'Annotation' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Annotation}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Annotation#getAnnotatingElement Annotating Element}'. + * + * + * + *

The Annotations that relate this AnnotatingElement to its annotatedElements. This includes the owningAnnotatingRelationship (if any) followed by all the ownedAnnotatingRelationshps.

+ * + * + * @return the value of the 'Annotation' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotatingElement_Annotation() + * @see org.omg.sysml.model.sysml.Annotation#getAnnotatingElement + * @model opposite="annotatingElement" transient="true" volatile="true" derived="true" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getAnnotation(); + + /** + * Returns the value of the 'Owned Annotating Relationship' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Annotation}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Annotation#getOwningAnnotatingElement Owning Annotating Element}'. + * + * + * + *

The ownedRelationships of this AnnotatingElement that are Annotations, for which this AnnotatingElement is the annotatingElement.

+ * + * @return the value of the 'Owned Annotating Relationship' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotatingElement_OwnedAnnotatingRelationship() + * @see org.omg.sysml.model.sysml.Annotation#getOwningAnnotatingElement + * @model opposite="owningAnnotatingElement" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedAnnotatingRelationship(); + + /** + * Returns the value of the 'Owning Annotating Relationship' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Annotation#getOwnedAnnotatingElement Owned Annotating Element}'. + * + * + * + *

The owningRelationship of this AnnotatingRelationship, if it is an Annotation

+ * + * @return the value of the 'Owning Annotating Relationship' reference. + * @see #setOwningAnnotatingRelationship(Annotation) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotatingElement_OwningAnnotatingRelationship() + * @see org.omg.sysml.model.sysml.Annotation#getOwnedAnnotatingElement + * @model opposite="ownedAnnotatingElement" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Annotation getOwningAnnotatingRelationship(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AnnotatingElement#getOwningAnnotatingRelationship Owning Annotating Relationship}' reference. + * + * + * @param value the new value of the 'Owning Annotating Relationship' reference. + * @see #getOwningAnnotatingRelationship() + * @generated + */ + void setOwningAnnotatingRelationship(Annotation value); + +} // AnnotatingElement diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Annotation.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Annotation.java new file mode 100644 index 000000000..2f439a0b5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Annotation.java @@ -0,0 +1,207 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Annotation'. + * + * + * + *

An Annotation is a Relationship between an AnnotatingElement and the Element that is annotated by that AnnotatingElement.

+ * + * (owningAnnotatedElement <> null) = (ownedAnnotatingElement <> null) + * ownedAnnotatingElement <> null xor owningAnnotatingElement <> null + * ownedAnnotatingElement = + * let ownedAnnotatingElements : Sequence(AnnotatingElement) = + * ownedRelatedElement->selectByKind(AnnotatingElement) in + * if ownedAnnotatingElements->isEmpty() then null + * else ownedAnnotatingElements->first() + * endif + * annotatingElement = + * if ownedAnnotatingElement <> null then ownedAnnotatingElement + * else owningAnnotatingElement + * endif + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Annotation#getAnnotatedElement Annotated Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Annotation#getAnnotatingElement Annotating Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Annotation#getOwnedAnnotatingElement Owned Annotating Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Annotation#getOwningAnnotatedElement Owning Annotated Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Annotation#getOwningAnnotatingElement Owning Annotating Element}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotation() + * @model + * @generated + */ +public interface Annotation extends Relationship { + /** + * Returns the value of the 'Annotated Element' reference. + * + * + * + *

The Element that is annotated by the annotatingElement of this Annotation.

+ * + * + * @return the value of the 'Annotated Element' reference. + * @see #setAnnotatedElement(Element) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotation_AnnotatedElement() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='annotation'" + * annotation="redefines" + * @generated + */ + Element getAnnotatedElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Annotation#getAnnotatedElement Annotated Element}' reference. + * + * + * @param value the new value of the 'Annotated Element' reference. + * @see #getAnnotatedElement() + * @generated + */ + void setAnnotatedElement(Element value); + + /** + * Returns the value of the 'Annotating Element' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.AnnotatingElement#getAnnotation Annotation}'. + * + * + * + *

The AnnotatingElement that annotates the annotatedElement of this Annotation. This is always either the ownedAnnotatingElement or the owningAnnotatingElement.

+ * + * + * @return the value of the 'Annotating Element' reference. + * @see #setAnnotatingElement(AnnotatingElement) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotation_AnnotatingElement() + * @see org.omg.sysml.model.sysml.AnnotatingElement#getAnnotation + * @model opposite="annotation" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + AnnotatingElement getAnnotatingElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Annotation#getAnnotatingElement Annotating Element}' reference. + * + * + * @param value the new value of the 'Annotating Element' reference. + * @see #getAnnotatingElement() + * @generated + */ + void setAnnotatingElement(AnnotatingElement value); + + /** + * Returns the value of the 'Owned Annotating Element' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.AnnotatingElement#getOwningAnnotatingRelationship Owning Annotating Relationship}'. + * + * + * + *

The annotatingElement of this Annotation, when it is an ownedRelatedElement.

+ * + * @return the value of the 'Owned Annotating Element' reference. + * @see #setOwnedAnnotatingElement(AnnotatingElement) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotation_OwnedAnnotatingElement() + * @see org.omg.sysml.model.sysml.AnnotatingElement#getOwningAnnotatingRelationship + * @model opposite="owningAnnotatingRelationship" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + AnnotatingElement getOwnedAnnotatingElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Annotation#getOwnedAnnotatingElement Owned Annotating Element}' reference. + * + * + * @param value the new value of the 'Owned Annotating Element' reference. + * @see #getOwnedAnnotatingElement() + * @generated + */ + void setOwnedAnnotatingElement(AnnotatingElement value); + + /** + * Returns the value of the 'Owning Annotated Element' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Element#getOwnedAnnotation Owned Annotation}'. + * + * + * + *

The annotatedElement of this Annotation, when it is also the owningRelatedElement.

+ * + * + * @return the value of the 'Owning Annotated Element' reference. + * @see #setOwningAnnotatedElement(Element) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotation_OwningAnnotatedElement() + * @see org.omg.sysml.model.sysml.Element#getOwnedAnnotation + * @model opposite="ownedAnnotation" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Element getOwningAnnotatedElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Annotation#getOwningAnnotatedElement Owning Annotated Element}' reference. + * + * + * @param value the new value of the 'Owning Annotated Element' reference. + * @see #getOwningAnnotatedElement() + * @generated + */ + void setOwningAnnotatedElement(Element value); + + /** + * Returns the value of the 'Owning Annotating Element' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.AnnotatingElement#getOwnedAnnotatingRelationship Owned Annotating Relationship}'. + * + * + * + *

The annotatingElement of this Annotation, when it is the owningRelatedElement.

+ * + * @return the value of the 'Owning Annotating Element' reference. + * @see #setOwningAnnotatingElement(AnnotatingElement) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAnnotation_OwningAnnotatingElement() + * @see org.omg.sysml.model.sysml.AnnotatingElement#getOwnedAnnotatingRelationship + * @model opposite="ownedAnnotatingRelationship" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + AnnotatingElement getOwningAnnotatingElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Annotation#getOwningAnnotatingElement Owning Annotating Element}' reference. + * + * + * @param value the new value of the 'Owning Annotating Element' reference. + * @see #getOwningAnnotatingElement() + * @generated + */ + void setOwningAnnotatingElement(AnnotatingElement value); + +} // Annotation diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AssertConstraintUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AssertConstraintUsage.java new file mode 100644 index 000000000..da9066d66 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AssertConstraintUsage.java @@ -0,0 +1,84 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Assert Constraint Usage'. + * + * + * + *

An AssertConstraintUsage is a ConstraintUsage that is also an Invariant and, so, is asserted to be true (by default). Unless it is the AssertConstraintUsage itself, the asserted ConstraintUsage is related to the AssertConstraintUsage by a ReferenceSubsetting Relationship.

+ * assertedConstraint = + * if referencedFeatureTarget() = null then self + * else if referencedFeatureTarget().oclIsKindOf(ConstraintUsage) then + * referencedFeatureTarget().oclAsType(ConstraintUsage) + * else null + * endif endif + * if isNegated then + * specializesFromLibrary('Constraints::negatedConstraintChecks') + * else + * specializesFromLibrary('Constraints::assertedConstraintChecks') + * endif + * referencedFeaureTarget() <> null implies + * referencedFeatureTarget().oclIsKindOf(ConstraintUsage) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.AssertConstraintUsage#getAssertedConstraint Asserted Constraint}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssertConstraintUsage() + * @model + * @generated + */ +public interface AssertConstraintUsage extends ConstraintUsage, Invariant { + /** + * Returns the value of the 'Asserted Constraint' reference. + * + * + * + *

The ConstraintUsage to be performed by the AssertConstraintUsage. It is the referenceFeature of the ownedReferenceSubsetting for the AssertConstraintUsage, if there is one, and, otherwise, the AssertConstraintUsage itself.

+ * + * @return the value of the 'Asserted Constraint' reference. + * @see #setAssertedConstraint(ConstraintUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssertConstraintUsage_AssertedConstraint() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='constraintAssertion'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ConstraintUsage getAssertedConstraint(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AssertConstraintUsage#getAssertedConstraint Asserted Constraint}' reference. + * + * + * @param value the new value of the 'Asserted Constraint' reference. + * @see #getAssertedConstraint() + * @generated + */ + void setAssertedConstraint(ConstraintUsage value); + +} // AssertConstraintUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AssignmentActionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AssignmentActionUsage.java new file mode 100644 index 000000000..8e5fa9ce7 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AssignmentActionUsage.java @@ -0,0 +1,161 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Assignment Action Usage'. + * + * + * + *

An AssignmentActionUsage is an ActionUsage that is defined, directly or indirectly, by the ActionDefinition AssignmentAction from the Systems Model Library. It specifies that the value of the referent Feature, relative to the target given by the result of the targetArgument Expression, should be set to the result of the valueExpression.

+ * + * specializesFromLibrary('Actions::assignmentActions') + * let targetParameter : Feature = inputParameter(1) in + * targetParameter <> null and + * targetParameter.ownedFeature->notEmpty() and + * targetParameter.ownedFeature->first(). + * redefines('AssignmentAction::target::startingAt') + * valueExpression = argument(2) + * targetArgument = argument(1) + * isSubactionUsage() implies + * specializesFromLibrary('Actions::Action::assignments') + * let targetParameter : Feature = inputParameter(1) in + * targetParameter <> null and + * targetParameter.ownedFeature->notEmpty() and + * targetParameter->first().ownedFeature->notEmpty() and + * targetParameter->first().ownedFeature->first(). + * redefines('AssigmentAction::target::startingAt::accessedFeature') + * let targetParameter : Feature = inputParameter(1) in + * targetParameter <> null and + * targetParameter.ownedFeature->notEmpty() and + * targetParameter->first().ownedFeature->notEmpty() and + * targetParameter->first().ownedFeature->first().redefines(referent) + * referent = + * let unownedFeatures : Sequence(Feature) = ownedMembership-> + * reject(oclIsKindOf(FeatureMembership)).memberElement-> + * selectByKind(Feature) in + * if unownedFeatures->isEmpty() then null + * else unownedFeatures->first().oclAsType(Feature) + * endif + * ownedMembership->exists( + * not oclIsKindOf(OwningMembership) and + * memberElement.oclIsKindOf(Feature)) + * referent <> null implies referent.featureTarget.mayTimeVary + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.AssignmentActionUsage#getReferent Referent}
  • + *
  • {@link org.omg.sysml.model.sysml.AssignmentActionUsage#getTargetArgument Target Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.AssignmentActionUsage#getValueExpression Value Expression}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssignmentActionUsage() + * @model + * @generated + */ +public interface AssignmentActionUsage extends ActionUsage { + /** + * Returns the value of the 'Referent' reference. + * + * + * + *

The Feature whose value is to be set.

+ * + * @return the value of the 'Referent' reference. + * @see #setReferent(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssignmentActionUsage_Referent() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='assignment'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getReferent(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AssignmentActionUsage#getReferent Referent}' reference. + * + * + * @param value the new value of the 'Referent' reference. + * @see #getReferent() + * @generated + */ + void setReferent(Feature value); + + /** + * Returns the value of the 'Target Argument' reference. + * + * + * + *

The Expression whose value is an occurrence in the domain of the referent Feature, for which the value of the referent will be set to the result of the valueExpression by this AssignmentActionUsage.

+ * + * @return the value of the 'Target Argument' reference. + * @see #setTargetArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssignmentActionUsage_TargetArgument() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='assignmentAction'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getTargetArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AssignmentActionUsage#getTargetArgument Target Argument}' reference. + * + * + * @param value the new value of the 'Target Argument' reference. + * @see #getTargetArgument() + * @generated + */ + void setTargetArgument(Expression value); + + /** + * Returns the value of the 'Value Expression' reference. + * + * + * + *

The Expression whose result is to be assigned to the referent Feature.

+ * + * @return the value of the 'Value Expression' reference. + * @see #setValueExpression(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssignmentActionUsage_ValueExpression() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='assigningAction'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getValueExpression(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.AssignmentActionUsage#getValueExpression Value Expression}' reference. + * + * + * @param value the new value of the 'Value Expression' reference. + * @see #getValueExpression() + * @generated + */ + void setValueExpression(Expression value); + +} // AssignmentActionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Association.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Association.java new file mode 100644 index 000000000..936a495a3 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Association.java @@ -0,0 +1,156 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Association'. + * + * + * + *

An Association is a Relationship and a Classifier to enable classification of links between things (in the universe). The co-domains (types) of the associationEnd Features are the relatedTypes, as co-domain and participants (linked things) of an Association identify each other.

+ * + * relatedType = associationEnd.type + * specializesFromLibrary('Links::Link') + * oclIsKindOf(Structure) = oclIsKindOf(AssociationStructure) + * associationEnd->size() = 2 implies + * specializesFromLibrary('Links::BinaryLink') + * not isAbstract implies relatedType->size() >= 2 + * associationEnds->size() > 2 implies + * not specializesFromLibrary('Links::BinaryLink') + * sourceType = + * if relatedType->isEmpty() then null + * else relatedType->first() endif + * targetType = + * if relatedType->size() < 2 then OrderedSet{} + * else + * relatedType-> + * subSequence(2, relatedType->size())-> + * asOrderedSet() + * endif + * ownedEndFeature->forAll(type->size() = 1) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Association#getAssociationEnd Association End}
  • + *
  • {@link org.omg.sysml.model.sysml.Association#getRelatedType Related Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Association#getSourceType Source Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Association#getTargetType Target Type}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssociation() + * @model + * @generated + */ +public interface Association extends Classifier, Relationship { + /** + * Returns the value of the 'Association End' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

The features of the Association that identify the things that can be related by it. A concrete Association must have at least two associationEnds. When it has exactly two, the Association is called a binary Association.

+ * + * + * @return the value of the 'Association End' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssociation_AssociationEnd() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='associationWithEnd'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getAssociationEnd(); + + /** + * Returns the value of the 'Related Type' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Type}. + * + * + * + *

The types of the associationEnds of the Association, which are the relatedElements of the Association considered as a Relationship.

+ * + * + * @return the value of the 'Related Type' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssociation_RelatedType() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='association'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getRelatedType(); + + /** + * Returns the value of the 'Source Type' reference. + * + * + * + *

The source relatedType for this Association. It is the first relatedType of the Association.

+ * + * + * @return the value of the 'Source Type' reference. + * @see #setSourceType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssociation_SourceType() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='sourceAssociation'" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getSourceType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Association#getSourceType Source Type}' reference. + * + * + * @param value the new value of the 'Source Type' reference. + * @see #getSourceType() + * @generated + */ + void setSourceType(Type value); + + /** + * Returns the value of the 'Target Type' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Type}. + * + * + * + *

The target relatedTypes for this Association. This includes all the relatedTypes other than the sourceType.

+ * + * + * @return the value of the 'Target Type' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssociation_TargetType() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='targetAssociation'" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getTargetType(); + +} // Association diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AssociationStructure.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AssociationStructure.java new file mode 100644 index 000000000..5ceef3264 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AssociationStructure.java @@ -0,0 +1,41 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Association Structure'. + * + * + * + *

An AssociationStructure is an Association that is also a Structure, classifying link objects that are both links and objects. As objects, link objects can be created and destroyed, and their non-end Features can change over time. However, the values of the end Features of a link object are fixed and cannot change over its lifetime.

+ * specializesFromLibrary('Objects::LinkObject') + * endFeature->size() = 2 implies + * specializesFromLibrary('Objects::BinaryLinkObject') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAssociationStructure() + * @model + * @generated + */ +public interface AssociationStructure extends Association, Structure { +} // AssociationStructure diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AttributeDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AttributeDefinition.java new file mode 100644 index 000000000..7d3a76391 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AttributeDefinition.java @@ -0,0 +1,41 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Attribute Definition'. + * + * + * + *

An AttributeDefinition is a Definition and a DataType of information about a quality or characteristic of a system or part of a system that has no independent identity other than its value. All features of an AttributeDefinition must be referential (non-composite).

+ * + *

As a DataType, an AttributeDefinition must specialize, directly or indirectly, the base DataType Base::DataValue from the Kernel Semantic Library.

+ * feature->forAll(not isComposite) + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAttributeDefinition() + * @model + * @generated + */ +public interface AttributeDefinition extends Definition, DataType { +} // AttributeDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AttributeUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AttributeUsage.java new file mode 100644 index 000000000..ec07f0fe5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/AttributeUsage.java @@ -0,0 +1,68 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Attribute Usage'. + * + * + * + *

An AttributeUsage is a Usage whose type is a DataType. Nominally, if the type is an AttributeDefinition, an AttributeUsage is a usage of a AttributeDefinition to represent the value of some system quality or characteristic. However, other kinds of kernel DataTypes are also allowed, to permit use of DataTypes from the Kernel Model Libraries. An AttributeUsage itself as well as all its nested features must be referential (non-composite).

+ * + *

An AttributeUsage must specialize, directly or indirectly, the base Feature Base::dataValues from the Kernel Semantic Library.

+ * isReference + * feature->forAll(not isComposite) + * specializesFromLibrary('Base::dataValues') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.AttributeUsage#getAttributeDefinition Attribute Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getAttributeUsage() + * @model + * @generated + */ +public interface AttributeUsage extends Usage { + /** + * Returns the value of the 'Attribute Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.DataType}. + * + * + * + *

The DataTypes that are the types of this AttributeUsage. Nominally, these are AttributeDefinitions, but other kinds of kernel DataTypes are also allowed, to permit use of DataTypes from the Kernel Model Libraries.

+ * + * @return the value of the 'Attribute Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getAttributeUsage_AttributeDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedAttribute'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getAttributeDefinition(); + +} // AttributeUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Behavior.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Behavior.java new file mode 100644 index 000000000..1ac75747d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Behavior.java @@ -0,0 +1,88 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Behavior'. + * + * + * + *

A Behavior coordinates occurrences of other Behaviors, as well as changes in objects. Behaviors can be decomposed into Steps and be characterized by parameters.

+ * + * ownedSpecialization.general->forAll(not oclIsKindOf(Structure)) + * specializesFromLibrary('Performances::Performance') + * step = feature->selectByKind(Step) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Behavior#getParameter Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.Behavior#getStep Step}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getBehavior() + * @model + * @generated + */ +public interface Behavior extends org.omg.sysml.model.sysml.Class { + /** + * Returns the value of the 'Parameter' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

The parameters of this Behavior, which are defined as its directedFeatures, whose values are passed into and/or out of a performance of the Behavior.

+ * + * + * @return the value of the 'Parameter' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getBehavior_Parameter() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='parameteredBehavior'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getParameter(); + + /** + * Returns the value of the 'Step' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Step}. + * + * + * + *

The Steps that make up this Behavior.

+ * + * + * @return the value of the 'Step' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getBehavior_Step() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringBehavior'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getStep(); + +} // Behavior diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/BindingConnector.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/BindingConnector.java new file mode 100644 index 000000000..350c3adda --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/BindingConnector.java @@ -0,0 +1,41 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Binding Connector'. + * + * + * + *

A BindingConnector is a binary Connector that requires its relatedFeatures to identify the same things (have the same values).

+ * + * relatedFeature->size() = 2 + * specializesFromLibrary('Links::selfLinks') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getBindingConnector() + * @model + * @generated + */ +public interface BindingConnector extends Connector { +} // BindingConnector diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/BindingConnectorAsUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/BindingConnectorAsUsage.java new file mode 100644 index 000000000..6388168df --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/BindingConnectorAsUsage.java @@ -0,0 +1,38 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Binding Connector As Usage'. + * + * + * + *

A BindingConnectorAsUsage is both a BindingConnector and a ConnectorAsUsage.

+ * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getBindingConnectorAsUsage() + * @model + * @generated + */ +public interface BindingConnectorAsUsage extends ConnectorAsUsage, BindingConnector { +} // BindingConnectorAsUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/BooleanExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/BooleanExpression.java new file mode 100644 index 000000000..cd53664c3 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/BooleanExpression.java @@ -0,0 +1,76 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Boolean Expression'. + * + * + * + *

A BooleanExpression is a Boolean-valued Expression whose type is a Predicate. It represents a logical condition resulting from the evaluation of the Predicate.

+ * + * specializesFromLibrary('Performances::booleanEvaluations') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.BooleanExpression#getPredicate Predicate}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getBooleanExpression() + * @model + * @generated + */ +public interface BooleanExpression extends Expression { + /** + * Returns the value of the 'Predicate' reference. + * + * + * + *

The Predicate that types the Expression.

+ * + *

The Predicate that types this BooleanExpression.

+ * + * @return the value of the 'Predicate' reference. + * @see #setPredicate(Predicate) + * @see org.omg.sysml.model.sysml.SysMLPackage#getBooleanExpression_Predicate() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typedBooleanExpression'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Predicate getPredicate(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.BooleanExpression#getPredicate Predicate}' reference. + * + * + * @param value the new value of the 'Predicate' reference. + * @see #getPredicate() + * @generated + */ + void setPredicate(Predicate value); + +} // BooleanExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CalculationDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CalculationDefinition.java new file mode 100644 index 000000000..6d602f530 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CalculationDefinition.java @@ -0,0 +1,65 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Calculation Definition'. + * + * + * + *

A CalculationDefinition is an ActionDefinition that also defines a Function producing a result.

+ * specializesFromLibrary('Calculations::Calculation') + * calculation = action->selectByKind(CalculationUsage) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.CalculationDefinition#getCalculation Calculation}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getCalculationDefinition() + * @model + * @generated + */ +public interface CalculationDefinition extends ActionDefinition, Function { + /** + * Returns the value of the 'Calculation' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.CalculationUsage}. + * + * + * + *

The actions of this CalculationDefinition that are CalculationUsages.

+ * + * @return the value of the 'Calculation' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getCalculationDefinition_Calculation() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringCalculationDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getCalculation(); + +} // CalculationDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CalculationUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CalculationUsage.java new file mode 100644 index 000000000..d04311211 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CalculationUsage.java @@ -0,0 +1,77 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Calculation Usage'. + * + * + * + *

A CalculationUsage is an ActionUsage that is also an Expression, and, so, is typed by a Function. Nominally, if the type is a CalculationDefinition, a CalculationUsage is a Usage of that CalculationDefinition within a system. However, other kinds of kernel Functions are also allowed, to permit use of Functions from the Kernel Model Libraries.

+ * specializesFromLibrary('Calculations::calculations') + * owningType <> null and + * (owningType.oclIsKindOf(CalculationDefinition) or + * owningType.oclIsKindOf(CalculationUsage)) implies + * specializesFromLibrary('Calculations::Calculation::subcalculations') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.CalculationUsage#getCalculationDefinition Calculation Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getCalculationUsage() + * @model + * @generated + */ +public interface CalculationUsage extends ActionUsage, Expression { + /** + * Returns the value of the 'Calculation Definition' reference. + * + * + * + *

The Function that is the type of this CalculationUsage. Nominally, this would be a CalculationDefinition, but a kernel Function is also allowed, to permit use of Functions from the Kernel Model Libraries.

+ * + * @return the value of the 'Calculation Definition' reference. + * @see #setCalculationDefinition(Function) + * @see org.omg.sysml.model.sysml.SysMLPackage#getCalculationUsage_CalculationDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedCalculation'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Function getCalculationDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.CalculationUsage#getCalculationDefinition Calculation Definition}' reference. + * + * + * @param value the new value of the 'Calculation Definition' reference. + * @see #getCalculationDefinition() + * @generated + */ + void setCalculationDefinition(Function value); + +} // CalculationUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CaseDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CaseDefinition.java new file mode 100644 index 000000000..a994c30bb --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CaseDefinition.java @@ -0,0 +1,145 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Case Definition'. + * + * + * + *

A CaseDefinition is a CalculationDefinition for a process, often involving collecting evidence or data, relative to a subject, possibly involving the collaboration of one or more other actors, producing a result that meets an objective.

+ * objectiveRequirement = + * let objectives: OrderedSet(RequirementUsage) = + * featureMembership-> + * selectByKind(ObjectiveMembership). + * ownedRequirement in + * if objectives->isEmpty() then null + * else objectives->first().ownedObjectiveRequirement + * endif + * featureMembership-> + * selectByKind(ObjectiveMembership)-> + * size() <= 1 + * subjectParameter = + * let subjectMems : OrderedSet(SubjectMembership) = + * featureMembership->selectByKind(SubjectMembership) in + * if subjectMems->isEmpty() then null + * else subjectMems->first().ownedSubjectParameter + * endif + * actorParameter = featureMembership-> + * selectByKind(ActorMembership). + * ownedActorParameter + * featureMembership->selectByKind(SubjectMembership)->size() <= 1 + * input->notEmpty() and input->first() = subjectParameter + * specializesFromLibrary('Cases::Case') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.CaseDefinition#getActorParameter Actor Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.CaseDefinition#getObjectiveRequirement Objective Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.CaseDefinition#getSubjectParameter Subject Parameter}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getCaseDefinition() + * @model + * @generated + */ +public interface CaseDefinition extends CalculationDefinition { + /** + * Returns the value of the 'Actor Parameter' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartUsage}. + * + * + * + *

The parameters of this CaseDefinition that represent actors involved in the case.

+ * + * @return the value of the 'Actor Parameter' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getCaseDefinition_ActorParameter() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='actorOwningCaseDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getActorParameter(); + + /** + * Returns the value of the 'Objective Requirement' reference. + * + * + * + *

The RequirementUsage representing the objective of this CaseDefinition.

+ * + * + * @return the value of the 'Objective Requirement' reference. + * @see #setObjectiveRequirement(RequirementUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getCaseDefinition_ObjectiveRequirement() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='objectiveOwningCaseDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RequirementUsage getObjectiveRequirement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.CaseDefinition#getObjectiveRequirement Objective Requirement}' reference. + * + * + * @param value the new value of the 'Objective Requirement' reference. + * @see #getObjectiveRequirement() + * @generated + */ + void setObjectiveRequirement(RequirementUsage value); + + /** + * Returns the value of the 'Subject Parameter' reference. + * + * + * + *

The parameter of this CaseDefinition that represents its subject.

+ * + * @return the value of the 'Subject Parameter' reference. + * @see #setSubjectParameter(Usage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getCaseDefinition_SubjectParameter() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='subjectOwningCaseDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Usage getSubjectParameter(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.CaseDefinition#getSubjectParameter Subject Parameter}' reference. + * + * + * @param value the new value of the 'Subject Parameter' reference. + * @see #getSubjectParameter() + * @generated + */ + void setSubjectParameter(Usage value); + +} // CaseDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CaseUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CaseUsage.java new file mode 100644 index 000000000..48c3df625 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CaseUsage.java @@ -0,0 +1,181 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Case Usage'. + * + * + * + *

A CaseUsage is a Usage of a CaseDefinition.

+ * objectiveRequirement = + * let objectives: OrderedSet(RequirementUsage) = + * featureMembership-> + * selectByKind(ObjectiveMembership). + * ownedRequirement in + * if objectives->isEmpty() then null + * else objectives->first().ownedObjectiveRequirement + * endif + * featureMembership-> + * selectByKind(ObjectiveMembership)-> + * size() <= 1 + * featureMembership-> + * selectByKind(SubjectMembership)-> + * size() <= 1 + * actorParameter = featureMembership-> + * selectByKind(ActorMembership). + * ownedActorParameter + * subjectParameter = + * let subjects : OrderedSet(SubjectMembership) = + * featureMembership->selectByKind(SubjectMembership) in + * if subjects->isEmpty() then null + * else subjects->first().ownedSubjectParameter + * endif + * input->notEmpty() and input->first() = subjectParameter + * specializesFromLibrary('Cases::cases') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(CaseDefinition) or + * owningType.oclIsKindOf(CaseUsage)) implies + * specializesFromLibrary('Cases::Case::subcases') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.CaseUsage#getActorParameter Actor Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.CaseUsage#getCaseDefinition Case Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.CaseUsage#getObjectiveRequirement Objective Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.CaseUsage#getSubjectParameter Subject Parameter}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getCaseUsage() + * @model + * @generated + */ +public interface CaseUsage extends CalculationUsage { + /** + * Returns the value of the 'Actor Parameter' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartUsage}. + * + * + * + *

The parameters of this CaseUsage that represent actors involved in the case.

+ * + * @return the value of the 'Actor Parameter' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getCaseUsage_ActorParameter() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='actorOwningCase'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getActorParameter(); + + /** + * Returns the value of the 'Case Definition' reference. + * + * + * + *

The CaseDefinition that is the type of this CaseUsage.

+ * + * @return the value of the 'Case Definition' reference. + * @see #setCaseDefinition(CaseDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getCaseUsage_CaseDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedCase'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + CaseDefinition getCaseDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.CaseUsage#getCaseDefinition Case Definition}' reference. + * + * + * @param value the new value of the 'Case Definition' reference. + * @see #getCaseDefinition() + * @generated + */ + void setCaseDefinition(CaseDefinition value); + + /** + * Returns the value of the 'Objective Requirement' reference. + * + * + * + *

The RequirementUsage representing the objective of this CaseUsage.

+ * + * + * @return the value of the 'Objective Requirement' reference. + * @see #setObjectiveRequirement(RequirementUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getCaseUsage_ObjectiveRequirement() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='objectiveOwningCase'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RequirementUsage getObjectiveRequirement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.CaseUsage#getObjectiveRequirement Objective Requirement}' reference. + * + * + * @param value the new value of the 'Objective Requirement' reference. + * @see #getObjectiveRequirement() + * @generated + */ + void setObjectiveRequirement(RequirementUsage value); + + /** + * Returns the value of the 'Subject Parameter' reference. + * + * + * + *

The parameter of this CaseUsage that represents its subject.

+ * + * + * @return the value of the 'Subject Parameter' reference. + * @see #setSubjectParameter(Usage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getCaseUsage_SubjectParameter() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='subjectOwningCase'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Usage getSubjectParameter(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.CaseUsage#getSubjectParameter Subject Parameter}' reference. + * + * + * @param value the new value of the 'Subject Parameter' reference. + * @see #getSubjectParameter() + * @generated + */ + void setSubjectParameter(Usage value); + +} // CaseUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Class.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Class.java new file mode 100644 index 000000000..f3028f7ad --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Class.java @@ -0,0 +1,45 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Class'. + * + * + * + *

A Class is a Classifier of things (in the universe) that can be distinguished without regard to how they are related to other things (via Features). This means multiple things classified by the same Class can be distinguished, even when they are related other things in exactly the same way.

+ * + * specializesFromLibrary('Occurrences::Occurrence') + * ownedSpecialization.general-> + * forAll(not oclIsKindOf(DataType)) and + * not oclIsKindOf(Association) implies + * ownedSpecialization.general-> + * forAll(not oclIsKindOf(Association)) + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getClass_() + * @model + * @generated + */ +public interface Class extends Classifier { +} // Class diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Classifier.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Classifier.java new file mode 100644 index 000000000..0d440cf5d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Classifier.java @@ -0,0 +1,75 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Classifier'. + * + * + * + *

A Classifier is a Type that classifies:

+ * + *
    + *
  • Things (in the universe) regardless of how Features relate them. (These are interpreted semantically as sequences of exactly one thing.)
  • + *
  • How the above things are related by Features. (These are interpreted semantically as sequences of multiple things, such that the last thing in the sequence is also classified by the Classifier. Note that this means that a Classifier modeled as specializing a Feature cannot classify anything.)
  • + *
+ * + * + * ownedSubclassification = + * ownedSpecialization->selectByKind(Subclassification) + * multiplicity <> null implies multiplicity.featuringType->isEmpty() + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Classifier#getOwnedSubclassification Owned Subclassification}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getClassifier() + * @model + * @generated + */ +public interface Classifier extends Type { + /** + * Returns the value of the 'Owned Subclassification' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Subclassification}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Subclassification#getOwningClassifier Owning Classifier}'. + * + * + * + *

The ownedSpecializations of this Classifier that are Subclassifications, for which this Classifier is the subclassifier.

+ * + * + * @return the value of the 'Owned Subclassification' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getClassifier_OwnedSubclassification() + * @see org.omg.sysml.model.sysml.Subclassification#getOwningClassifier + * @model opposite="owningClassifier" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedSubclassification(); + +} // Classifier diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CollectExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CollectExpression.java new file mode 100644 index 000000000..53efdbc3f --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CollectExpression.java @@ -0,0 +1,39 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Collect Expression'. + * + * + * + *

A CollectExpression is an OperatorExpression whose operator is "collect", which resolves to the Function ControlFunctions::collect from the Kernel Functions Library.

+ * operator = 'collect' + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getCollectExpression() + * @model + * @generated + */ +public interface CollectExpression extends OperatorExpression { +} // CollectExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Comment.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Comment.java new file mode 100644 index 000000000..e678ff105 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Comment.java @@ -0,0 +1,97 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Comment'. + * + * + * + *

A Comment is an AnnotatingElement whose body in some way describes its annotatedElements.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Comment#getBody Body}
  • + *
  • {@link org.omg.sysml.model.sysml.Comment#getLocale Locale}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getComment() + * @model + * @generated + */ +public interface Comment extends AnnotatingElement { + /** + * Returns the value of the 'Body' attribute. + * + * + * + *

The annotation text for the Comment.

+ * + * + * @return the value of the 'Body' attribute. + * @see #setBody(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getComment_Body() + * @model required="true" ordered="false" + * @generated + */ + String getBody(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Comment#getBody Body}' attribute. + * + * + * @param value the new value of the 'Body' attribute. + * @see #getBody() + * @generated + */ + void setBody(String value); + + /** + * Returns the value of the 'Locale' attribute. + * + * + * + *

Identification of the language of the body text and, optionally, the region and/or encoding. The format shall be a POSIX locale conformant to ISO/IEC 15897, with the format [language[_territory][.codeset][@modifier]].

+ * + * @return the value of the 'Locale' attribute. + * @see #setLocale(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getComment_Locale() + * @model ordered="false" + * @generated + */ + String getLocale(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Comment#getLocale Locale}' attribute. + * + * + * @param value the new value of the 'Locale' attribute. + * @see #getLocale() + * @generated + */ + void setLocale(String value); + +} // Comment diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConcernDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConcernDefinition.java new file mode 100644 index 000000000..f08a7b7b9 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConcernDefinition.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Concern Definition'. + * + * + * + *

A ConcernDefinition is a RequirementDefinition that one or more stakeholders may be interested in having addressed. These stakeholders are identified by the ownedStakeholdersof the ConcernDefinition.

+ * + * specializesFromLibrary('Requirements::ConcernCheck') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConcernDefinition() + * @model + * @generated + */ +public interface ConcernDefinition extends RequirementDefinition { +} // ConcernDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConcernUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConcernUsage.java new file mode 100644 index 000000000..3fc809720 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConcernUsage.java @@ -0,0 +1,79 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Concern Usage'. + * + * + * + *

A ConcernUsage is a Usage of a ConcernDefinition.

+ * + * The ownedStakeholder features of the ConcernUsage shall all subset the ConcernCheck::concernedStakeholders feature. If the ConcernUsage is an ownedFeature of a StakeholderDefinition or StakeholderUsage, then the ConcernUsage shall have an ownedStakeholder feature that is bound to the self feature of its owner.

+ * + * specializesFromLibrary('Requirements::concernChecks') + * owningFeatureMembership <> null and + * owningFeatureMembership.oclIsKindOf(FramedConcernMembership) implies + * specializesFromLibrary('Requirements::RequirementCheck::concerns') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ConcernUsage#getConcernDefinition Concern Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConcernUsage() + * @model + * @generated + */ +public interface ConcernUsage extends RequirementUsage { + /** + * Returns the value of the 'Concern Definition' reference. + * + * + * + *

The ConcernDefinition that is the single type of this ConcernUsage.

+ * + * @return the value of the 'Concern Definition' reference. + * @see #setConcernDefinition(ConcernDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConcernUsage_ConcernDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedConcern'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ConcernDefinition getConcernDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ConcernUsage#getConcernDefinition Concern Definition}' reference. + * + * + * @param value the new value of the 'Concern Definition' reference. + * @see #getConcernDefinition() + * @generated + */ + void setConcernDefinition(ConcernDefinition value); + +} // ConcernUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConjugatedPortDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConjugatedPortDefinition.java new file mode 100644 index 000000000..000a6eaaa --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConjugatedPortDefinition.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Conjugated Port Definition'. + * + * + * + *

A ConjugatedPortDefinition is a PortDefinition that is a PortDefinition of its original PortDefinition. That is, a ConjugatedPortDefinition inherits all the features of the original PortDefinition, but input flows of the original PortDefinition become outputs on the ConjugatedPortDefinition and output flows of the original PortDefinition become inputs on the ConjugatedPortDefinition. Every PortDefinition (that is not itself a ConjugatedPortDefinition) has exactly one corresponding ConjugatedPortDefinition, whose effective name is the name of the originalPortDefinition, with the character ~ prepended.

+ * ownedPortConjugator.originalPortDefinition = originalPortDefinition + * conjugatedPortDefinition = null + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOriginalPortDefinition Original Port Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOwnedPortConjugator Owned Port Conjugator}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConjugatedPortDefinition() + * @model + * @generated + */ +public interface ConjugatedPortDefinition extends PortDefinition { + /** + * Returns the value of the 'Original Port Definition' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.PortDefinition#getConjugatedPortDefinition Conjugated Port Definition}'. + * + * + * + *

The original PortDefinition for this ConjugatedPortDefinition, which is the owningNamespace of the ConjugatedPortDefinition.

+ * + * @return the value of the 'Original Port Definition' reference. + * @see #setOriginalPortDefinition(PortDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConjugatedPortDefinition_OriginalPortDefinition() + * @see org.omg.sysml.model.sysml.PortDefinition#getConjugatedPortDefinition + * @model opposite="conjugatedPortDefinition" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + PortDefinition getOriginalPortDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOriginalPortDefinition Original Port Definition}' reference. + * + * + * @param value the new value of the 'Original Port Definition' reference. + * @see #getOriginalPortDefinition() + * @generated + */ + void setOriginalPortDefinition(PortDefinition value); + + /** + * Returns the value of the 'Owned Port Conjugator' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.PortConjugation#getConjugatedPortDefinition Conjugated Port Definition}'. + * + * + * + *

The PortConjugation that is the ownedConjugator of this ConjugatedPortDefinition, linking it to its originalPortDefinition.

+ * + * @return the value of the 'Owned Port Conjugator' reference. + * @see #setOwnedPortConjugator(PortConjugation) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConjugatedPortDefinition_OwnedPortConjugator() + * @see org.omg.sysml.model.sysml.PortConjugation#getConjugatedPortDefinition + * @model opposite="conjugatedPortDefinition" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + PortConjugation getOwnedPortConjugator(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOwnedPortConjugator Owned Port Conjugator}' reference. + * + * + * @param value the new value of the 'Owned Port Conjugator' reference. + * @see #getOwnedPortConjugator() + * @generated + */ + void setOwnedPortConjugator(PortConjugation value); + +} // ConjugatedPortDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConjugatedPortTyping.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConjugatedPortTyping.java new file mode 100644 index 000000000..24999655d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConjugatedPortTyping.java @@ -0,0 +1,101 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Conjugated Port Typing'. + * + * + * + *

A ConjugatedPortTyping is a FeatureTyping whose type is a ConjugatedPortDefinition. (This relationship is intended to be an abstract-syntax marker for a special surface notation for conjugated typing of ports.)

+ * portDefinition = conjugatedPortDefinition.originalPortDefinition + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ConjugatedPortTyping#getConjugatedPortDefinition Conjugated Port Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.ConjugatedPortTyping#getPortDefinition Port Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConjugatedPortTyping() + * @model + * @generated + */ +public interface ConjugatedPortTyping extends FeatureTyping { + /** + * Returns the value of the 'Conjugated Port Definition' reference. + * + * + * + *

The type of this ConjugatedPortTyping considered as a FeatureTyping, which must be a ConjugatedPortDefinition.

+ * + * + * @return the value of the 'Conjugated Port Definition' reference. + * @see #setConjugatedPortDefinition(ConjugatedPortDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConjugatedPortTyping_ConjugatedPortDefinition() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typingByConjugatedPort'" + * annotation="redefines" + * @generated + */ + ConjugatedPortDefinition getConjugatedPortDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ConjugatedPortTyping#getConjugatedPortDefinition Conjugated Port Definition}' reference. + * + * + * @param value the new value of the 'Conjugated Port Definition' reference. + * @see #getConjugatedPortDefinition() + * @generated + */ + void setConjugatedPortDefinition(ConjugatedPortDefinition value); + + /** + * Returns the value of the 'Port Definition' reference. + * + * + * + *

The originalPortDefinition of the conjugatedPortDefinition of this ConjugatedPortTyping.

+ * + * @return the value of the 'Port Definition' reference. + * @see #setPortDefinition(PortDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConjugatedPortTyping_PortDefinition() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='conjugatedPortTyping'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + PortDefinition getPortDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ConjugatedPortTyping#getPortDefinition Port Definition}' reference. + * + * + * @param value the new value of the 'Port Definition' reference. + * @see #getPortDefinition() + * @generated + */ + void setPortDefinition(PortDefinition value); + +} // ConjugatedPortTyping diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Conjugation.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Conjugation.java new file mode 100644 index 000000000..726779506 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Conjugation.java @@ -0,0 +1,135 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Conjugation'. + * + * + * + *

Conjugation is a Relationship between two types in which the conjugatedType inherits all the Features of the originalType, but with all input and output Features reversed. That is, any Features with a direction in relative to the originalType are considered to have an effective direction of out relative to the conjugatedType and, similarly, Features with direction out in the originalType are considered to have an effective direction of in in the conjugatedType. Features with direction inout, or with no direction, in the originalType, are inherited without change.

+ * + *

A Type may participate as a conjugatedType in at most one Conjugation relationship, and such a Type may not also be the specific Type in any Specialization relationship.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Conjugation#getConjugatedType Conjugated Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Conjugation#getOriginalType Original Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Conjugation#getOwningType Owning Type}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConjugation() + * @model + * @generated + */ +public interface Conjugation extends Relationship { + /** + * Returns the value of the 'Conjugated Type' reference. + * + * + * + *

The Type that is the result of applying Conjugation to the originalType.

+ * + * + * @return the value of the 'Conjugated Type' reference. + * @see #setConjugatedType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConjugation_ConjugatedType() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='conjugator'" + * annotation="redefines" + * @generated + */ + Type getConjugatedType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Conjugation#getConjugatedType Conjugated Type}' reference. + * + * + * @param value the new value of the 'Conjugated Type' reference. + * @see #getConjugatedType() + * @generated + */ + void setConjugatedType(Type value); + + /** + * Returns the value of the 'Original Type' reference. + * + * + * + *

The Type to be conjugated.

+ * + * + * @return the value of the 'Original Type' reference. + * @see #setOriginalType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConjugation_OriginalType() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='conjugation'" + * annotation="redefines" + * @generated + */ + Type getOriginalType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Conjugation#getOriginalType Original Type}' reference. + * + * + * @param value the new value of the 'Original Type' reference. + * @see #getOriginalType() + * @generated + */ + void setOriginalType(Type value); + + /** + * Returns the value of the 'Owning Type' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Type#getOwnedConjugator Owned Conjugator}'. + * + * + * + *

The conjugatedType of this Conjugation that is also its owningRelatedElement.

+ * + * + * @return the value of the 'Owning Type' reference. + * @see #setOwningType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConjugation_OwningType() + * @see org.omg.sysml.model.sysml.Type#getOwnedConjugator + * @model opposite="ownedConjugator" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getOwningType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Conjugation#getOwningType Owning Type}' reference. + * + * + * @param value the new value of the 'Owning Type' reference. + * @see #getOwningType() + * @generated + */ + void setOwningType(Type value); + +} // Conjugation diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConnectionDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConnectionDefinition.java new file mode 100644 index 000000000..d46ac2c4c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConnectionDefinition.java @@ -0,0 +1,67 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Connection Definition'. + * + * + * + *

A ConnectionDefinition is a PartDefinition that is also an AssociationStructure. The end Features of a ConnectionDefinition must be Usages.

+ * specializesFromLibrary('Connections::Connection') + * ownedEndFeature->size() = 2 implies + * specializesFromLibrary('Connections::BinaryConnections') + * isSufficient + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ConnectionDefinition#getConnectionEnd Connection End}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnectionDefinition() + * @model + * @generated + */ +public interface ConnectionDefinition extends PartDefinition, AssociationStructure { + /** + * Returns the value of the 'Connection End' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Usage}. + * + * + * + *

The Usages that define the things related by the ConnectionDefinition.

+ * + * @return the value of the 'Connection End' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnectionDefinition_ConnectionEnd() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='connectionDefinitionWithEnd'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getConnectionEnd(); + +} // ConnectionDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConnectionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConnectionUsage.java new file mode 100644 index 000000000..b1c69f797 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConnectionUsage.java @@ -0,0 +1,67 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Connection Usage'. + * + * + * + *

A ConnectionUsage is a ConnectorAsUsage that is also a PartUsage. Nominally, if its type is a ConnectionDefinition, then a ConnectionUsage is a Usage of that ConnectionDefinition, representing a connection between parts of a system. However, other kinds of kernel AssociationStructures are also allowed, to permit use of AssociationStructures from the Kernel Model Libraries.

+ * specializesFromLibrary('Connections::connections') + * ownedEndFeature->size() = 2 implies + * specializesFromLibrary('Connections::binaryConnections') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ConnectionUsage#getConnectionDefinition Connection Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnectionUsage() + * @model + * @generated + */ +public interface ConnectionUsage extends ConnectorAsUsage, PartUsage { + /** + * Returns the value of the 'Connection Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.AssociationStructure}. + * + * + * + *

The AssociationStructures that are the types of this ConnectionUsage. Nominally, these are , but other kinds of Kernel AssociationStructures are also allowed, to permit use of AssociationStructures from the Kernel Model Libraries

+ * + * @return the value of the 'Connection Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnectionUsage_ConnectionDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedConnection'" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getConnectionDefinition(); + +} // ConnectionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Connector.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Connector.java new file mode 100644 index 000000000..4816d411e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Connector.java @@ -0,0 +1,222 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Connector'. + * + * + * + *

A Connector is a usage of Associations, with links restricted according to instances of the Type in which they are used (domain of the Connector). The associations of the Connector restrict what kinds of things might be linked. The Connector further restricts these links to be between values of Features on instances of its domain.

+ * + * relatedFeature = connectorEnd.ownedReferenceSubsetting-> + * select(s | s <> null).subsettedFeature + * relatedFeature->forAll(f | + * if featuringType->isEmpty() then f.isFeaturedWithin(null) + * else featuringType->forAll(t | f.isFeaturedWithin(t)) + * endif) + * sourceFeature = + * if relatedFeature->isEmpty() then null + * else relatedFeature->first() + * endif + * targetFeature = + * if relatedFeature->size() < 2 then OrderedSet{} + * else + * relatedFeature-> + * subSequence(2, relatedFeature->size())-> + * asOrderedSet() + * endif + * not isAbstract implies relatedFeature->size() >= 2 + * specializesFromLibrary('Links::links') + * association->exists(oclIsKindOf(AssociationStructure)) implies + * specializesFromLibrary('Objects::linkObjects') + * connectorEnds->size() = 2 and + * association->exists(oclIsKindOf(AssociationStructure)) implies + * specializesFromLibrary('Objects::binaryLinkObjects') + * connectorEnd->size() = 2 implies + * specializesFromLibrary('Links::binaryLinks') + * connectorEnds->size() > 2 implies + * not specializesFromLibrary('Links::BinaryLink') + * let commonFeaturingTypes : OrderedSet(Type) = + * relatedFeature->closure(featuringType)->select(t | + * relatedFeature->forAll(f | f.isFeaturedWithin(t)) + * ) in + * let nearestCommonFeaturingTypes : OrderedSet(Type) = + * commonFeaturingTypes->reject(t1 | + * commonFeaturingTypes->exists(t2 | + * t2 <> t1 and t2->closure(featuringType)->contains(t1) + * )) in + * if nearestCommonFeaturingTypes->isEmpty() then null + * else nearestCommonFeaturingTypes->first() + * endif + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Connector#getAssociation Association}
  • + *
  • {@link org.omg.sysml.model.sysml.Connector#getConnectorEnd Connector End}
  • + *
  • {@link org.omg.sysml.model.sysml.Connector#getDefaultFeaturingType Default Featuring Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Connector#getRelatedFeature Related Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Connector#getSourceFeature Source Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Connector#getTargetFeature Target Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnector() + * @model + * @generated + */ +public interface Connector extends Feature, Relationship { + /** + * Returns the value of the 'Association' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Association}. + * + * + * + *

The Associations that type the Connector.

+ * + * + * @return the value of the 'Association' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnector_Association() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typedConnector'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getAssociation(); + + /** + * Returns the value of the 'Connector End' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

The endFeatures of a Connector, which redefine the endFeatures of the associations of the Connector. The connectorEnds determine via ReferenceSubsetting Relationships which Features are related by the Connector.

+ * + * @return the value of the 'Connector End' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnector_ConnectorEnd() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringConnector'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getConnectorEnd(); + + /** + * Returns the value of the 'Default Featuring Type' reference. + * + * + * + *

The innermost Type that is a common direct or indirect featuringType of the relatedFeatures, such that, if it exists and was the featuringType of this Connector, the Connector would satisfy the checkConnectorTypeFeaturing constraint.

+ * + * @return the value of the 'Default Featuring Type' reference. + * @see #setDefaultFeaturingType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnector_DefaultFeaturingType() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuredConnector'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getDefaultFeaturingType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Connector#getDefaultFeaturingType Default Featuring Type}' reference. + * + * + * @param value the new value of the 'Default Featuring Type' reference. + * @see #getDefaultFeaturingType() + * @generated + */ + void setDefaultFeaturingType(Type value); + + /** + * Returns the value of the 'Related Feature' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

The Features that are related by this Connector considered as a Relationship and that restrict the links it identifies, given by the referenced Features of the connectorEnds of the Connector.

+ * + * + * @return the value of the 'Related Feature' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnector_RelatedFeature() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='connector'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getRelatedFeature(); + + /** + * Returns the value of the 'Source Feature' reference. + * + * + * + *

The source relatedFeature for this Connector. It is the first relatedFeature.

+ * + * @return the value of the 'Source Feature' reference. + * @see #setSourceFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnector_SourceFeature() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='sourceConnector'" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getSourceFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Connector#getSourceFeature Source Feature}' reference. + * + * + * @param value the new value of the 'Source Feature' reference. + * @see #getSourceFeature() + * @generated + */ + void setSourceFeature(Feature value); + + /** + * Returns the value of the 'Target Feature' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

The target relatedFeatures for this Connector. This includes all the relatedFeatures other than the sourceFeature.

+ * + * @return the value of the 'Target Feature' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnector_TargetFeature() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='targetConnector'" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getTargetFeature(); + +} // Connector diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConnectorAsUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConnectorAsUsage.java new file mode 100644 index 000000000..b8ca92161 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConnectorAsUsage.java @@ -0,0 +1,38 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Connector As Usage'. + * + * + * + *

A ConnectorAsUsage is both a Connector and a Usage. ConnectorAsUsage cannot itself be instantiated in a SysML model, but it is a base class for the concrete classes BindingConnectorAsUsage, SuccessionAsUsage, ConnectionUsage and FlowConnectionUsage.

+ * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConnectorAsUsage() + * @model abstract="true" + * @generated + */ +public interface ConnectorAsUsage extends Usage, Connector { +} // ConnectorAsUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConstraintDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConstraintDefinition.java new file mode 100644 index 000000000..3b8ad1bd1 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConstraintDefinition.java @@ -0,0 +1,41 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Constraint Definition'. + * + * + * + *

A ConstraintDefinition is an OccurrenceDefinition that is also a Predicate that defines a constraint that may be asserted to hold on a system or part of a system.

+ * + * + * specializesFromLibrary('Constraints::ConstraintCheck') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConstraintDefinition() + * @model + * @generated + */ +public interface ConstraintDefinition extends OccurrenceDefinition, Predicate { +} // ConstraintDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConstraintUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConstraintUsage.java new file mode 100644 index 000000000..1e6f94cc2 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConstraintUsage.java @@ -0,0 +1,85 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Constraint Usage'. + * + * + * + *

A ConstraintUsage is an OccurrenceUsage that is also a BooleanExpression, and, so, is typed by a Predicate. Nominally, if the type is a ConstraintDefinition, a ConstraintUsage is a Usage of that ConstraintDefinition. However, other kinds of kernel Predicates are also allowed, to permit use of Predicates from the Kernel Model Libraries.

+ * owningFeatureMembership <> null and + * owningFeatureMembership.oclIsKindOf(RequirementConstraintMembership) implies + * if owningFeatureMembership.oclAsType(RequirementConstraintMembership).kind = + * RequirementConstraintKind::assumption then + * specializesFromLibrary('Requirements::RequirementCheck::assumptions') + * else + * specializesFromLibrary('Requirements::RequirementCheck::constraints') + * endif + * specializesFromLibrary('Constraints::constraintChecks') + * owningType <> null and + * (owningType.oclIsKindOf(ItemDefinition) or + * owningType.oclIsKindOf(ItemUsage)) implies + * specializesFromLibrary('Items::Item::checkedConstraints') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ConstraintUsage#getConstraintDefinition Constraint Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConstraintUsage() + * @model + * @generated + */ +public interface ConstraintUsage extends OccurrenceUsage, BooleanExpression { + /** + * Returns the value of the 'Constraint Definition' reference. + * + * + * + *

The (single) Predicate that is the type of this ConstraintUsage. Nominally, this will be a ConstraintDefinition, but other kinds of Predicates are also allowed, to permit use of Predicates from the Kernel Model Libraries.

+ * + * @return the value of the 'Constraint Definition' reference. + * @see #setConstraintDefinition(Predicate) + * @see org.omg.sysml.model.sysml.SysMLPackage#getConstraintUsage_ConstraintDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedConstraint'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Predicate getConstraintDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ConstraintUsage#getConstraintDefinition Constraint Definition}' reference. + * + * + * @param value the new value of the 'Constraint Definition' reference. + * @see #getConstraintDefinition() + * @generated + */ + void setConstraintDefinition(Predicate value); + +} // ConstraintUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConstructorExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConstructorExpression.java new file mode 100644 index 000000000..9b4a7bc47 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ConstructorExpression.java @@ -0,0 +1,58 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Constructor Expression'. + * + * + * + *

A ConstructorExpression is an InstantiationExpression whose result specializes its instantiatedType, binding some or all of the features of the instantiatedType to the results of its argument Expressions.

+ * instantiatedType.feature->collect(f | + * result.ownedFeatures->select(redefines(f)).valuation-> + * select(v | v <> null).value + * ) + * let features : OrderedSet(Feature) = instantiatedType.feature-> + * select(visibility = VisibilityKind::public) in + * result.ownedFeature->forAll(f1 | result.ownedFeature->forAll(f2 | + * f1 <> f2 implies + * f1.ownedRedefinition.redefinedFeature-> + * intersection(f2.ownedRedefinition.redefinedFeature)-> + * intersection(features)->isEmpty())) + * let features : OrderedSet(Feature) = instantiatedType.feature-> + * select(owningMembership.visibility = VisibilityKind::public) in + * result.ownedFeature->forAll(f | + * f.ownedRedefinition.redefinedFeature-> + * intersection(features)->size() = 1) + * TBD + * specializes('Performances::constructorEvaluations') + * result.specializes(instantiatedType) + * ownedFeatures->excluding(result)->isEmpty() + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getConstructorExpression() + * @model + * @generated + */ +public interface ConstructorExpression extends InstantiationExpression { +} // ConstructorExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ControlNode.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ControlNode.java new file mode 100644 index 000000000..1a077a861 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ControlNode.java @@ -0,0 +1,72 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Control Node'. + * + * + * + *

A ControlNode is an ActionUsage that does not have any inherent behavior but provides constraints on incoming and outgoing Successions that are used to control other Actions. A ControlNode must be a composite owned usage of an ActionDefinition or ActionUsage.

+ * + * sourceConnector->selectByKind(Succession)-> + * collect(connectorEnd->at(1).multiplicity)-> + * forAll(sourceMult | + * multiplicityHasBounds(sourceMult, 1, 1)) + * owningType <> null and + * (owningType.oclIsKindOf(ActionDefinition) or + * owningType.oclIsKindOf(ActionUsage)) + * targetConnector->selectByKind(Succession)-> + * collect(connectorEnd->at(2).multiplicity)-> + * forAll(targetMult | + * multiplicityHasBounds(targetMult, 1, 1)) + * specializesFromLibrary('Action::Action::controls') + * isComposite + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getControlNode() + * @model abstract="true" + * @generated + */ +public interface ControlNode extends ActionUsage { + /** + * + * + * + *

Check that the given Multiplicity has lowerBound and upperBound expressions that are model-level evaluable to the given lower and upper values.

+ * mult <> null and + * if mult.oclIsKindOf(MultiplicityRange) then + * mult.oclAsType(MultiplicityRange).hasBounds(lower, upper) + * else + * mult.allSuperTypes()->exists( + * oclisKindOf(MultiplicityRange) and + * oclAsType(MultiplicityRange).hasBounds(lower, upper) + * endif + * + * @model required="true" ordered="false" multRequired="true" multOrdered="false" lowerRequired="true" lowerOrdered="false" upperRequired="true" upperOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean multiplicityHasBounds(Multiplicity mult, int lower, int upper); + +} // ControlNode diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CrossSubsetting.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CrossSubsetting.java new file mode 100644 index 000000000..c250f0e37 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/CrossSubsetting.java @@ -0,0 +1,115 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Cross Subsetting'. + * + * + * + *

CrossSubsetting is a kind of Subsetting for end Features, as identified by crossingFeature, to subset a chained Feature, identified by crossedFeature. It navigates to instances of the end Feature’s type from instances of other end Feature types on the same owningType (at least two end Features are required for any of them to have a CrossSubsetting).

+ * + *

The crossedFeature of a CrossSubsetting must have a feature chain of exactly two Features. The second Feature in the chain is the crossFeature of the crossingFeature (end Feature), which has the same type as the crossingFeature. When the owningType of the crossingFeature has exactly two end Features, the first Feature in the chain of the crossedFeature is the other end Feature. The crossFeature’s featuringType in this case is the other end Feature. When the owningType has more than two end Features, the first Feature in the chain is a Feature that CrossMultiplies all the other end Features, which is also the featuringType of the crossFeature.

+ * + *

A crossFeature must be owned by its featureCrossing (end Feature) when the featureCrossing owningType has more than two end Features. Otherwise, for exactly two end Features, the crossFeatures of each the ends can instead optionally be inherited by the other end from one of its types or a subsetted Feature.

+ * crossingFeature.isEnd and crossingFeature.owningType <> null implies + * let endFeatures: Sequence(Feature) = crossingFeature.owningType.endFeature in + * let chainingFeatures: Sequence(Feature) = crossedFeature.chainingFeature in + * chainingFeatures->size() = 2 and + * endFeatures->size() = 2 implies + * chainingFeatures->at(1) = endFeatures->excluding(crossingFeature)->at(1) + * crossingFeature.isEnd and + * crossingFeature.owningType<>null and + * crossingFeature.owningType.endFeature ->size() > 1 + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.CrossSubsetting#getCrossedFeature Crossed Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.CrossSubsetting#getCrossingFeature Crossing Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getCrossSubsetting() + * @model + * @generated + */ +public interface CrossSubsetting extends Subsetting { + /** + * Returns the value of the 'Crossed Feature' reference. + * + * + * + *

The chained Feature that is cross subset by the crossingFeature of this CrossSubsetting.

+ * + * + * @return the value of the 'Crossed Feature' reference. + * @see #setCrossedFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getCrossSubsetting_CrossedFeature() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='crossSupersetting'" + * annotation="redefines" + * @generated + */ + Feature getCrossedFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.CrossSubsetting#getCrossedFeature Crossed Feature}' reference. + * + * + * @param value the new value of the 'Crossed Feature' reference. + * @see #getCrossedFeature() + * @generated + */ + void setCrossedFeature(Feature value); + + /** + * Returns the value of the 'Crossing Feature' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Feature#getOwnedCrossSubsetting Owned Cross Subsetting}'. + * + * + * + *

The end Feature that owns this CrossSubsetting relationship and is also its subsettingFeature.

+ * + * @return the value of the 'Crossing Feature' reference. + * @see #setCrossingFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getCrossSubsetting_CrossingFeature() + * @see org.omg.sysml.model.sysml.Feature#getOwnedCrossSubsetting + * @model opposite="ownedCrossSubsetting" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getCrossingFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.CrossSubsetting#getCrossingFeature Crossing Feature}' reference. + * + * + * @param value the new value of the 'Crossing Feature' reference. + * @see #getCrossingFeature() + * @generated + */ + void setCrossingFeature(Feature value); + +} // CrossSubsetting diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/DataType.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/DataType.java new file mode 100644 index 000000000..1104a9de7 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/DataType.java @@ -0,0 +1,48 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Data Type'. + * + * + * + *

A DataType is a Classifier of things (in the universe) that can only be distinguished by how they are related to other things (via Features). This means multiple things classified by the same DataType

+ * + *
    + *
  • Cannot be distinguished when they are related to other things in exactly the same way, even when they are intended to be about different things.
  • + *
  • Can be distinguished when they are related to other things in different ways, even when they are intended to be about the same thing.
  • + *
+ * + * ownedSpecialization.general-> + * forAll(not oclIsKindOf(Class) and + * not oclIsKindOf(Association)) + * specializesFromLibrary('Base::DataValue') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getDataType() + * @model + * @generated + */ +public interface DataType extends Classifier { +} // DataType diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/DecisionNode.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/DecisionNode.java new file mode 100644 index 000000000..b8f791b9e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/DecisionNode.java @@ -0,0 +1,47 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Decision Node'. + * + * + * + *

A DecisionNode is a ControlNode that makes a selection from its outgoing Successions.

+ * targetConnector->selectByKind(Succession)->size() <= 1 + * sourceConnector->selectAsKind(Succession)-> + * collect(connectorEnd->at(2))-> + * forAll(targetMult | + * multiplicityHasBounds(targetMult, 0, 1)) + * specializesFromLibrary('Actions::Action::decisions') + * sourceConnector->selectByKind(Succession)-> + * forAll(subsetsChain(self, + * resolveGlobal('ControlPerformances::MergePerformance::outgoingHBLink'))) + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getDecisionNode() + * @model + * @generated + */ +public interface DecisionNode extends ControlNode { +} // DecisionNode diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Definition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Definition.java new file mode 100644 index 000000000..31004096a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Definition.java @@ -0,0 +1,704 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Definition'. + * + * + * + *

A Definition is a Classifier of Usages. The actual kinds of Definition that may appear in a model are given by the subclasses of Definition (possibly as extended with user-defined SemanticMetadata).

+ * + *

Normally, a Definition has owned Usages that model features of the thing being defined. A Definition may also have other Definitions nested in it, but this has no semantic significance, other than the nested scoping resulting from the Definition being considered as a Namespace for any nested Definitions.

+ * + *

However, if a Definition has isVariation = true, then it represents a variation point Definition. In this case, all of its members must be variant Usages, related to the Definition by VariantMembership Relationships. Rather than being features of the Definition, variant Usages model different concrete alternatives that can be chosen to fill in for an abstract Usage of the variation point Definition.

+ * + * isVariation implies ownedFeatureMembership->isEmpty() + * variant = variantMembership.ownedVariantUsage + * variantMembership = ownedMembership->selectByKind(VariantMembership) + * isVariation implies + * not ownedSpecialization.specific->exists( + * oclIsKindOf(Definition) and + * oclAsType(Definition).isVariation) + * usage = feature->selectByKind(Usage) + * directedUsage = directedFeature->selectByKind(Usage) + * ownedUsage = ownedFeature->selectByKind(Usage) + * ownedAttribute = ownedUsage->selectByKind(AttributeUsage) + * ownedReference = ownedUsage->selectByKind(ReferenceUsage) + * ownedEnumeration = ownedUsage->selectByKind(EnumerationUsage) + * ownedOccurrence = ownedUsage->selectByKind(OccurrenceUsage) + * ownedItem = ownedUsage->selectByKind(ItemUsage) + * ownedPart = ownedUsage->selectByKind(PartUsage) + * ownedPort = ownedUsage->selectByKind(PortUsage) + * ownedConnection = ownedUsage->selectByKind(ConnectorAsUsage) + * ownedFlow = ownedUsage->selectByKind(FlowConnectionUsage) + * ownedInterface = ownedUsage->selectByKind(ReferenceUsage) + * ownedAllocation = ownedUsage->selectByKind(AllocationUsage) + * ownedAction = ownedUsage->selectByKind(ActionUsage) + * ownedState = ownedUsage->selectByKind(StateUsage) + * ownedTransition = ownedUsage->selectByKind(TransitionUsage) + * ownedCalculation = ownedUsage->selectByKind(CalculationUsage) + * ownedConstraint = ownedUsage->selectByKind(ConstraintUsage) + * ownedRequirement = ownedUsage->selectByKind(RequirementUsage) + * ownedConcern = ownedUsage->selectByKind(ConcernUsage) + * ownedCase = ownedUsage->selectByKind(CaseUsage) + * ownedAnalysisCase = ownedUsage->selectByKind(AnalysisCaseUsage) + * ownedVerificationCase = ownedUsage->selectByKind(VerificationCaseUsage) + * ownedUseCase = ownedUsage->selectByKind(UseCaseUsage) + * ownedView = ownedUsage->selectByKind(ViewUsage) + * ownedViewpoint = ownedUsage->selectByKind(ViewpointUsage) + * ownedRendering = ownedUsage->selectByKind(RenderingUsage) + * ownedMetadata = ownedUsage->selectByKind(MetadataUsage) + * isVariation implies isAbstract + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Definition#isIsVariation Is Variation}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getDirectedUsage Directed Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedAction Owned Action}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedAllocation Owned Allocation}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedAnalysisCase Owned Analysis Case}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedAttribute Owned Attribute}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedCalculation Owned Calculation}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedCase Owned Case}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedConcern Owned Concern}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedConnection Owned Connection}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedConstraint Owned Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedEnumeration Owned Enumeration}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedFlow Owned Flow}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedInterface Owned Interface}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedItem Owned Item}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedMetadata Owned Metadata}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedOccurrence Owned Occurrence}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedPart Owned Part}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedPort Owned Port}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedReference Owned Reference}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedRendering Owned Rendering}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedRequirement Owned Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedState Owned State}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedTransition Owned Transition}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedUsage Owned Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedUseCase Owned Use Case}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedVerificationCase Owned Verification Case}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedView Owned View}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getOwnedViewpoint Owned Viewpoint}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getUsage Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getVariant Variant}
  • + *
  • {@link org.omg.sysml.model.sysml.Definition#getVariantMembership Variant Membership}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition() + * @model + * @generated + */ +public interface Definition extends Classifier { + /** + * Returns the value of the 'Is Variation' attribute. + * + * + * + *

Whether this Definition is for a variation point or not. If true, then all the memberships of the Definition must be VariantMemberships.

+ * + * @return the value of the 'Is Variation' attribute. + * @see #setIsVariation(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_IsVariation() + * @model required="true" ordered="false" + * @generated + */ + boolean isIsVariation(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Definition#isIsVariation Is Variation}' attribute. + * + * + * @param value the new value of the 'Is Variation' attribute. + * @see #isIsVariation() + * @generated + */ + void setIsVariation(boolean value); + + /** + * Returns the value of the 'Directed Usage' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Usage}. + * + * + * + *

The usages of this Definition that are directedFeatures.

+ * + * + * @return the value of the 'Directed Usage' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_DirectedUsage() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definitionWithDirectedUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getDirectedUsage(); + + /** + * Returns the value of the 'Owned Action' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ActionUsage}. + * + * + * + *

The ActionUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Action' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedAction() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='actionOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedAction(); + + /** + * Returns the value of the 'Owned Allocation' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.AllocationUsage}. + * + * + * + *

The AllocationUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Allocation' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedAllocation() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='allocationOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedAllocation(); + + /** + * Returns the value of the 'Owned Analysis Case' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.AnalysisCaseUsage}. + * + * + * + *

The AnalysisCaseUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Analysis Case' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedAnalysisCase() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='analysisCaseOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedAnalysisCase(); + + /** + * Returns the value of the 'Owned Attribute' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.AttributeUsage}. + * + * + * + *

The AttributeUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Attribute' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedAttribute() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='attributeOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedAttribute(); + + /** + * Returns the value of the 'Owned Calculation' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.CalculationUsage}. + * + * + * + *

The CalculationUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Calculation' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedCalculation() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='calculationOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedCalculation(); + + /** + * Returns the value of the 'Owned Case' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.CaseUsage}. + * + * + * + *

The code>CaseUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Case' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedCase() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='caseOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedCase(); + + /** + * Returns the value of the 'Owned Concern' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConcernUsage}. + * + * + * + *

The ConcernUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Concern' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedConcern() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='concernOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedConcern(); + + /** + * Returns the value of the 'Owned Connection' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConnectorAsUsage}. + * + * + * + *

The ConnectorAsUsages that are ownedUsages of this Definition. Note that this list includes BindingConnectorAsUsages, SuccessionAsUsages, and FlowUsages because these are ConnectorAsUsages even though they are not ConnectionUsages.

+ * + * @return the value of the 'Owned Connection' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedConnection() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='connectionOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedConnection(); + + /** + * Returns the value of the 'Owned Constraint' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConstraintUsage}. + * + * + * + *

The ConstraintUsages that are ownedUsages of this Definition.

+ * + * + * @return the value of the 'Owned Constraint' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedConstraint() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='constraintOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedConstraint(); + + /** + * Returns the value of the 'Owned Enumeration' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.EnumerationUsage}. + * + * + * + *

The EnumerationUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Enumeration' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedEnumeration() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='enumerationOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedEnumeration(); + + /** + * Returns the value of the 'Owned Flow' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.FlowUsage}. + * + * + * + *

The FlowUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Flow' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedFlow() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='flowOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedFlow(); + + /** + * Returns the value of the 'Owned Interface' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.InterfaceUsage}. + * + * + * + *

The InterfaceUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Interface' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedInterface() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='interfaceOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedInterface(); + + /** + * Returns the value of the 'Owned Item' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ItemUsage}. + * + * + * + *

The ItemUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Item' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedItem() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='itemOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedItem(); + + /** + * Returns the value of the 'Owned Metadata' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.MetadataUsage}. + * + * + * + *

The MetadataUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Metadata' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedMetadata() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='metadataOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedMetadata(); + + /** + * Returns the value of the 'Owned Occurrence' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.OccurrenceUsage}. + * + * + * + *

The OccurrenceUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Occurrence' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedOccurrence() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='occurrenceOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedOccurrence(); + + /** + * Returns the value of the 'Owned Part' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartUsage}. + * + * + * + *

The PartUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Part' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedPart() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='partOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedPart(); + + /** + * Returns the value of the 'Owned Port' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PortUsage}. + * + * + * + *

The PortUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Port' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedPort() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='portOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedPort(); + + /** + * Returns the value of the 'Owned Reference' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ReferenceUsage}. + * + * + * + *

The ReferenceUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Reference' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedReference() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='referenceOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedReference(); + + /** + * Returns the value of the 'Owned Rendering' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.RenderingUsage}. + * + * + * + *

The RenderingUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Rendering' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedRendering() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='redenderingOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedRendering(); + + /** + * Returns the value of the 'Owned Requirement' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.RequirementUsage}. + * + * + * + *

The RequirementUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Requirement' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedRequirement() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='requirementOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedRequirement(); + + /** + * Returns the value of the 'Owned State' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.StateUsage}. + * + * + * + *

The StateUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned State' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedState() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='stateOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedState(); + + /** + * Returns the value of the 'Owned Transition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.TransitionUsage}. + * + * + * + *

The TransitionUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Transition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedTransition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='transitionOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedTransition(); + + /** + * Returns the value of the 'Owned Usage' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Usage}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Usage#getOwningDefinition Owning Definition}'. + * + * + * + *

The Usages that are ownedFeatures of this Definition.

+ * + * @return the value of the 'Owned Usage' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedUsage() + * @see org.omg.sysml.model.sysml.Usage#getOwningDefinition + * @model opposite="owningDefinition" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedUsage(); + + /** + * Returns the value of the 'Owned Use Case' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.UseCaseUsage}. + * + * + * + *

The UseCaseUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Use Case' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedUseCase() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='useCaseOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedUseCase(); + + /** + * Returns the value of the 'Owned Verification Case' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.VerificationCaseUsage}. + * + * + * + *

The VerificationCaseUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Verification Case' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedVerificationCase() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='verificationCaseOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedVerificationCase(); + + /** + * Returns the value of the 'Owned View' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ViewUsage}. + * + * + * + *

The ViewUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned View' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedView() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='viewOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedView(); + + /** + * Returns the value of the 'Owned Viewpoint' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ViewpointUsage}. + * + * + * + *

The ViewpointUsages that are ownedUsages of this Definition.

+ * + * @return the value of the 'Owned Viewpoint' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_OwnedViewpoint() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='viewpointOwningDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedViewpoint(); + + /** + * Returns the value of the 'Usage' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Usage}. + * + * + * + *

The Usages that are features of this Definition (not necessarily owned).

+ * + * @return the value of the 'Usage' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_Usage() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getUsage(); + + /** + * Returns the value of the 'Variant' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Usage}. + * + * + * + *

The Usages which represent the variants of this Definition as a variation point Definition, if isVariation = true. If isVariation = false, the there must be no variants.

+ * + * @return the value of the 'Variant' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_Variant() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningVariationDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getVariant(); + + /** + * Returns the value of the 'Variant Membership' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.VariantMembership}. + * + * + * + *

The ownedMemberships of this Definition that are VariantMemberships. If isVariation = true, then this must be all ownedMemberships of the Definition. If isVariation = false, then variantMembershipmust be empty.

+ * + * @return the value of the 'Variant Membership' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDefinition_VariantMembership() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningVariationDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getVariantMembership(); + +} // Definition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Dependency.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Dependency.java new file mode 100644 index 000000000..85ef2bfd5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Dependency.java @@ -0,0 +1,82 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Dependency'. + * + * + * + *

A Dependency is a Relationship that indicates that one or more client Elements require one more supplier Elements for their complete specification. In general, this means that a change to one of the supplier Elements may necessitate a change to, or re-specification of, the client Elements.

+ * + *

Note that a Dependency is entirely a model-level Relationship, without instance-level semantics.

+ * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Dependency#getClient Client}
  • + *
  • {@link org.omg.sysml.model.sysml.Dependency#getSupplier Supplier}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getDependency() + * @model + * @generated + */ +public interface Dependency extends Relationship { + /** + * Returns the value of the 'Client' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * + * + * + *

The Element or Elements dependent on the supplier Elements.

+ * + * @return the value of the 'Client' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDependency_Client() + * @model required="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='clientDependency'" + * annotation="redefines" + * @generated + */ + EList getClient(); + + /** + * Returns the value of the 'Supplier' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * + * + * + *

The Element or Elements on which the client Elements depend in some respect.

+ * + * @return the value of the 'Supplier' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getDependency_Supplier() + * @model required="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='supplierDependency'" + * annotation="redefines" + * @generated + */ + EList getSupplier(); + +} // Dependency diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Differencing.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Differencing.java new file mode 100644 index 000000000..d415805ac --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Differencing.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Differencing'. + * + * + * + *

Differencing is a Relationship that makes its differencingType one of the differencingTypes of its typeDifferenced.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Differencing#getDifferencingType Differencing Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Differencing#getTypeDifferenced Type Differenced}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getDifferencing() + * @model + * @generated + */ +public interface Differencing extends Relationship { + /** + * Returns the value of the 'Differencing Type' reference. + * + * + * + *

Type that partly determines interpretations of typeDifferenced, as described in Type::differencingType.

+ * + * + * @return the value of the 'Differencing Type' reference. + * @see #setDifferencingType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getDifferencing_DifferencingType() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='differencedDifferencing'" + * annotation="redefines" + * @generated + */ + Type getDifferencingType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Differencing#getDifferencingType Differencing Type}' reference. + * + * + * @param value the new value of the 'Differencing Type' reference. + * @see #getDifferencingType() + * @generated + */ + void setDifferencingType(Type value); + + /** + * Returns the value of the 'Type Differenced' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Type#getOwnedDifferencing Owned Differencing}'. + * + * + * + *

Type with interpretations partly determined by differencingType, as described in Type::differencingType.

+ * + * + * @return the value of the 'Type Differenced' reference. + * @see #setTypeDifferenced(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getDifferencing_TypeDifferenced() + * @see org.omg.sysml.model.sysml.Type#getOwnedDifferencing + * @model opposite="ownedDifferencing" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getTypeDifferenced(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Differencing#getTypeDifferenced Type Differenced}' reference. + * + * + * @param value the new value of the 'Type Differenced' reference. + * @see #getTypeDifferenced() + * @generated + */ + void setTypeDifferenced(Type value); + +} // Differencing diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Disjoining.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Disjoining.java new file mode 100644 index 000000000..ab8ae9963 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Disjoining.java @@ -0,0 +1,132 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Disjoining'. + * + * + * + *

A Disjoining is a Relationship between Types asserted to have interpretations that are not shared (disjoint) between them, identified as typeDisjoined and disjoiningType. For example, a Classifier for mammals is disjoint from a Classifier for minerals, and a Feature for people's parents is disjoint from a Feature for their children.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Disjoining#getDisjoiningType Disjoining Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Disjoining#getOwningType Owning Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Disjoining#getTypeDisjoined Type Disjoined}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getDisjoining() + * @model + * @generated + */ +public interface Disjoining extends Relationship { + /** + * Returns the value of the 'Disjoining Type' reference. + * + * + * + *

Type asserted to be disjoint with the typeDisjoined.

+ * + * + * @return the value of the 'Disjoining Type' reference. + * @see #setDisjoiningType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getDisjoining_DisjoiningType() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='disjoinedTypeDisjoining'" + * annotation="redefines" + * @generated + */ + Type getDisjoiningType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Disjoining#getDisjoiningType Disjoining Type}' reference. + * + * + * @param value the new value of the 'Disjoining Type' reference. + * @see #getDisjoiningType() + * @generated + */ + void setDisjoiningType(Type value); + + /** + * Returns the value of the 'Owning Type' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Type#getOwnedDisjoining Owned Disjoining}'. + * + * + * + *

A typeDisjoined that is also an owningRelatedElement.

+ * + * @return the value of the 'Owning Type' reference. + * @see #setOwningType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getDisjoining_OwningType() + * @see org.omg.sysml.model.sysml.Type#getOwnedDisjoining + * @model opposite="ownedDisjoining" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getOwningType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Disjoining#getOwningType Owning Type}' reference. + * + * + * @param value the new value of the 'Owning Type' reference. + * @see #getOwningType() + * @generated + */ + void setOwningType(Type value); + + /** + * Returns the value of the 'Type Disjoined' reference. + * + * + * + *

Type asserted to be disjoint with the disjoiningType.

+ * + * + * @return the value of the 'Type Disjoined' reference. + * @see #setTypeDisjoined(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getDisjoining_TypeDisjoined() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='disjoiningTypeDisjoining'" + * annotation="redefines" + * @generated + */ + Type getTypeDisjoined(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Disjoining#getTypeDisjoined Type Disjoined}' reference. + * + * + * @param value the new value of the 'Type Disjoined' reference. + * @see #getTypeDisjoined() + * @generated + */ + void setTypeDisjoined(Type value); + +} // Disjoining diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Documentation.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Documentation.java new file mode 100644 index 000000000..812fc5d15 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Documentation.java @@ -0,0 +1,76 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Documentation'. + * + * + * + *

Documentation is a Comment that specifically documents a documentedElement, which must be its owner.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Documentation#getDocumentedElement Documented Element}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getDocumentation() + * @model + * @generated + */ +public interface Documentation extends Comment { + /** + * Returns the value of the 'Documented Element' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Element#getDocumentation Documentation}'. + * + * + * + *

The Element that is documented by this Documentation.

+ * + * + * @return the value of the 'Documented Element' reference. + * @see #setDocumentedElement(Element) + * @see org.omg.sysml.model.sysml.SysMLPackage#getDocumentation_DocumentedElement() + * @see org.omg.sysml.model.sysml.Element#getDocumentation + * @model opposite="documentation" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Element getDocumentedElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Documentation#getDocumentedElement Documented Element}' reference. + * + * + * @param value the new value of the 'Documented Element' reference. + * @see #getDocumentedElement() + * @generated + */ + void setDocumentedElement(Element value); + +} // Documentation diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Element.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Element.java new file mode 100644 index 000000000..59a739201 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Element.java @@ -0,0 +1,596 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Element'. + * + * + * + *

An Element is a constituent of a model that is uniquely identified relative to all other Elements. It can have Relationships with other Elements. Some of these Relationships might imply ownership of other Elements, which means that if an Element is deleted from a model, then so are all the Elements that it owns.

+ * + * ownedElement = ownedRelationship.ownedRelatedElement + * owner = owningRelationship.owningRelatedElement + * qualifiedName = + * if owningNamespace = null then null + * else if name <> null and + * owningNamespace.ownedMember-> + * select(m | m.name = name).indexOf(self) <> 1 then null + * else if owningNamespace.owner = null then escapedName() + * else if owningNamespace.qualifiedName = null or + * escapedName() = null then null + * else owningNamespace.qualifiedName + '::' + escapedName() + * endif endif endif endif + * documentation = ownedElement->selectByKind(Documentation) + * ownedAnnotation = ownedRelationship-> + * selectByKind(Annotation)-> + * select(a | a.annotatedElement = self) + * name = effectiveName() + * ownedRelationship->exists(isImplied) implies isImpliedIncluded + * isLibraryElement = libraryNamespace() <> null + * + * shortName = effectiveShortName() + * owningNamespace = + * if owningMembership = null then null + * else owningMembership.membershipOwningNamespace + * endif + * textualRepresentation = ownedElement->selectByKind(TextualRepresentation) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Element#getAliasIds Alias Ids}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getDeclaredName Declared Name}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getDeclaredShortName Declared Short Name}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getElementId Element Id}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#isIsImpliedIncluded Is Implied Included}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#isIsLibraryElement Is Library Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getName Name}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getQualifiedName Qualified Name}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getShortName Short Name}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getDocumentation Documentation}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getOwnedAnnotation Owned Annotation}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getOwnedElement Owned Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getOwnedRelationship Owned Relationship}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getOwner Owner}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getOwningMembership Owning Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getOwningNamespace Owning Namespace}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getOwningRelationship Owning Relationship}
  • + *
  • {@link org.omg.sysml.model.sysml.Element#getTextualRepresentation Textual Representation}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement() + * @model abstract="true" + * @generated + */ +public interface Element extends EObject { + /** + * Returns the value of the 'Alias Ids' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * + *

Various alternative identifiers for this Element. Generally, these will be set by tools.

+ * + * @return the value of the 'Alias Ids' attribute list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_AliasIds() + * @model + * @generated + */ + EList getAliasIds(); + + /** + * Returns the value of the 'Declared Name' attribute. + * + * + * + *

The declared name of this Element.

+ * + * + * @return the value of the 'Declared Name' attribute. + * @see #setDeclaredName(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_DeclaredName() + * @model ordered="false" + * @generated + */ + String getDeclaredName(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#getDeclaredName Declared Name}' attribute. + * + * + * @param value the new value of the 'Declared Name' attribute. + * @see #getDeclaredName() + * @generated + */ + void setDeclaredName(String value); + + /** + * Returns the value of the 'Declared Short Name' attribute. + * + * + * + *

An optional alternative name for the Element that is intended to be shorter or in some way more succinct than its primary name. It may act as a modeler-specified identifier for the Element, though it is then the responsibility of the modeler to maintain the uniqueness of this identifier within a model or relative to some other context.

+ * + * + * @return the value of the 'Declared Short Name' attribute. + * @see #setDeclaredShortName(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_DeclaredShortName() + * @model ordered="false" + * @generated + */ + String getDeclaredShortName(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#getDeclaredShortName Declared Short Name}' attribute. + * + * + * @param value the new value of the 'Declared Short Name' attribute. + * @see #getDeclaredShortName() + * @generated + */ + void setDeclaredShortName(String value); + + /** + * Returns the value of the 'Element Id' attribute. + * + * + * + *

The globally unique identifier for this Element. This is intended to be set by tooling, and it must not change during the lifetime of the Element.

+ * + * @return the value of the 'Element Id' attribute. + * @see #setElementId(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_ElementId() + * @model required="true" ordered="false" + * @generated + */ + String getElementId(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#getElementId Element Id}' attribute. + * + * + * @param value the new value of the 'Element Id' attribute. + * @see #getElementId() + * @generated + */ + void setElementId(String value); + + /** + * Returns the value of the 'Is Implied Included' attribute. + * The default value is "false". + * + * + * + *

Whether all necessary implied Relationships have been included in the ownedRelationships of this Element. This property may be true, even if there are not actually any ownedRelationships with isImplied = true, meaning that no such Relationships are actually implied for this Element. However, if it is false, then ownedRelationships may not contain any implied Relationships. That is, either all required implied Relationships must be included, or none of them.

+ * + * @return the value of the 'Is Implied Included' attribute. + * @see #setIsImpliedIncluded(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_IsImpliedIncluded() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsImpliedIncluded(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#isIsImpliedIncluded Is Implied Included}' attribute. + * + * + * @param value the new value of the 'Is Implied Included' attribute. + * @see #isIsImpliedIncluded() + * @generated + */ + void setIsImpliedIncluded(boolean value); + + /** + * Returns the value of the 'Is Library Element' attribute. + * + * + * + *

Whether this Element is contained in the ownership tree of a library model.

+ * + * @return the value of the 'Is Library Element' attribute. + * @see #setIsLibraryElement(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_IsLibraryElement() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isIsLibraryElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#isIsLibraryElement Is Library Element}' attribute. + * + * + * @param value the new value of the 'Is Library Element' attribute. + * @see #isIsLibraryElement() + * @generated + */ + void setIsLibraryElement(boolean value); + + /** + * Returns the value of the 'Name' attribute. + * + * + * + *

The name to be used for this Element during name resolution within its owningNamespace. This is derived using the effectiveName() operation. By default, it is the same as the declaredName, but this is overridden for certain kinds of Elements to compute a name even when the declaredName is null.

+ * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_Name() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Qualified Name' attribute. + * + * + * + *

The full ownership-qualified name of this Element, represented in a form that is valid according to the KerML textual concrete syntax for qualified names (including use of unrestricted name notation and escaped characters, as necessary). The qualifiedName is null if this Element has no owningNamespace or if there is not a complete ownership chain of named Namespaces from a root Namespace to this Element. If the owningNamespace has other Elements with the same name as this one, then the qualifiedName is null for all such Elements other than the first.

+ * + * @return the value of the 'Qualified Name' attribute. + * @see #setQualifiedName(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_QualifiedName() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String getQualifiedName(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#getQualifiedName Qualified Name}' attribute. + * + * + * @param value the new value of the 'Qualified Name' attribute. + * @see #getQualifiedName() + * @generated + */ + void setQualifiedName(String value); + + /** + * Returns the value of the 'Short Name' attribute. + * + * + * + *

The short name to be used for this Element during name resolution within its owningNamespace. This is derived using the effectiveShortName() operation. By default, it is the same as the declaredShortName, but this is overridden for certain kinds of Elements to compute a shortName even when the declaredName is null.

+ * + * @return the value of the 'Short Name' attribute. + * @see #setShortName(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_ShortName() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String getShortName(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#getShortName Short Name}' attribute. + * + * + * @param value the new value of the 'Short Name' attribute. + * @see #getShortName() + * @generated + */ + void setShortName(String value); + + /** + * Returns the value of the 'Documentation' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Documentation}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Documentation#getDocumentedElement Documented Element}'. + * + * + * + *

The Documentation owned by this Element.

+ * + * @return the value of the 'Documentation' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_Documentation() + * @see org.omg.sysml.model.sysml.Documentation#getDocumentedElement + * @model opposite="documentedElement" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getDocumentation(); + + /** + * Returns the value of the 'Owned Annotation' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Annotation}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Annotation#getOwningAnnotatedElement Owning Annotated Element}'. + * + * + * + *

The ownedRelationships of this Element that are Annotations, for which this Element is the annotatedElement. + * + * @return the value of the 'Owned Annotation' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_OwnedAnnotation() + * @see org.omg.sysml.model.sysml.Annotation#getOwningAnnotatedElement + * @model opposite="owningAnnotatedElement" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedAnnotation(); + + /** + * Returns the value of the 'Owned Element' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Element#getOwner Owner}'. + * + * + * + *

The Elements owned by this Element, derived as the ownedRelatedElements of the ownedRelationships of this Element.

+ * + * + * @return the value of the 'Owned Element' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_OwnedElement() + * @see org.omg.sysml.model.sysml.Element#getOwner + * @model opposite="owner" transient="true" volatile="true" derived="true" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedElement(); + + /** + * Returns the value of the 'Owned Relationship' containment reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Relationship}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Relationship#getOwningRelatedElement Owning Related Element}'. + * + * + * + *

The Relationships for which this Element is the owningRelatedElement.

+ * + * @return the value of the 'Owned Relationship' containment reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_OwnedRelationship() + * @see org.omg.sysml.model.sysml.Relationship#getOwningRelatedElement + * @model opposite="owningRelatedElement" containment="true" + * @generated + */ + EList getOwnedRelationship(); + + /** + * Returns the value of the 'Owner' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Element#getOwnedElement Owned Element}'. + * + * + * + *

The owner of this Element, derived as the owningRelatedElement of the owningRelationship of this Element, if any.

+ * + * @return the value of the 'Owner' reference. + * @see #setOwner(Element) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_Owner() + * @see org.omg.sysml.model.sysml.Element#getOwnedElement + * @model opposite="ownedElement" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Element getOwner(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#getOwner Owner}' reference. + * + * + * @param value the new value of the 'Owner' reference. + * @see #getOwner() + * @generated + */ + void setOwner(Element value); + + /** + * Returns the value of the 'Owning Membership' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberElement Owned Member Element}'. + * + * + * + *

The owningRelationship of this Element, if that Relationship is a Membership.

+ * + * + * @return the value of the 'Owning Membership' reference. + * @see #setOwningMembership(OwningMembership) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_OwningMembership() + * @see org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberElement + * @model opposite="ownedMemberElement" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + OwningMembership getOwningMembership(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#getOwningMembership Owning Membership}' reference. + * + * + * @param value the new value of the 'Owning Membership' reference. + * @see #getOwningMembership() + * @generated + */ + void setOwningMembership(OwningMembership value); + + /** + * Returns the value of the 'Owning Namespace' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Namespace#getOwnedMember Owned Member}'. + * + * + * + *

The Namespace that owns this Element, which is the membershipOwningNamespace of the owningMembership of this Element, if any.

+ * + * + * @return the value of the 'Owning Namespace' reference. + * @see #setOwningNamespace(Namespace) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_OwningNamespace() + * @see org.omg.sysml.model.sysml.Namespace#getOwnedMember + * @model opposite="ownedMember" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Namespace getOwningNamespace(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#getOwningNamespace Owning Namespace}' reference. + * + * + * @param value the new value of the 'Owning Namespace' reference. + * @see #getOwningNamespace() + * @generated + */ + void setOwningNamespace(Namespace value); + + /** + * Returns the value of the 'Owning Relationship' container reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Relationship#getOwnedRelatedElement Owned Related Element}'. + * + * + * + *

The Relationship for which this Element is an ownedRelatedElement, if any.

+ * + * + * @return the value of the 'Owning Relationship' container reference. + * @see #setOwningRelationship(Relationship) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_OwningRelationship() + * @see org.omg.sysml.model.sysml.Relationship#getOwnedRelatedElement + * @model opposite="ownedRelatedElement" transient="false" ordered="false" + * @generated + */ + Relationship getOwningRelationship(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Element#getOwningRelationship Owning Relationship}' container reference. + * + * + * @param value the new value of the 'Owning Relationship' container reference. + * @see #getOwningRelationship() + * @generated + */ + void setOwningRelationship(Relationship value); + + /** + * Returns the value of the 'Textual Representation' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.TextualRepresentation}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.TextualRepresentation#getRepresentedElement Represented Element}'. + * + * + * + *

The TextualRepresentations that annotate this Element.

+ * + * @return the value of the 'Textual Representation' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getElement_TextualRepresentation() + * @see org.omg.sysml.model.sysml.TextualRepresentation#getRepresentedElement + * @model opposite="representedElement" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getTextualRepresentation(); + + /** + * + * + * + *

Return an effective name for this Element. By default this is the same as its declaredName.

+ * declaredName + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String effectiveName(); + + /** + * + * + * + *

Return an effective shortName for this Element. By default this is the same as its declaredShortName.

+ * declaredShortName + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String effectiveShortName(); + + /** + * + * + * + *

Return name, if that is not null, otherwise the shortName, if that is not null, otherwise null. If the returned value is non-null, it is returned as-is if it has the form of a basic name, or, otherwise, represented as a restricted name according to the lexical structure of the KerML textual notation (i.e., surrounded by single quote characters and with special characters escaped).

+ * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String escapedName(); + + /** + * + * + * + *

By default, return the library Namespace of the owningRelationship of this Element, if it has one.

+ * if owningRelationship <> null then owningRelationship.libraryNamespace() + * else null endif + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Namespace libraryNamespace(); + + /** + * + * + * + *

Return a unique description of the location of this Element in the containment structure rooted in a root Namespace. If the Element has a non-null qualifiedName, then return that. Otherwise, if it has an owningRelationship, then return the string constructed by appending to the path of it's owningRelationship the character / followed by the string representation of its position in the list of ownedRelatedElements of the owningRelationship (indexed starting at 1). Otherwise, return the empty string.

+ * + *

(Note that this operation is overridden for Relationships to use owningRelatedElement when appropriate.)

+ * if qualifiedName <> null then qualifiedName + * else if owningRelationship <> null then + * owningRelationship.path() + '/' + + * owningRelationship.ownedRelatedElement->indexOf(self).toString() + * -- A position index shall be converted to a decimal string representation + * -- consisting of only decimal digits, with no sign, leading zeros or leading + * -- or trailing whitespace. + * else '' + * endif endif + * + * @model required="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String path(); + +} // Element diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ElementFilterMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ElementFilterMembership.java new file mode 100644 index 000000000..3703dc63c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ElementFilterMembership.java @@ -0,0 +1,76 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Element Filter Membership'. + * + * + * + *

ElementFilterMembership is a Membership between a Namespace and a model-level evaluable Boolean-valued Expression, asserting that imported members of the Namespace should be filtered using the condition Expression. A general Namespace does not define any specific filtering behavior, but such behavior may be defined for various specialized kinds of Namespaces.

+ * + * condition.isModelLevelEvaluable + * condition.result.specializesFromLibrary('ScalarValues::Boolean') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ElementFilterMembership#getCondition Condition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getElementFilterMembership() + * @model + * @generated + */ +public interface ElementFilterMembership extends OwningMembership { + /** + * Returns the value of the 'Condition' reference. + * + * + * + *

The model-level evaluable Boolean-valued Expression used to filter the imported members of the membershipOwningNamespace of this ElementFilterMembership.

+ * + * + * @return the value of the 'Condition' reference. + * @see #setCondition(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getElementFilterMembership_Condition() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningFilter'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getCondition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ElementFilterMembership#getCondition Condition}' reference. + * + * + * @param value the new value of the 'Condition' reference. + * @see #getCondition() + * @generated + */ + void setCondition(Expression value); + +} // ElementFilterMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EndFeatureMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EndFeatureMembership.java new file mode 100644 index 000000000..5d04d9468 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EndFeatureMembership.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'End Feature Membership'. + * + * + * + *

EndFeatureMembership is a FeatureMembership that requires its memberFeature be owned and have isEnd = true.

+ * + * ownedMemberFeature.isEnd + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getEndFeatureMembership() + * @model + * @generated + */ +public interface EndFeatureMembership extends FeatureMembership { +} // EndFeatureMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EnumerationDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EnumerationDefinition.java new file mode 100644 index 000000000..b21d51c7b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EnumerationDefinition.java @@ -0,0 +1,64 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Enumeration Definition'. + * + * + * + *

An EnumerationDefinition is an AttributeDefinition all of whose instances are given by an explicit list of enumeratedValues. This is realized by requiring that the EnumerationDefinition have isVariation = true, with the enumeratedValues being its variants.

+ * isVariation + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.EnumerationDefinition#getEnumeratedValue Enumerated Value}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getEnumerationDefinition() + * @model + * @generated + */ +public interface EnumerationDefinition extends AttributeDefinition { + /** + * Returns the value of the 'Enumerated Value' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.EnumerationUsage}. + * + * + * + *

EnumerationUsages of this EnumerationDefinitionthat have distinct, fixed values. Each enumeratedValue specifies one of the allowed instances of the EnumerationDefinition.

+ * + * @return the value of the 'Enumerated Value' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getEnumerationDefinition_EnumeratedValue() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningEnumerationDefinition'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getEnumeratedValue(); + +} // EnumerationDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EnumerationUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EnumerationUsage.java new file mode 100644 index 000000000..4924e1a5a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EnumerationUsage.java @@ -0,0 +1,72 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Enumeration Usage'. + * + * + * + *

An EnumerationUsage is an AttributeUsage whose attributeDefinition is an EnumerationDefinition.

+ * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.EnumerationUsage#getEnumerationDefinition Enumeration Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getEnumerationUsage() + * @model + * @generated + */ +public interface EnumerationUsage extends AttributeUsage { + /** + * Returns the value of the 'Enumeration Definition' reference. + * + * + * + *

The single EnumerationDefinition that is the type of this EnumerationUsage.

+ * + * @return the value of the 'Enumeration Definition' reference. + * @see #setEnumerationDefinition(EnumerationDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getEnumerationUsage_EnumerationDefinition() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedEnumeration'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EnumerationDefinition getEnumerationDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.EnumerationUsage#getEnumerationDefinition Enumeration Definition}' reference. + * + * + * @param value the new value of the 'Enumeration Definition' reference. + * @see #getEnumerationDefinition() + * @generated + */ + void setEnumerationDefinition(EnumerationDefinition value); + +} // EnumerationUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EventOccurrenceUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EventOccurrenceUsage.java new file mode 100644 index 000000000..b8a943c80 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/EventOccurrenceUsage.java @@ -0,0 +1,86 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Event Occurrence Usage'. + * + * + * + *

An EventOccurrenceUsage is an OccurrenceUsage that represents another OccurrenceUsage occurring as a suboccurrence of the containing occurrence of the EventOccurrenceUsage. Unless it is the EventOccurrenceUsage itself, the referenced OccurrenceUsage is related to the EventOccurrenceUsage by a ReferenceSubsetting Relationship.

+ * + *

If the EventOccurrenceUsage is owned by an OccurrenceDefinition or OccurrenceUsage, then it also subsets the timeEnclosedOccurrences property of the Class Occurrence from the Kernel Semantic Library model Occurrences.

+ * eventOccurrence = + * if referencedFeatureTarget() = null then self + * else if referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) then + * referencedFeatureTarget().oclAsType(OccurrenceUsage) + * else null + * endif endif + * referencedFeatureTarget() <> null implies + * referencedFeatureTarget().oclIsKindOf(OccurrenceUsage) + * owningType <> null and + * (owningType.oclIsKindOf(OccurrenceDefinition) or + * owningType.oclIsKindOf(OccurrenceUsage)) implies + * specializesFromLibrary('Occurrences::Occurrence::timeEnclosedOccurrences') + * isReference + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.EventOccurrenceUsage#getEventOccurrence Event Occurrence}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getEventOccurrenceUsage() + * @model + * @generated + */ +public interface EventOccurrenceUsage extends OccurrenceUsage { + /** + * Returns the value of the 'Event Occurrence' reference. + * + * + * + *

The OccurrenceUsage referenced as an event by this EventOccurrenceUsage. It is the referenceFeature of the ownedReferenceSubsetting for the EventOccurrenceUsage, if there is one, and, otherwise, the EventOccurrenceUsage itself.

+ * + * @return the value of the 'Event Occurrence' reference. + * @see #setEventOccurrence(OccurrenceUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getEventOccurrenceUsage_EventOccurrence() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='referencingOccurrence'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + OccurrenceUsage getEventOccurrence(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.EventOccurrenceUsage#getEventOccurrence Event Occurrence}' reference. + * + * + * @param value the new value of the 'Event Occurrence' reference. + * @see #getEventOccurrence() + * @generated + */ + void setEventOccurrence(OccurrenceUsage value); + +} // EventOccurrenceUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ExhibitStateUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ExhibitStateUsage.java new file mode 100644 index 000000000..10147dd9b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ExhibitStateUsage.java @@ -0,0 +1,79 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Exhibit State Usage'. + * + * + * + *

An ExhibitStateUsage is a StateUsage that represents the exhibiting of a StateUsage. Unless it is the StateUsage itself, the StateUsage to be exhibited is related to the ExhibitStateUsage by a ReferenceSubsetting Relationship. An ExhibitStateUsage is also a PerformActionUsage, with its exhibitedState as the performedAction.

+ * + * owningType <> null and + * (owningType.oclIsKindOf(PartDefinition) or + * owningType.oclIsKindOf(PartUsage)) implies + * specializesFromLibrary('Parts::Part::exhibitedStates') + * referencedFeatureTarget() <> null implies + * referencedFeatureTarget().oclIsKindOf(StateUsage) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ExhibitStateUsage#getExhibitedState Exhibited State}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getExhibitStateUsage() + * @model + * @generated + */ +public interface ExhibitStateUsage extends StateUsage, PerformActionUsage { + /** + * Returns the value of the 'Exhibited State' reference. + * + * + * + *

The StateUsage to be exhibited by the ExhibitStateUsage. It is the performedAction of the ExhibitStateUsage considered as a PerformActionUsage, which must be a StateUsage.

+ * + * @return the value of the 'Exhibited State' reference. + * @see #setExhibitedState(StateUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getExhibitStateUsage_ExhibitedState() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='exhibitingState'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + StateUsage getExhibitedState(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ExhibitStateUsage#getExhibitedState Exhibited State}' reference. + * + * + * @param value the new value of the 'Exhibited State' reference. + * @see #getExhibitedState() + * @generated + */ + void setExhibitedState(StateUsage value); + +} // ExhibitStateUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Expose.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Expose.java new file mode 100644 index 000000000..8dcd633ac --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Expose.java @@ -0,0 +1,41 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Expose'. + * + * + * + *

An Expose is an Import of Memberships into a ViewUsage that provide the Elements to be included in a view. Visibility is always ignored for an Expose (i.e., isImportAll = true).

+ * isImportAll + * importOwningNamespace.oclIsType(ViewUsage) + * visibility = VisibilityKind::protected + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getExpose() + * @model abstract="true" + * @generated + */ +public interface Expose extends Import { +} // Expose diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Expression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Expression.java new file mode 100644 index 000000000..fb4cb4afd --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Expression.java @@ -0,0 +1,217 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Expression'. + * + * + * + *

An Expression is a Step that is typed by a Function. An Expression that also has a Function as its featuringType is a computational step within that Function. An Expression always has a single result parameter, which redefines the result parameter of its defining function. This allows Expressions to be interconnected in tree structures, in which inputs to each Expression in the tree are determined as the results of other Expression in the tree.

+ * + * isModelLevelEvaluable = modelLevelEvaluable(Set(Element){}) + * specializesFromLibrary('Performances::evaluations') + * owningMembership <> null and + * owningMembership.oclIsKindOf(FeatureValue) implies + * let featureWithValue : Feature = + * owningMembership.oclAsType(FeatureValue).featureWithValue in + * featuringType = featureWithValue.featuringType + * ownedMembership.selectByKind(ResultExpressionMembership)-> + * forAll(mem | ownedFeature.selectByKind(BindingConnector)-> + * exists(binding | + * binding.relatedFeature->includes(result) and + * binding.relatedFeature->includes(mem.ownedResultExpression.result))) + * result = + * let resultParams : Sequence(Feature) = + * featureMemberships-> + * selectByKind(ReturnParameterMembership). + * ownedMemberParameter in + * if resultParams->notEmpty() then resultParams->first() + * else null + * endif + * + * featureMembership-> + * selectByKind(ReturnParameterMembership)-> + * size() = 1 + * membership->selectByKind(ResultExpressionMembership)->size() <= 1 + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Expression#isIsModelLevelEvaluable Is Model Level Evaluable}
  • + *
  • {@link org.omg.sysml.model.sysml.Expression#getFunction Function}
  • + *
  • {@link org.omg.sysml.model.sysml.Expression#getResult Result}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getExpression() + * @model + * @generated + */ +public interface Expression extends Step { + /** + * Returns the value of the 'Is Model Level Evaluable' attribute. + * + * + * + *

Whether this Expression meets the constraints necessary to be evaluated at model level, that is, using metadata within the model.

+ * + * @return the value of the 'Is Model Level Evaluable' attribute. + * @see #setIsModelLevelEvaluable(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getExpression_IsModelLevelEvaluable() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isIsModelLevelEvaluable(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Expression#isIsModelLevelEvaluable Is Model Level Evaluable}' attribute. + * + * + * @param value the new value of the 'Is Model Level Evaluable' attribute. + * @see #isIsModelLevelEvaluable() + * @generated + */ + void setIsModelLevelEvaluable(boolean value); + + /** + * Returns the value of the 'Function' reference. + * + * + * + *

The Function that types this Expression.

+ * + *

This is the Function that types the Expression.

+ * + * + * @return the value of the 'Function' reference. + * @see #setFunction(Function) + * @see org.omg.sysml.model.sysml.SysMLPackage#getExpression_Function() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typedExpression'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Function getFunction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Expression#getFunction Function}' reference. + * + * + * @param value the new value of the 'Function' reference. + * @see #getFunction() + * @generated + */ + void setFunction(Function value); + + /** + * Returns the value of the 'Result' reference. + * + * + * + *

An output parameter of the Expression whose value is the result of the Expression. The result of an Expression is either inherited from its function or it is related to the Expression via a ReturnParameterMembership, in which case it redefines the result parameter of its function.

+ * + * + * @return the value of the 'Result' reference. + * @see #setResult(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getExpression_Result() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='computingExpression'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getResult(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Expression#getResult Result}' reference. + * + * + * @param value the new value of the 'Result' reference. + * @see #getResult() + * @generated + */ + void setResult(Feature value); + + /** + * + * + * + *

Model-level evaluate this Expression with the given target. If the result is a LiteralBoolean, return its value. Otherwise return false.

+ * + * let results: Sequence(Element) = evaluate(target) in + * result->size() = 1 and + * results->first().oclIsKindOf(LiteralBoolean) and + * results->first().oclAsType(LiteralBoolean).value + * + * @model required="true" ordered="false" targetRequired="true" targetOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean checkCondition(Element target); + + /** + * + * + * + *

If this Expression isModelLevelEvaluable, then evaluate it using the target as the context Element for resolving Feature names and testing classification. The result is a collection of Elements, which, for a fully evaluable Expression, will be a LiteralExpression or a Feature that is not an Expression.

+ * isModelLevelEvaluable + * let resultExprs : Sequence(Expression) = + * ownedFeatureMembership-> + * selectByKind(ResultExpressionMembership). + * ownedResultExpression in + * if resultExpr->isEmpty() then Sequence{} + * else resultExprs->first().evaluate(target) + * endif + * + * @model unique="false" targetRequired="true" targetOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList evaluate(Element target); + + /** + * + * + * + *

Return whether this Expression is model-level evaluable. The visited parameter is used to track possible circular Feature references made from FeatureReferenceExpressions (see the redefinition of this operation for FeatureReferenceExpression). Such circular references are not allowed in model-level evaluable expressions.

+ * + *

An Expression that is not otherwise specialized is model-level evaluable if it has no (non-implied) ownedSpecializations and all its ownedFeatures are either in parameters, the result parameter or a result Expression owned via a ResultExpressionMembership. The parameters must not have any ownedFeatures or a FeatureValue, and the result Expression must be model-level evaluable.

+ * ownedSpecialization->forAll(isImplied) and + * ownedFeature->forAll(f | + * (directionOf(f) = FeatureDirectionKind::_'in' or f = result) and + * f.ownedFeature->isEmpty() and f.valuation = null or + * f.owningFeatureMembership.oclIsKindOf(ResultExpressionMembership) and + * f.oclAsType(Expression).modelLevelEvaluable(visited) + * + * + * @model required="true" ordered="false" visitedMany="true" visitedOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean modelLevelEvaluable(EList visited); + +} // Expression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Feature.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Feature.java new file mode 100644 index 000000000..72aacd477 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Feature.java @@ -0,0 +1,1149 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Feature'. + * + * + * + *

A Feature is a Type that classifies relations between multiple things (in the universe). The domain of the relation is the intersection of the featuringTypes of the Feature. (The domain of a Feature with no featuringTyps is implicitly the most general Type Base::Anything from the Kernel Semantic Library.) The co-domain of the relation is the intersection of the types of the Feature. + * + *

In the simplest cases, the featuringTypes and types are Classifiers and the Feature relates two things, one from the domain and one from the range. Examples include cars paired with wheels, people paired with other people, and cars paired with numbers representing the car length.

+ * + *

Since Features are Types, their featuringTypes and types can be Features. In this case, the Feature effectively classifies relations between relations, which can be interpreted as the sequence of things related by the domain Feature concatenated with the sequence of things related by the co-domain Feature.

+ * + *

The values of a Feature for a given instance of its domain are all the instances of its co-domain that are related to that domain instance by the Feature. The values of a Feature with chainingFeatures are the same as values of the last Feature in the chain, which can be found by starting with values of the first Feature, then using those values as domain instances to obtain valus of the second Feature, and so on, to values of the last Feature.

+ * + * ownedRedefinition = ownedSubsetting->selectByKind(Redefinition) + * ownedTypeFeaturing = ownedRelationship->selectByKind(TypeFeaturing)-> + * select(tf | tf.featureOfType = self) + * ownedSubsetting = ownedSpecialization->selectByKind(Subsetting) + * ownedTyping = ownedGeneralization->selectByKind(FeatureTyping) + * type = + * let types : OrderedSet(Types) = OrderedSet{self}-> + * -- Note: The closure operation automatically handles circular relationships. + * closure(typingFeatures()).typing.type->asOrderedSet() in + * types->reject(t1 | types->exist(t2 | t2 <> t1 and t2.specializes(t1))) + * multiplicity <> null implies multiplicity.featuringType = featuringType + * specializesFromLibrary('Base::things') + * chainingFeature->excludes(self) + * ownedFeatureChaining = ownedRelationship->selectByKind(FeatureChaining) + * chainingFeature = ownedFeatureChaining.chainingFeature + * chainingFeature->size() <> 1 + * isEnd and owningType <> null implies + * let i : Integer = + * owningType.ownedEndFeature->indexOf(self) in + * owningType.ownedSpecialization.general-> + * forAll(supertype | + * supertype.endFeature->size() >= i implies + * redefines(supertype.endFeature->at(i)) + * direction = null and + * ownedSpecializations->forAll(isImplied) implies + * ownedMembership-> + * selectByKind(FeatureValue)-> + * forAll(fv | specializes(fv.value.result)) + * isEnd and owningType <> null and + * (owningType.oclIsKindOf(Association) or + * owningType.oclIsKindOf(Connector)) implies + * specializesFromLibrary('Links::Link::participant') + * isComposite and + * ownedTyping.type->includes(oclIsKindOf(Structure)) and + * owningType <> null and + * (owningType.oclIsKindOf(Structure) or + * owningType.type->includes(oclIsKindOf(Structure))) implies + * specializesFromLibrary('Occurrence::Occurrence::suboccurrences') + * ownedTyping.type->exists(selectByKind(Class)) implies + * specializesFromLibrary('Occurrences::occurrences') + * isComposite and + * ownedTyping.type->includes(oclIsKindOf(Class)) and + * owningType <> null and + * (owningType.oclIsKindOf(Class) or + * owningType.oclIsKindOf(Feature) and + * owningType.oclAsType(Feature).type-> + * exists(oclIsKindOf(Class))) implies + * specializesFromLibrary('Occurrence::Occurrence::suboccurrences') + * ownedTyping.type->exists(selectByKind(DataType)) implies + * specializesFromLibrary('Base::dataValues') + * owningType <> null and + * owningType.oclIsKindOf(FlowEnd) and + * owningType.ownedFeature->at(1) = self implies + * let flowType : Type = owningType.owningType in + * flowType <> null implies + * let i : Integer = + * flowType.ownedFeature.indexOf(owningType) in + * (i = 1 implies + * redefinesFromLibrary('Transfers::Transfer::source::sourceOutput')) and + * (i = 2 implies + * redefinesFromLibrary('Transfers::Transfer::source::targetInput')) + * + * owningType <> null and + * not owningFeatureMembership. + * oclIsKindOf(ReturnParameterMembership) and + * (owningType.oclIsKindOf(Behavior) or + * owningType.oclIsKindOf(Step) and + * (owningType.oclIsKindOf(InvocationExpression) implies + * not ownedRedefinition->exists(not isImplied)) + * implies + * let i : Integer = + * owningType.ownedFeature->select(direction <> null)-> + * reject(owningFeatureMembership. + * oclIsKindOf(ReturnParameterMembership))-> + * indexOf(self) in + * owningType.ownedSpecialization.general-> + * forAll(supertype | + * let ownedParameters : Sequence(Feature) = + * supertype.ownedFeature->select(direction <> null)-> + * reject(owningFeatureMembership. + * oclIsKindOf(ReturnParameterMembership)) in + * ownedParameters->size() >= i implies + * redefines(ownedParameters->at(i)) + * ownedTyping.type->exists(selectByKind(Structure)) implies + * specializesFromLibary('Objects::objects') + * owningType <> null and + * (owningType.oclIsKindOf(Function) and + * self = owningType.oclAsType(Function).result or + * owningType.oclIsKindOf(Expression) and + * self = owningType.oclAsType(Expression).result) implies + * owningType.ownedSpecialization.general-> + * select(oclIsKindOf(Function) or oclIsKindOf(Expression))-> + * forAll(supertype | + * redefines( + * if superType.oclIsKindOf(Function) then + * superType.oclAsType(Function).result + * else + * superType.oclAsType(Expression).result + * endif) + * ownedFeatureInverting = ownedRelationship->selectByKind(FeatureInverting)-> + * select(fi | fi.featureInverted = self) + * featuringType = + * let featuringTypes : OrderedSet(Type) = + * featuring.type->asOrderedSet() in + * if chainingFeature->isEmpty() then featuringTypes + * else + * featuringTypes-> + * union(chainingFeature->first().featuringType)-> + * asOrderedSet() + * endif + * ownedReferenceSubsetting = + * let referenceSubsettings : OrderedSet(ReferenceSubsetting) = + * ownedSubsetting->selectByKind(ReferenceSubsetting) in + * if referenceSubsettings->isEmpty() then null + * else referenceSubsettings->first() endif + * ownedSubsetting->selectByKind(ReferenceSubsetting)->size() <= 1 + * Sequence{2..chainingFeature->size()}->forAll(i | + * chainingFeature->at(i).isFeaturedWithin(chainingFeature->at(i-1))) + * + * isPortion and + * ownedTyping.type->includes(oclIsKindOf(Class)) and + * owningType <> null and + * (owningType.oclIsKindOf(Class) or + * owningType.oclIsKindOf(Feature) and + * owningType.oclAsType(Feature).type-> + * exists(oclIsKindOf(Class))) implies + * specializesFromLibrary('Occurrence::Occurrence::portions') + * featureTarget = if chainingFeature->isEmpty() then self else chainingFeature->last() endif + * ownedCrossSubsetting = + * let crossSubsettings: Sequence(CrossSubsetting) = + * ownedSubsetting->selectByKind(CrossSubsetting) in + * if crossSubsettings->isEmpty() then null + * else crossSubsettings->first() + * endif + * isEnd implies + * multiplicities().allSuperTypes()->flatten()-> + * selectByKind(MultiplicityRange)->exists(hasBounds(1,1)) + * crossFeature <> null implies + * crossFeature.type->asSet() = type->asSet() + * ownedSubsetting->selectByKind(CrossSubsetting)->size() <= 1 + * crossFeature = + * if ownedCrossSubsetting = null then null + * else + * let chainingFeatures: Sequence(Feature) = + * ownedCrossSubsetting.crossedFeature.chainingFeature in + * if chainingFeatures->size() < 2 then null + * else chainingFeatures->at(2) + * endif + * isOwnedCrossFeature() implies + * owner.oclAsType(Feature).type->forAll(t | self.specializes(t)) + * isOwnedCrossFeature() implies + * ownedSubsetting.subsettedFeature->includesAll( + * owner.oclAsType(Feature).ownedRedefinition.redefinedFeature-> + * select(crossFeature <> null).crossFeature) + * crossFeature <> null implies + * ownedRedefinition.redefinedFeature.crossFeature-> + * forAll(f | f <> null implies crossFeature.specializes(f)) + * ownedCrossFeature() <> null implies + * crossFeature = ownedCrossFeature() + * isOwnedCrossFeature() implies + * let otherEnds : OrderedSet(Feature) = + * owner.oclAsType(Feature).owningType.endFeature->excluding(self) in + * if (otherEnds->size() = 1) then + * featuringType = otherEnds->first().type + * else + * featuringType->size() = 1 and + * featuringType->first().isCartesianProduct() and + * featuringType->first().asCartesianProduct() = otherEnds.type and + * featuringType->first().allSupertypes()->includesAll( + * owner.oclAsType(Feature).ownedRedefinition.redefinedFeature-> + * select(crossFeature() <> null).crossFeature().featuringType) + * endif + * isPortion implies not isVariable + * isEnd implied direction = null + * owningFeatureMembership <> null implies + * featuringTypes->exists(t | isFeaturingType(t)) + * isConstant implies isVariable + * isVariable implies + * owningType <> null and + * owningType.specializes('Occurrences::Occurrence') + * isEnd implies not (isDerived or isAbstract or isComposite or isPortion) + * isEnd and isVariable implies isConstant + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Feature#getDirection Direction}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#isIsComposite Is Composite}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#isIsConstant Is Constant}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#isIsDerived Is Derived}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#isIsEnd Is End}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#isIsNonunique Is Nonunique}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#isIsOrdered Is Ordered}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#isIsPortion Is Portion}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#isIsUnique Is Unique}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#isIsVariable Is Variable}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getChainingFeature Chaining Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getCrossFeature Cross Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getEndOwningType End Owning Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getFeatureTarget Feature Target}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getFeaturingType Featuring Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getOwnedCrossSubsetting Owned Cross Subsetting}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getOwnedFeatureChaining Owned Feature Chaining}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getOwnedFeatureInverting Owned Feature Inverting}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getOwnedRedefinition Owned Redefinition}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getOwnedReferenceSubsetting Owned Reference Subsetting}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getOwnedSubsetting Owned Subsetting}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getOwnedTypeFeaturing Owned Type Featuring}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getOwnedTyping Owned Typing}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getOwningFeatureMembership Owning Feature Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getOwningType Owning Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Feature#getType Type}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature() + * @model + * @generated + */ +public interface Feature extends Type { + /** + * Returns the value of the 'Direction' attribute. + * The literals are from the enumeration {@link org.omg.sysml.model.sysml.FeatureDirectionKind}. + * + * + * + *

Indicates how values of this Feature are determined or used (as specified for the FeatureDirectionKind).

+ * + * + * @return the value of the 'Direction' attribute. + * @see org.omg.sysml.model.sysml.FeatureDirectionKind + * @see #setDirection(FeatureDirectionKind) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_Direction() + * @model ordered="false" + * @generated + */ + FeatureDirectionKind getDirection(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#getDirection Direction}' attribute. + * + * + * @param value the new value of the 'Direction' attribute. + * @see org.omg.sysml.model.sysml.FeatureDirectionKind + * @see #getDirection() + * @generated + */ + void setDirection(FeatureDirectionKind value); + + /** + * Returns the value of the 'Is Composite' attribute. + * The default value is "false". + * + * + * + *

Whether the Feature is a composite feature of its featuringType. If so, the values of the Feature cannot exist after its featuring instance no longer does and cannot be values of another composite feature that is not on the same featuring instance.

+ * + * + * @return the value of the 'Is Composite' attribute. + * @see #setIsComposite(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_IsComposite() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsComposite(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#isIsComposite Is Composite}' attribute. + * + * + * @param value the new value of the 'Is Composite' attribute. + * @see #isIsComposite() + * @generated + */ + void setIsComposite(boolean value); + + /** + * Returns the value of the 'Is Constant' attribute. + * The default value is "false". + * + * + * + *

If isVariable is true, then whether the value of this Feature nevertheless does not change over all snapshots of its owningType.

+ * + * + * @return the value of the 'Is Constant' attribute. + * @see #setIsConstant(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_IsConstant() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsConstant(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#isIsConstant Is Constant}' attribute. + * + * + * @param value the new value of the 'Is Constant' attribute. + * @see #isIsConstant() + * @generated + */ + void setIsConstant(boolean value); + + /** + * Returns the value of the 'Is Derived' attribute. + * The default value is "false". + * + * + * + *

Whether the values of this Feature can always be computed from the values of other Features.

+ * + * + * @return the value of the 'Is Derived' attribute. + * @see #setIsDerived(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_IsDerived() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsDerived(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#isIsDerived Is Derived}' attribute. + * + * + * @param value the new value of the 'Is Derived' attribute. + * @see #isIsDerived() + * @generated + */ + void setIsDerived(boolean value); + + /** + * Returns the value of the 'Is End' attribute. + * The default value is "false". + * + * + * + *

Whether or not this Feature is an end Feature. An end Feature always has multiplicity 1, mapping each of its domain instances to a single co-domain instance. However, it may have a crossFeature, in which case values of the crossFeature must be the same as those found by navigation across instances of the owningType from values of other end Features to values of this Feature. If the owningType has n end Features, then the multiplicity, ordering, and uniqueness declared for the crossFeature of any one of these end Features constrains the cardinality, ordering, and uniqueness of the collection of values of that Feature reached by navigation when the values of the other n-1 end Features are held fixed.

+ * + * + * @return the value of the 'Is End' attribute. + * @see #setIsEnd(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_IsEnd() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsEnd(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#isIsEnd Is End}' attribute. + * + * + * @param value the new value of the 'Is End' attribute. + * @see #isIsEnd() + * @generated + */ + void setIsEnd(boolean value); + + /** + * Returns the value of the 'Is Nonunique' attribute. + * The default value is "false". + * + * + * @return the value of the 'Is Nonunique' attribute. + * @see #setIsNonunique(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_IsNonunique() + * @model default="false" required="true" transient="true" volatile="true" derived="true" ordered="false" + * @generated + */ + boolean isIsNonunique(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#isIsNonunique Is Nonunique}' attribute. + * + * + * @param value the new value of the 'Is Nonunique' attribute. + * @see #isIsNonunique() + * @generated + */ + void setIsNonunique(boolean value); + + /** + * Returns the value of the 'Is Ordered' attribute. + * The default value is "false". + * + * + * + *

Whether an order exists for the values of this Feature or not.

+ * + * @return the value of the 'Is Ordered' attribute. + * @see #setIsOrdered(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_IsOrdered() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsOrdered(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#isIsOrdered Is Ordered}' attribute. + * + * + * @param value the new value of the 'Is Ordered' attribute. + * @see #isIsOrdered() + * @generated + */ + void setIsOrdered(boolean value); + + /** + * Returns the value of the 'Is Portion' attribute. + * The default value is "false". + * + * + * + *

Whether the values of this Feature are contained in the space and time of instances of the domain of the Feature and represent the same thing as those instances.

+ * + * + * @return the value of the 'Is Portion' attribute. + * @see #setIsPortion(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_IsPortion() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsPortion(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#isIsPortion Is Portion}' attribute. + * + * + * @param value the new value of the 'Is Portion' attribute. + * @see #isIsPortion() + * @generated + */ + void setIsPortion(boolean value); + + /** + * Returns the value of the 'Is Unique' attribute. + * The default value is "true". + * + * + * + *

Whether or not values for this Feature must have no duplicates or not.

+ * + * + * @return the value of the 'Is Unique' attribute. + * @see #setIsUnique(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_IsUnique() + * @model default="true" required="true" ordered="false" + * @generated + */ + boolean isIsUnique(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#isIsUnique Is Unique}' attribute. + * + * + * @param value the new value of the 'Is Unique' attribute. + * @see #isIsUnique() + * @generated + */ + void setIsUnique(boolean value); + + /** + * Returns the value of the 'Is Variable' attribute. + * The default value is "false". + * + * + * + *

Whether the value of this Feature might vary over time. That is, whether the Feature may have a different value for each snapshot of an owningType that is an Occurrence.

+ * + * @return the value of the 'Is Variable' attribute. + * @see #setIsVariable(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_IsVariable() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsVariable(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#isIsVariable Is Variable}' attribute. + * + * + * @param value the new value of the 'Is Variable' attribute. + * @see #isIsVariable() + * @generated + */ + void setIsVariable(boolean value); + + /** + * Returns the value of the 'Chaining Feature' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

The Feature that are chained together to determine the values of this Feature, derived from the chainingFeatures of the ownedFeatureChainings of this Feature, in the same order. The values of a Feature with chainingFeatures are the same as values of the last Feature in the chain, which can be found by starting with the values of the first Feature (for each instance of the domain of the original Feature), then using each of those as domain instances to find the values of the second Feature in chainingFeatures, and so on, to values of the last Feature.

+ * + * @return the value of the 'Chaining Feature' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_ChainingFeature() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='chainedFeature'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getChainingFeature(); + + /** + * Returns the value of the 'Cross Feature' reference. + * + * + * + *

The second chainingFeature of the crossedFeature of the ownedCrossSubsetting of this Feature, if it has one. Semantically, the values of the crossFeature of an end Feature must include all values of the end Feature obtained when navigating from values of the other end Features of the same owningType. + *

+ * + * @return the value of the 'Cross Feature' reference. + * @see #setCrossFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_CrossFeature() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featureCrossing'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getCrossFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#getCrossFeature Cross Feature}' reference. + * + * + * @param value the new value of the 'Cross Feature' reference. + * @see #getCrossFeature() + * @generated + */ + void setCrossFeature(Feature value); + + /** + * Returns the value of the 'End Owning Type' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Type#getOwnedEndFeature Owned End Feature}'. + * + * + * + *

The Type that is related to this Feature by an EndFeatureMembership in which the Feature is an ownedMemberFeature.

+ * + * @return the value of the 'End Owning Type' reference. + * @see #setEndOwningType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_EndOwningType() + * @see org.omg.sysml.model.sysml.Type#getOwnedEndFeature + * @model opposite="ownedEndFeature" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getEndOwningType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#getEndOwningType End Owning Type}' reference. + * + * + * @param value the new value of the 'End Owning Type' reference. + * @see #getEndOwningType() + * @generated + */ + void setEndOwningType(Type value); + + /** + * Returns the value of the 'Feature Target' reference. + * + * + * + *

The last of the chainingFeatures of this Feature, if it has any. Otherwise, this Feature itself.

+ * + * @return the value of the 'Feature Target' reference. + * @see #setFeatureTarget(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_FeatureTarget() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='baseFeature'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getFeatureTarget(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#getFeatureTarget Feature Target}' reference. + * + * + * @param value the new value of the 'Feature Target' reference. + * @see #getFeatureTarget() + * @generated + */ + void setFeatureTarget(Feature value); + + /** + * Returns the value of the 'Featuring Type' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Type}. + * + * + * + *

Types that feature this Feature, such that any instance in the domain of the Feature must be classified by all of these Types, including at least all the featuringTypes of its typeFeaturings. If the Feature is chained, then the featuringTypes of the first Feature in the chain are also featuringTypes of the chained Feature.

+ * + * @return the value of the 'Featuring Type' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_FeaturingType() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featureOfType'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getFeaturingType(); + + /** + * Returns the value of the 'Owned Cross Subsetting' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.CrossSubsetting#getCrossingFeature Crossing Feature}'. + * + * + * + *

The one ownedSubsetting of this Feature, if any, that is a CrossSubsetting}, for which the Feature is the crossingFeature.

+ * + * @return the value of the 'Owned Cross Subsetting' reference. + * @see #setOwnedCrossSubsetting(CrossSubsetting) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_OwnedCrossSubsetting() + * @see org.omg.sysml.model.sysml.CrossSubsetting#getCrossingFeature + * @model opposite="crossingFeature" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + CrossSubsetting getOwnedCrossSubsetting(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#getOwnedCrossSubsetting Owned Cross Subsetting}' reference. + * + * + * @param value the new value of the 'Owned Cross Subsetting' reference. + * @see #getOwnedCrossSubsetting() + * @generated + */ + void setOwnedCrossSubsetting(CrossSubsetting value); + + /** + * Returns the value of the 'Owned Feature Chaining' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.FeatureChaining}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.FeatureChaining#getFeatureChained Feature Chained}'. + * + * + * + *

The ownedRelationships of this Feature that are FeatureChainings, for which the Feature will be the featureChained.

+ * + * @return the value of the 'Owned Feature Chaining' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_OwnedFeatureChaining() + * @see org.omg.sysml.model.sysml.FeatureChaining#getFeatureChained + * @model opposite="featureChained" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedFeatureChaining(); + + /** + * Returns the value of the 'Owned Feature Inverting' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.FeatureInverting}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.FeatureInverting#getOwningFeature Owning Feature}'. + * + * + * + *

The ownedRelationships of this Feature that are FeatureInvertings and for which the Feature is the featureInverted.

+ * + * @return the value of the 'Owned Feature Inverting' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_OwnedFeatureInverting() + * @see org.omg.sysml.model.sysml.FeatureInverting#getOwningFeature + * @model opposite="owningFeature" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedFeatureInverting(); + + /** + * Returns the value of the 'Owned Redefinition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Redefinition}. + * + * + * + *

The ownedSubsettings of this Feature that are Redefinitions, for which the Feature is the redefiningFeature.

+ * + * + * + * @return the value of the 'Owned Redefinition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_OwnedRedefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningFeature'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedRedefinition(); + + /** + * Returns the value of the 'Owned Reference Subsetting' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.ReferenceSubsetting#getReferencingFeature Referencing Feature}'. + * + * + * + *

The one ownedSubsetting of this Feature, if any, that is a ReferenceSubsetting, for which the Feature is the referencingFeature.

+ * + * @return the value of the 'Owned Reference Subsetting' reference. + * @see #setOwnedReferenceSubsetting(ReferenceSubsetting) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_OwnedReferenceSubsetting() + * @see org.omg.sysml.model.sysml.ReferenceSubsetting#getReferencingFeature + * @model opposite="referencingFeature" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ReferenceSubsetting getOwnedReferenceSubsetting(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#getOwnedReferenceSubsetting Owned Reference Subsetting}' reference. + * + * + * @param value the new value of the 'Owned Reference Subsetting' reference. + * @see #getOwnedReferenceSubsetting() + * @generated + */ + void setOwnedReferenceSubsetting(ReferenceSubsetting value); + + /** + * Returns the value of the 'Owned Subsetting' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Subsetting}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Subsetting#getOwningFeature Owning Feature}'. + * + * + * + *

The ownedSpecializations of this Feature that are Subsettings, for which the Feature is the subsettingFeature.

+ * + * + * @return the value of the 'Owned Subsetting' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_OwnedSubsetting() + * @see org.omg.sysml.model.sysml.Subsetting#getOwningFeature + * @model opposite="owningFeature" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedSubsetting(); + + /** + * Returns the value of the 'Owned Type Featuring' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.TypeFeaturing}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.TypeFeaturing#getOwningFeatureOfType Owning Feature Of Type}'. + * + * + * + *

The ownedRelationships of this Feature that are TypeFeaturings and for which the Feature is the featureOfType.

+ * + * @return the value of the 'Owned Type Featuring' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_OwnedTypeFeaturing() + * @see org.omg.sysml.model.sysml.TypeFeaturing#getOwningFeatureOfType + * @model opposite="owningFeatureOfType" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedTypeFeaturing(); + + /** + * Returns the value of the 'Owned Typing' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.FeatureTyping}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.FeatureTyping#getOwningFeature Owning Feature}'. + * + * + * + *

The ownedSpecializations of this Feature that are FeatureTypings, for which the Feature is the typedFeature.

+ * + * @return the value of the 'Owned Typing' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_OwnedTyping() + * @see org.omg.sysml.model.sysml.FeatureTyping#getOwningFeature + * @model opposite="owningFeature" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedTyping(); + + /** + * Returns the value of the 'Owning Feature Membership' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.FeatureMembership#getOwnedMemberFeature Owned Member Feature}'. + * + * + * + *

The FeatureMembership that owns this Feature as an ownedMemberFeature, determining its owningType.

+ * + * @return the value of the 'Owning Feature Membership' reference. + * @see #setOwningFeatureMembership(FeatureMembership) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_OwningFeatureMembership() + * @see org.omg.sysml.model.sysml.FeatureMembership#getOwnedMemberFeature + * @model opposite="ownedMemberFeature" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + FeatureMembership getOwningFeatureMembership(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#getOwningFeatureMembership Owning Feature Membership}' reference. + * + * + * @param value the new value of the 'Owning Feature Membership' reference. + * @see #getOwningFeatureMembership() + * @generated + */ + void setOwningFeatureMembership(FeatureMembership value); + + /** + * Returns the value of the 'Owning Type' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Type#getOwnedFeature Owned Feature}'. + * + * + * + *

The Type that is the owningType of the owningFeatureMembership of this Feature.

+ * + * @return the value of the 'Owning Type' reference. + * @see #setOwningType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_OwningType() + * @see org.omg.sysml.model.sysml.Type#getOwnedFeature + * @model opposite="ownedFeature" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getOwningType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Feature#getOwningType Owning Type}' reference. + * + * + * @param value the new value of the 'Owning Type' reference. + * @see #getOwningType() + * @generated + */ + void setOwningType(Type value); + + /** + * Returns the value of the 'Type' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Type}. + * + * + * + *

Types that restrict the values of this Feature, such that the values must be instances of all the types. The types of a Feature are derived from its typings and the types of its subsettings. If the Feature is chained, then the types of the last Feature in the chain are also types of the chained Feature.

+ * + * + * @return the value of the 'Type' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeature_Type() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typedFeature'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getType(); + + /** + * + * + * + *

Return this Feature and all the Features that are directly or indirectly Redefined by this Feature.

+ * ownedRedefinition.redefinedFeature-> + * closure(ownedRedefinition.redefinedFeature)-> + * asOrderedSet()->prepend(self) + * + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList allRedefinedFeatures(); + + /** + * + * + * + *

If isCartesianProduct is true, then return the list of Types whose Cartesian product can be represented by this Feature. (If isCartesianProduct is not true, the operation will still return a valid value, it will just not represent anything useful.)

+ * featuringType->select(t | t.owner <> self)-> + * union(featuringType->select(t | t.owner = self)-> + * selectByKind(Feature).asCartesianProduct())-> + * union(type) + * + * @model unique="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList asCartesianProduct(); + + /** + * + * + * + *

A Feature can access another feature if the other feature is featured within one of the direct or indirect featuringTypes of this Feature.

+ * let anythingType: Element = + * subsettingFeature.resolveGlobal('Base::Anything').memberElement in + * let allFeaturingTypes : Sequence(Type) = + * featuringTypes->closure(t | + * if not t.oclIsKindOf(Feature) then Sequence{} + * else + * let featuringTypes : OrderedSet(Type) = t.oclAsType(Feature).featuringType in + * if featuringTypes->isEmpty() then Sequence{anythingType} + * else featuringTypes + * endif + * endif) in + * allFeaturingTypes->exists(t | feature.isFeaturedWithin(t)) + * + * @model required="true" ordered="false" featureRequired="true" featureOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean canAccess(Feature feature); + + /** + * + * + * + *

Return the directionOf this Feature relative to the given type.

+ * type.directionOf(self) + * + * @model ordered="false" typeRequired="true" typeOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + FeatureDirectionKind directionFor(Type type); + + /** + * + * + * + *

Check whether this Feature can be used to represent a Cartesian product of Types.

+ * type->size() = 1 and + * featuringType.size() = 1 and + * (featuringType.first().owner = self implies + * featuringType.first().oclIsKindOf(Feature) and + * featuringType.first().oclAsType(Feature).isCartesianProduct()) + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isCartesianProduct(); + + /** + * + * + * + *

Return if the featuringTypes of this Feature are compatible with the given type. If type is null, then check if this Feature is explicitly or implicitly featured by Base::Anything. If this Feature has isVariable = true, then also consider it to be featured within its owningType. If this Feature is a feature chain whose first chainingFeature has isVariable = true, then also consider it to be featured within the owningType of its first chainingFeature.

+ * if type = null then + * featuringType->forAll(f | f = resolveGlobal('Base::Anything').memberElement) + * else + * featuringType->forAll(f | type.isCompatibleWith(f)) or + * isVariable and type.specializes(owningType) or + * chainingFeature->notEmpty() and chainingFeature->first().isVariable and + * type.specializes(chainingFeature->first().owningType) + * endif + * + * @model required="true" ordered="false" typeOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isFeaturedWithin(Type type); + + /** + * + * + * + *

Return whether the given type must be a featuringType of this Feature. If this Feature has isVariable = false, then return true if the type is the owningType of the Feature. If isVariable = true, then return true if the type is a Feature representing the snapshots of the owningType of this Feature.

+ * owningType <> null and + * if not isVariable then type = owningType + * else if owningType = resolveGlobal('Occurrences::Occurrence').memberElement then + * type = resolveGlobal('Occurrences::Occurrence::snapshots').memberElement + * else + * type.oclIsKindOf(Feature) and + * let feature : Feature = type.oclAsType(Feature) in + * feature.featuringType->includes(owningType) and + * feature.redefinesFromLibrary('Occurrences::Occurrence::snapshots') + * endif + * + * + * @model required="true" ordered="false" typeRequired="true" typeOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isFeaturingType(Type type); + + /** + * + * + * + *

Return whether this Feature is an owned cross Feature of an end Feature.

+ * owningNamespace <> null and + * owningNamespace.oclIsKindOf(Feature) and + * owningNamespace.oclAsType(Feature).ownedCrossFeature() = self + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isOwnedCrossFeature(); + + /** + * + * + * + *

By default, the naming Feature of a Feature is given by its first redefinedFeature of its first ownedRedefinition, if any.

+ * if ownedRedefinition->isEmpty() then + * null + * else + * ownedRedefinition->at(1).redefinedFeature + * endif + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature namingFeature(); + + /** + * + * + * + *

If this Feature is an end Feature of its owningType, then return the first ownedMember of the Feature that is a Feature, but not a Multiplicity or a MetadataFeature, and whose owningMembership is not a FeatureMembership. If this exists, it is the crossFeature of the end Feature.

+ * if not isEnd or owningType = null then null + * else + * let ownedMemberFeatures: Sequence(Feature) = + * ownedMember->selectByKind(Feature)-> + * reject(oclIsKindOf(Multiplicity) or + * oclIsKindOf(MetadataFeature) or + * oclIsKindOf(FeatureValue))-> + * reject(owningMembership.oclIsKindOf(FeatureMembership)) in + * if ownedMemberFeatures.isEmpty() then null + * else ownedMemberFeatures->first() + * endif + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature ownedCrossFeature(); + + /** + * + * + * + *

Check whether this Feature directly redefines the given redefinedFeature.

+ * ownedRedefinition.redefinedFeature->includes(redefinedFeature) + * + * @model required="true" ordered="false" redefinedFeatureRequired="true" redefinedFeatureOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean redefines(Feature redefinedFeature); + + /** + * + * + * + *

Check whether this Feature directly redefines the named library Feature. libraryFeatureName must conform to the syntax of a KerML qualified name and must resolve to a Feature in global scope.

+ * let mem: Membership = resolveGlobal(libraryFeatureName) in + * mem <> null and mem.memberElement.oclIsKindOf(Feature) and + * redefines(mem.memberElement.oclAsType(Feature)) + * + * @model required="true" ordered="false" libraryFeatureNameRequired="true" libraryFeatureNameOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean redefinesFromLibrary(String libraryFeatureName); + + /** + * + * + * + *

Check whether this Feature directly or indirectly specializes a Feature whose last two chainingFeatures are the given Features first and second.

+ * allSuperTypes()->selectAsKind(Feature)-> + * exists(f | let n: Integer = f.chainingFeature->size() in + * n >= 2 and + * f.chainingFeature->at(n-1) = first and + * f.chainingFeature->at(n) = second) + * + * @model required="true" ordered="false" firstRequired="true" firstOrdered="false" secondRequired="true" secondOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean subsetsChain(Feature first, Feature second); + + /** + * + * + * + *

Return the Features used to determine the types of this Feature (other than this Feature itself). If this Feature is not conjugated, then the typingFeatures consist of all subsetted Features, except from CrossSubsetting, and the last chainingFeature (if any). If this Feature is conjugated, then the typingFeatures are only its originalType (if the originalType is a Feature).

+ * + *

Note. CrossSubsetting is excluded from the determination of the type of a Feature in order to avoid circularity in the construction of implied CrossSubsetting relationships. The validateFeatureCrossFeatureType requires that the crossFeature of a Feature have the same type as the Feature.

+ * + * if not isConjugated then + * let subsettedFeatures : OrderedSet(Feature) = + * subsetting->reject(s | s.oclIsKindOf(CrossSubsetting)).subsettedFeatures in + * if chainingFeature->isEmpty() or + * subsettedFeature->includes(chainingFeature->last()) + * then subsettedFeatures + * else subsettedFeatures->append(chainingFeature->last()) + * endif + * else if conjugator.originalType.oclIsKindOf(Feature) then + * OrderedSet{conjugator.originalType.oclAsType(Feature)} + * else OrderedSet{} + * endif endif + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList typingFeatures(); + +} // Feature diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureChainExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureChainExpression.java new file mode 100644 index 000000000..e76eefdaa --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureChainExpression.java @@ -0,0 +1,115 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Feature Chain Expression'. + * + * + * + *

A FeatureChainExpression is an OperatorExpression whose operator is ".", which resolves to the Function ControlFunctions::'.' from the Kernel Functions Library. It evaluates to the result of chaining the result Feature of its single argument Expression with its targetFeature.

+ * let sourceParameter : Feature = sourceTargetFeature() in + * sourceTargetFeature <> null and + * sourceTargetFeature.redefinesFromLibrary('ControlFunctions::\'.\'::source::target') + * let sourceParameter : Feature = sourceTargetFeature() in + * sourceTargetFeature <> null and + * sourceTargetFeature.redefines(targetFeature) + * targetFeature = + * let nonParameterMemberships : Sequence(Membership) = ownedMembership-> + * reject(oclIsKindOf(ParameterMembership)) in + * if nonParameterMemberships->isEmpty() or + * not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) + * then null + * else nonParameterMemberships->first().memberElement.oclAsType(Feature) + * endif + * argument->notEmpty() implies + * targetFeature.isFeaturedWithin(argument->first().result) + * operator = '.' + * let inputParameters : Sequence(Feature) = + * ownedFeatures->select(direction = _'in') in + * let sourceTargetFeature : Feature = + * owningExpression.sourceTargetFeature() in + * sourceTargetFeature <> null and + * result.subsetsChain(inputParameters->first(), sourceTargetFeature) and + * result.owningType = self + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.FeatureChainExpression#getTargetFeature Target Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureChainExpression() + * @model + * @generated + */ +public interface FeatureChainExpression extends OperatorExpression { + /** + * Returns the value of the 'Target Feature' reference. + * + * + * + *

The Feature that is accessed by this FeatureChainExpression, which is its first non-parameter member.

+ * + * @return the value of the 'Target Feature' reference. + * @see #setTargetFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureChainExpression_TargetFeature() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='chainExpression'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getTargetFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureChainExpression#getTargetFeature Target Feature}' reference. + * + * + * @param value the new value of the 'Target Feature' reference. + * @see #getTargetFeature() + * @generated + */ + void setTargetFeature(Feature value); + + /** + * + * + * + *

Return the first ownedFeature of the first owned input parameter of this FeatureChainExpression (if any).

+ * let inputParameters : Feature = ownedFeatures-> + * select(direction = _'in') in + * if inputParameters->isEmpty() or + * inputParameters->first().ownedFeature->isEmpty() + * then null + * else inputParameters->first().ownedFeature->first() + * endif + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature sourceTargetFeature(); + +} // FeatureChainExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureChaining.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureChaining.java new file mode 100644 index 000000000..e6d700e65 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureChaining.java @@ -0,0 +1,104 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Feature Chaining'. + * + * + * + *

FeatureChaining is a Relationship that makes its target Feature one of the chainingFeatures of its owning Feature.

+ * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.FeatureChaining#getChainingFeature Chaining Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.FeatureChaining#getFeatureChained Feature Chained}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureChaining() + * @model + * @generated + */ +public interface FeatureChaining extends Relationship { + /** + * Returns the value of the 'Chaining Feature' reference. + * + * + * + *

The Feature whose values partly determine values of featureChained, as described in Feature::chainingFeature.

+ * + * + * @return the value of the 'Chaining Feature' reference. + * @see #setChainingFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureChaining_ChainingFeature() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='chainedFeatureChaining'" + * annotation="redefines" + * @generated + */ + Feature getChainingFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureChaining#getChainingFeature Chaining Feature}' reference. + * + * + * @param value the new value of the 'Chaining Feature' reference. + * @see #getChainingFeature() + * @generated + */ + void setChainingFeature(Feature value); + + /** + * Returns the value of the 'Feature Chained' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Feature#getOwnedFeatureChaining Owned Feature Chaining}'. + * + * + * + *

The Feature whose values are partly determined by values of the chainingFeature, as described in Feature::chainingFeature.

+ * + * + * @return the value of the 'Feature Chained' reference. + * @see #setFeatureChained(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureChaining_FeatureChained() + * @see org.omg.sysml.model.sysml.Feature#getOwnedFeatureChaining + * @model opposite="ownedFeatureChaining" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getFeatureChained(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureChaining#getFeatureChained Feature Chained}' reference. + * + * + * @param value the new value of the 'Feature Chained' reference. + * @see #getFeatureChained() + * @generated + */ + void setFeatureChained(Feature value); + +} // FeatureChaining diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureDirectionKind.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureDirectionKind.java new file mode 100644 index 000000000..c290e4414 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureDirectionKind.java @@ -0,0 +1,277 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Feature Direction Kind', + * and utility methods for working with them. + * + * + *

FeatureDirectionKind enumerates the possible kinds of direction that a Feature may be given as a member of a Type.

+ * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureDirectionKind() + * @model + * @generated + */ +public enum FeatureDirectionKind implements Enumerator { + /** + * The 'In' literal object. + * + * + * + *

Values of the Feature on each instance of its domain are determined externally to that instance and used internally.

+ * + * + * @see #IN_VALUE + * @generated + * @ordered + */ + IN(0, "in", "in"), + + /** + * The 'Inout' literal object. + * + * + * + *

Values of the Feature on each instance are determined either as in or out directions, or both.

+ * + * + * @see #INOUT_VALUE + * @generated + * @ordered + */ + INOUT(1, "inout", "inout"), + + /** + * The 'Out' literal object. + * + * + * + *

Values of the Feature on each instance of its domain are determined internally to that instance and used externally.

+ * + * + * @see #OUT_VALUE + * @generated + * @ordered + */ + OUT(2, "out", "out"); + + /** + * The 'In' literal value. + * + * + * + *

Values of the Feature on each instance of its domain are determined externally to that instance and used internally.

+ * + * + * @see #IN + * @model name="in" + * @generated + * @ordered + */ + public static final int IN_VALUE = 0; + + /** + * The 'Inout' literal value. + * + * + * + *

Values of the Feature on each instance are determined either as in or out directions, or both.

+ * + * + * @see #INOUT + * @model name="inout" + * @generated + * @ordered + */ + public static final int INOUT_VALUE = 1; + + /** + * The 'Out' literal value. + * + * + * + *

Values of the Feature on each instance of its domain are determined internally to that instance and used externally.

+ * + * + * @see #OUT + * @model name="out" + * @generated + * @ordered + */ + public static final int OUT_VALUE = 2; + + /** + * An array of all the 'Feature Direction Kind' enumerators. + * + * + * @generated + */ + private static final FeatureDirectionKind[] VALUES_ARRAY = + new FeatureDirectionKind[] { + IN, + INOUT, + OUT, + }; + + /** + * A public read-only list of all the 'Feature Direction Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Feature Direction Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static FeatureDirectionKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + FeatureDirectionKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Feature Direction Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static FeatureDirectionKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + FeatureDirectionKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Feature Direction Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static FeatureDirectionKind get(int value) { + switch (value) { + case IN_VALUE: return IN; + case INOUT_VALUE: return INOUT; + case OUT_VALUE: return OUT; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private FeatureDirectionKind(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //FeatureDirectionKind diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureInverting.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureInverting.java new file mode 100644 index 000000000..ac49c0b53 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureInverting.java @@ -0,0 +1,131 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Feature Inverting'. + * + * + * + *

A FeatureInverting is a Relationship between Features asserting that their interpretations (sequences) are the reverse of each other, identified as featureInverted and invertingFeature. For example, a Feature identifying each person's parents is the inverse of a Feature identifying each person's children. A person identified as a parent of another will identify that other as one of their children.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.FeatureInverting#getFeatureInverted Feature Inverted}
  • + *
  • {@link org.omg.sysml.model.sysml.FeatureInverting#getInvertingFeature Inverting Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.FeatureInverting#getOwningFeature Owning Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureInverting() + * @model + * @generated + */ +public interface FeatureInverting extends Relationship { + /** + * Returns the value of the 'Feature Inverted' reference. + * + * + * + *

The Feature that is an inverse of the invertingFeature.

+ * + * @return the value of the 'Feature Inverted' reference. + * @see #setFeatureInverted(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureInverting_FeatureInverted() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='invertingFeatureInverting'" + * annotation="redefines" + * @generated + */ + Feature getFeatureInverted(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureInverting#getFeatureInverted Feature Inverted}' reference. + * + * + * @param value the new value of the 'Feature Inverted' reference. + * @see #getFeatureInverted() + * @generated + */ + void setFeatureInverted(Feature value); + + /** + * Returns the value of the 'Inverting Feature' reference. + * + * + * + *

The Feature that is an inverse of the invertedFeature.

+ * + * @return the value of the 'Inverting Feature' reference. + * @see #setInvertingFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureInverting_InvertingFeature() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='invertedFeatureInverting'" + * annotation="redefines" + * @generated + */ + Feature getInvertingFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureInverting#getInvertingFeature Inverting Feature}' reference. + * + * + * @param value the new value of the 'Inverting Feature' reference. + * @see #getInvertingFeature() + * @generated + */ + void setInvertingFeature(Feature value); + + /** + * Returns the value of the 'Owning Feature' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Feature#getOwnedFeatureInverting Owned Feature Inverting}'. + * + * + * + *

A featureInverted that is also the owningRelatedElement of this FeatureInverting.

+ * + * + * @return the value of the 'Owning Feature' reference. + * @see #setOwningFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureInverting_OwningFeature() + * @see org.omg.sysml.model.sysml.Feature#getOwnedFeatureInverting + * @model opposite="ownedFeatureInverting" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getOwningFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureInverting#getOwningFeature Owning Feature}' reference. + * + * + * @param value the new value of the 'Owning Feature' reference. + * @see #getOwningFeature() + * @generated + */ + void setOwningFeature(Feature value); + +} // FeatureInverting diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureMembership.java new file mode 100644 index 000000000..ed9fa130d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureMembership.java @@ -0,0 +1,106 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Feature Membership'. + * + * + * + *

A FeatureMembership is an OwningMembership between an ownedMemberFeature and an owningType. If the ownedMemberFeature has isVariable = false, then the FeatureMembership implies that the owningType is also a featuringType of the ownedMemberFeature. If the ownedMemberFeature has isVariable = true, then the FeatureMembership implies that the ownedMemberFeature is featured by the snapshots of the owningType, which must specialize the Kernel Semantic Library base class Occurrence.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.FeatureMembership#getOwnedMemberFeature Owned Member Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.FeatureMembership#getOwningType Owning Type}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureMembership() + * @model + * @generated + */ +public interface FeatureMembership extends OwningMembership { + /** + * Returns the value of the 'Owned Member Feature' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Feature#getOwningFeatureMembership Owning Feature Membership}'. + * + * + * + *

The Feature that this FeatureMembership relates to its owningType, making it an ownedFeature of the owningType.

+ * + * + * @return the value of the 'Owned Member Feature' reference. + * @see #setOwnedMemberFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureMembership_OwnedMemberFeature() + * @see org.omg.sysml.model.sysml.Feature#getOwningFeatureMembership + * @model opposite="owningFeatureMembership" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getOwnedMemberFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureMembership#getOwnedMemberFeature Owned Member Feature}' reference. + * + * + * @param value the new value of the 'Owned Member Feature' reference. + * @see #getOwnedMemberFeature() + * @generated + */ + void setOwnedMemberFeature(Feature value); + + /** + * Returns the value of the 'Owning Type' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Type#getOwnedFeatureMembership Owned Feature Membership}'. + * + * + * + *

The Type that owns this FeatureMembership.

+ * + * + * @return the value of the 'Owning Type' reference. + * @see #setOwningType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureMembership_OwningType() + * @see org.omg.sysml.model.sysml.Type#getOwnedFeatureMembership + * @model opposite="ownedFeatureMembership" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getOwningType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureMembership#getOwningType Owning Type}' reference. + * + * + * @param value the new value of the 'Owning Type' reference. + * @see #getOwningType() + * @generated + */ + void setOwningType(Type value); + +} // FeatureMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureReferenceExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureReferenceExpression.java new file mode 100644 index 000000000..614b0d80b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureReferenceExpression.java @@ -0,0 +1,89 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Feature Reference Expression'. + * + * + * + *

A FeatureReferenceExpression is an Expression whose result is bound to a referent Feature.

+ * referent = + * let nonParameterMemberships : Sequence(Membership) = ownedMembership-> + * reject(oclIsKindOf(ParameterMembership)) in + * if nonParameterMemberships->isEmpty() or + * not nonParameterMemberships->first().memberElement.oclIsKindOf(Feature) + * then null + * else nonParameterMemberships->first().memberElement.oclAsType(Feature) + * endif + * ownedMember->selectByKind(BindingConnector)->exists(b | + * b.relatedFeatures->includes(targetFeature) and + * b.relatedFeatures->includes(result)) + * let membership : Membership = + * ownedMembership->reject(m | m.oclIsKindOf(ParameterMembership)) in + * membership->notEmpty() and + * membership->at(1).memberElement.oclIsKindOf(Feature) + * result.owningType() = self and result.specializes(referent) + * result.owningType = self + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.FeatureReferenceExpression#getReferent Referent}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureReferenceExpression() + * @model + * @generated + */ +public interface FeatureReferenceExpression extends Expression { + /** + * Returns the value of the 'Referent' reference. + * + * + * + *

The Feature that is referenced by this FeatureReferenceExpression, which is its first non-parameter member.

+ * + * @return the value of the 'Referent' reference. + * @see #setReferent(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureReferenceExpression_Referent() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='referenceExpression'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getReferent(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureReferenceExpression#getReferent Referent}' reference. + * + * + * @param value the new value of the 'Referent' reference. + * @see #getReferent() + * @generated + */ + void setReferent(Feature value); + +} // FeatureReferenceExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureTyping.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureTyping.java new file mode 100644 index 000000000..5229b5f0c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureTyping.java @@ -0,0 +1,132 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Feature Typing'. + * + * + * + *

FeatureTyping is Specialization in which the specific Type is a Feature. This means the set of instances of the (specific) typedFeature is a subset of the set of instances of the (general) type. In the simplest case, the type is a Classifier, whereupon the typedFeature has values that are instances of the Classifier.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.FeatureTyping#getOwningFeature Owning Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.FeatureTyping#getType Type}
  • + *
  • {@link org.omg.sysml.model.sysml.FeatureTyping#getTypedFeature Typed Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureTyping() + * @model + * @generated + */ +public interface FeatureTyping extends Specialization { + /** + * Returns the value of the 'Owning Feature' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Feature#getOwnedTyping Owned Typing}'. + * + * + * + *

A typedFeature that is also the owningRelatedElement of this FeatureTyping.

+ * + * @return the value of the 'Owning Feature' reference. + * @see #setOwningFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureTyping_OwningFeature() + * @see org.omg.sysml.model.sysml.Feature#getOwnedTyping + * @model opposite="ownedTyping" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getOwningFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureTyping#getOwningFeature Owning Feature}' reference. + * + * + * @param value the new value of the 'Owning Feature' reference. + * @see #getOwningFeature() + * @generated + */ + void setOwningFeature(Feature value); + + /** + * Returns the value of the 'Type' reference. + * + * + * + *

The Type that is being applied by this FeatureTyping.

+ * + * + * @return the value of the 'Type' reference. + * @see #setType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureTyping_Type() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typingByType'" + * annotation="redefines" + * @generated + */ + Type getType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureTyping#getType Type}' reference. + * + * + * @param value the new value of the 'Type' reference. + * @see #getType() + * @generated + */ + void setType(Type value); + + /** + * Returns the value of the 'Typed Feature' reference. + * + * + * + *

The Feature that has a type determined by this FeatureTyping.

+ * + * @return the value of the 'Typed Feature' reference. + * @see #setTypedFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureTyping_TypedFeature() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typing'" + * annotation="redefines" + * @generated + */ + Feature getTypedFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureTyping#getTypedFeature Typed Feature}' reference. + * + * + * @param value the new value of the 'Typed Feature' reference. + * @see #getTypedFeature() + * @generated + */ + void setTypedFeature(Feature value); + +} // FeatureTyping diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureValue.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureValue.java new file mode 100644 index 000000000..db643b2ec --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FeatureValue.java @@ -0,0 +1,188 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Feature Value'. + * + * + * + *

A FeatureValue is a Membership that identifies a particular member Expression that provides the value of the Feature that owns the FeatureValue. The value is specified as either a bound value or an initial value, and as either a concrete or default value. A Feature can have at most one FeatureValue.

+ * + *

The result of the value Expression is bound to the featureWithValue using a BindingConnector. If isInitial = false, then the featuringType of the BindingConnector is the same as the featuringType of the featureWithValue. If isInitial = true, then the featuringType of the BindingConnector is restricted to its startShot. + * + *

If isDefault = false, then the above semantics of the FeatureValue are realized for the given featureWithValue. Otherwise, the semantics are realized for any individual of the featuringType of the featureWithValue, unless another value is explicitly given for the featureWithValue for that individual.

+ * + * not isDefault implies + * featureWithValue.ownedMember-> + * selectByKind(BindingConnector)->exists(b | + * b.relatedFeature->includes(featureWithValue) and + * b.relatedFeature->exists(f | + * f.chainingFeature = Sequence{value, value.result}) and + * if not isInitial then + * b.featuringType = featureWithValue.featuringType + * else + * b.featuringType->exists(t | + * t.oclIsKindOf(Feature) and + * t.oclAsType(Feature).chainingFeature = + * Sequence{ + * resolveGlobal('Base::things::that'). + * memberElement, + * resolveGlobal('Occurrences::Occurrence::startShot'). + * memberElement + * } + * ) + * endif) + * featureWithValue.redefinition.redefinedFeature-> + * closure(redefinition.redefinedFeature).valuation-> + * forAll(isDefault) + * isInitial implies featureWithValue.isVariable + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.FeatureValue#isIsDefault Is Default}
  • + *
  • {@link org.omg.sysml.model.sysml.FeatureValue#isIsInitial Is Initial}
  • + *
  • {@link org.omg.sysml.model.sysml.FeatureValue#getFeatureWithValue Feature With Value}
  • + *
  • {@link org.omg.sysml.model.sysml.FeatureValue#getValue Value}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureValue() + * @model + * @generated + */ +public interface FeatureValue extends OwningMembership { + /** + * Returns the value of the 'Is Default' attribute. + * The default value is "false". + * + * + * + *

Whether this FeatureValue is a concrete specification of the bound or initial value of the featureWithValue, or just a default value that may be overridden.

+ * + * @return the value of the 'Is Default' attribute. + * @see #setIsDefault(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureValue_IsDefault() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsDefault(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureValue#isIsDefault Is Default}' attribute. + * + * + * @param value the new value of the 'Is Default' attribute. + * @see #isIsDefault() + * @generated + */ + void setIsDefault(boolean value); + + /** + * Returns the value of the 'Is Initial' attribute. + * The default value is "false". + * + * + * + *

Whether this FeatureValue specifies a bound value or an initial value for the featureWithValue.

+ * + * @return the value of the 'Is Initial' attribute. + * @see #setIsInitial(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureValue_IsInitial() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsInitial(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureValue#isIsInitial Is Initial}' attribute. + * + * + * @param value the new value of the 'Is Initial' attribute. + * @see #isIsInitial() + * @generated + */ + void setIsInitial(boolean value); + + /** + * Returns the value of the 'Feature With Value' reference. + * + * + * + *

The Feature to be provided a value.

+ *

The Feature to be provided a value.

+ * + * + * @return the value of the 'Feature With Value' reference. + * @see #setFeatureWithValue(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureValue_FeatureWithValue() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='valuation'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getFeatureWithValue(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureValue#getFeatureWithValue Feature With Value}' reference. + * + * + * @param value the new value of the 'Feature With Value' reference. + * @see #getFeatureWithValue() + * @generated + */ + void setFeatureWithValue(Feature value); + + /** + * Returns the value of the 'Value' reference. + * + * + * + *

The Expression that provides the value as a result.

+ *

The Expression that provides the value of the featureWithValue as its result.

+ * + * + * @return the value of the 'Value' reference. + * @see #setValue(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFeatureValue_Value() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='expressedValuation'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getValue(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FeatureValue#getValue Value}' reference. + * + * + * @param value the new value of the 'Value' reference. + * @see #getValue() + * @generated + */ + void setValue(Expression value); + +} // FeatureValue diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Flow.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Flow.java new file mode 100644 index 000000000..39b86aedd --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Flow.java @@ -0,0 +1,218 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Flow'. + * + * + * + *

An Flow is a Step that represents the transfer of values from one Feature to another. Flows can take non-zero time to complete.

+ * + * specializesFromLibrary('Transfers::transfers') + * payloadType = + * if payloadFeature = null then Sequence{} + * else payloadFeature.type + * endif + * sourceOutputFeature = + * if connectorEnd->isEmpty() or + * connectorEnd.ownedFeature->isEmpty() + * then null + * else connectorEnd.ownedFeature->first() + * endif + * targetInputFeature = + * if connectorEnd->size() < 2 or + * connectorEnd->at(2).ownedFeature->isEmpty() + * then null + * else connectorEnd->at(2).ownedFeature->first() + * endif + * flowEnd = connectorEnd->selectByKind(FlowEnd) + * payloadFeature = + * let payloadFeatures : Sequence(PayloadFeature) = + * ownedFeature->selectByKind(PayloadFeature) in + * if payloadFeatures->isEmpty() then null + * else payloadFeatures->first() + * endif + * ownedFeature->selectByKind(PayloadFeature)->size() <= 1 + * ownedEndFeatures->notEmpty() implies + * specializesFromLibrary('Transfers::flowTransfers') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Flow#getFlowEnd Flow End}
  • + *
  • {@link org.omg.sysml.model.sysml.Flow#getInteraction Interaction}
  • + *
  • {@link org.omg.sysml.model.sysml.Flow#getPayloadFeature Payload Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Flow#getPayloadType Payload Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Flow#getSourceOutputFeature Source Output Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Flow#getTargetInputFeature Target Input Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlow() + * @model + * @generated + */ +public interface Flow extends Connector, Step { + /** + * Returns the value of the 'Flow End' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.FlowEnd}. + * + * + * + *

The connectorEnds of this Flow that are FlowEnds.

+ * + * + * @return the value of the 'Flow End' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlow_FlowEnd() + * @model upper="2" transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringFlow'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getFlowEnd(); + + /** + * Returns the value of the 'Interaction' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Interaction}. + * + * + * + *

The Interactions that type this Flow. Interactions are both Associations and Behaviors, which can type Connectors and Steps, respectively.

+ * + * @return the value of the 'Interaction' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlow_Interaction() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typedFlow'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getInteraction(); + + /** + * Returns the value of the 'Payload Feature' reference. + * + * + * + *

The ownedFeature of the Flow that is a PayloadFeature (if any).

+ * + * + * @return the value of the 'Payload Feature' reference. + * @see #setPayloadFeature(PayloadFeature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlow_PayloadFeature() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='flowWithPayloadFeature'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + PayloadFeature getPayloadFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Flow#getPayloadFeature Payload Feature}' reference. + * + * + * @param value the new value of the 'Payload Feature' reference. + * @see #getPayloadFeature() + * @generated + */ + void setPayloadFeature(PayloadFeature value); + + /** + * Returns the value of the 'Payload Type' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Classifier}. + * + * + * + *

The type of values transferred, which is the type of the payloadFeature of the Flow.

+ * + * + * + * @return the value of the 'Payload Type' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlow_PayloadType() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='flowForPayloadType'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getPayloadType(); + + /** + * Returns the value of the 'Source Output Feature' reference. + * + * + * + *

The Feature that provides the items carried by the Flow. It must be a feature of the source of the Flow.

+ * + * + * @return the value of the 'Source Output Feature' reference. + * @see #setSourceOutputFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlow_SourceOutputFeature() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='flowFromOutput'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getSourceOutputFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Flow#getSourceOutputFeature Source Output Feature}' reference. + * + * + * @param value the new value of the 'Source Output Feature' reference. + * @see #getSourceOutputFeature() + * @generated + */ + void setSourceOutputFeature(Feature value); + + /** + * Returns the value of the 'Target Input Feature' reference. + * + * + * + *

The Feature that receives the values carried by the Flow. It must be a feature of the target of the Flow.

+ * + * @return the value of the 'Target Input Feature' reference. + * @see #setTargetInputFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlow_TargetInputFeature() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='flowToInput'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getTargetInputFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Flow#getTargetInputFeature Target Input Feature}' reference. + * + * + * @param value the new value of the 'Target Input Feature' reference. + * @see #getTargetInputFeature() + * @generated + */ + void setTargetInputFeature(Feature value); + +} // Flow diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FlowDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FlowDefinition.java new file mode 100644 index 000000000..6f89d15f1 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FlowDefinition.java @@ -0,0 +1,67 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Flow Definition'. + * + * + * + *

A FlowDefinition is an ActionDefinition that is also an Interaction (which is both a KerML Behavior and Association), representing flows between Usages.

+ * specializesFromLibrary('Flows::MessageAction') + * flowEnd->size() = 2 implies + * specializesFromLibrary('Flows::Message') + * flowEnd->size() <= 2 + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.FlowDefinition#getFlowEnd Flow End}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlowDefinition() + * @model + * @generated + */ +public interface FlowDefinition extends ActionDefinition, Interaction { + /** + * Returns the value of the 'Flow End' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Usage}. + * + * + * + *

The Usages that define the things related by the FlowDefinition.

+ * + * @return the value of the 'Flow End' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlowDefinition_FlowEnd() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='flowDefinitionWithEnd'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getFlowEnd(); + +} // FlowDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FlowEnd.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FlowEnd.java new file mode 100644 index 000000000..b7e6a1eea --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FlowEnd.java @@ -0,0 +1,41 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Flow End'. + * + * + * + *

A FlowEnd is a Feature that is one of the connectorEnds giving the source or target of a Flow. For Flows typed by FlowTransfer or its specializations, FlowEnds must have exactly one ownedFeature, which redefines Transfer::source::sourceOutput or Transfer::target::targetInput and redefines the corresponding feature of the relatedElement for its end.

+ * isEnd + * ownedFeature->size() = 1 + * owningType <> null and owningType.oclIsKindOf(Flow) + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlowEnd() + * @model + * @generated + */ +public interface FlowEnd extends Feature { +} // FlowEnd diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FlowUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FlowUsage.java new file mode 100644 index 000000000..38d9d797c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FlowUsage.java @@ -0,0 +1,66 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Flow Usage'. + * + * + * + *

A FlowUsage is an ActionUsage that is also a ConnectorAsUsage and a KerML Flow.

+ * specializesFromLibrary('Flows::messages') + * ownedEndFeatures->notEmpty() implies + * specializesFromLibrary('Flows::flows') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.FlowUsage#getFlowDefinition Flow Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlowUsage() + * @model + * @generated + */ +public interface FlowUsage extends ConnectorAsUsage, ActionUsage, Flow { + /** + * Returns the value of the 'Flow Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Interaction}. + * + * + * + *

The Interactions that are the types of this FlowUsage. Nominally, these are FlowDefinitions, but other kinds of Kernel Interactions are also allowed, to permit use of Interactions from the Kernel Model Libraries.

+ * + * @return the value of the 'Flow Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFlowUsage_FlowDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedFlow'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getFlowDefinition(); + +} // FlowUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ForLoopActionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ForLoopActionUsage.java new file mode 100644 index 000000000..73933868a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ForLoopActionUsage.java @@ -0,0 +1,118 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'For Loop Action Usage'. + * + * + * + *

A ForLoopActionUsage is a LoopActionUsage that specifies that its bodyAction ActionUsage should be performed once for each value, in order, from the sequence of values obtained as the result of the seqArgument Expression, with the loopVariable set to the value for each iteration.

+ * seqArgument = argument(1) + * + * isSubactionUsage() implies + * specializesFromLibrary('Actions::Action::forLoops') + * loopVariable <> null and + * loopVariable.redefinesFromLibrary('Actions::ForLoopAction::var') + * specializesFromLibrary('Actions::forLoopActions') + * loopVariable = + * if ownedFeature->isEmpty() or + * not ownedFeature->first().oclIsKindOf(ReferenceUsage) then + * null + * else + * ownedFeature->first().oclAsType(ReferenceUsage) + * endif + * ownedFeature->notEmpty() and + * ownedFeature->at(1).oclIsKindOf(ReferenceUsage) + * + * inputParameters()->size() = 2 + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ForLoopActionUsage#getLoopVariable Loop Variable}
  • + *
  • {@link org.omg.sysml.model.sysml.ForLoopActionUsage#getSeqArgument Seq Argument}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getForLoopActionUsage() + * @model + * @generated + */ +public interface ForLoopActionUsage extends LoopActionUsage { + /** + * Returns the value of the 'Loop Variable' reference. + * + * + * + *

The ownedFeature of this ForLoopActionUsage that acts as the loop variable, which is assigned the successive values of the input sequence on each iteration. It is the ownedFeature that redefines ForLoopAction::var.

+ * + * @return the value of the 'Loop Variable' reference. + * @see #setLoopVariable(ReferenceUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getForLoopActionUsage_LoopVariable() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='forLoopAction'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ReferenceUsage getLoopVariable(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ForLoopActionUsage#getLoopVariable Loop Variable}' reference. + * + * + * @param value the new value of the 'Loop Variable' reference. + * @see #getLoopVariable() + * @generated + */ + void setLoopVariable(ReferenceUsage value); + + /** + * Returns the value of the 'Seq Argument' reference. + * + * + * + *

The Expression whose result provides the sequence of values to which the loopVariable is set for each iterative performance of the bodyAction. It is the Expression whose result is bound to the seq input parameter of this ForLoopActionUsage.

+ * + * + * @return the value of the 'Seq Argument' reference. + * @see #setSeqArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getForLoopActionUsage_SeqArgument() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='forLoopAction'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getSeqArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ForLoopActionUsage#getSeqArgument Seq Argument}' reference. + * + * + * @param value the new value of the 'Seq Argument' reference. + * @see #getSeqArgument() + * @generated + */ + void setSeqArgument(Expression value); + +} // ForLoopActionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ForkNode.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ForkNode.java new file mode 100644 index 000000000..1deb083de --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ForkNode.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Fork Node'. + * + * + * + *

A ForkNode is a ControlNode that must be followed by successor Actions as given by all its outgoing Successions.

+ * targetConnector->selectByKind(Succession)->size() <= 1 + * specializesFromLibrary('Actions::Action::forks') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getForkNode() + * @model + * @generated + */ +public interface ForkNode extends ControlNode { +} // ForkNode diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FramedConcernMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FramedConcernMembership.java new file mode 100644 index 000000000..255ec033a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/FramedConcernMembership.java @@ -0,0 +1,102 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Framed Concern Membership'. + * + * + * + *

A FramedConcernMembership is a RequirementConstraintMembership for a framed ConcernUsage of a RequirementDefinition or RequirementUsage.

+ * kind = RequirementConstraintKind::requirement + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.FramedConcernMembership#getOwnedConcern Owned Concern}
  • + *
  • {@link org.omg.sysml.model.sysml.FramedConcernMembership#getReferencedConcern Referenced Concern}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFramedConcernMembership() + * @model + * @generated + */ +public interface FramedConcernMembership extends RequirementConstraintMembership { + /** + * Returns the value of the 'Owned Concern' reference. + * + * + * + *

The ConcernUsage that is the ownedConstraint of this FramedConcernMembership.

+ * + * @return the value of the 'Owned Concern' reference. + * @see #setOwnedConcern(ConcernUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFramedConcernMembership_OwnedConcern() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='framedConstraintMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ConcernUsage getOwnedConcern(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FramedConcernMembership#getOwnedConcern Owned Concern}' reference. + * + * + * @param value the new value of the 'Owned Concern' reference. + * @see #getOwnedConcern() + * @generated + */ + void setOwnedConcern(ConcernUsage value); + + /** + * Returns the value of the 'Referenced Concern' reference. + * + * + * + *

The ConcernUsage that is referenced through this FramedConcernMembership. It is the referencedConstraint of the FramedConcernMembership considered as a RequirementConstraintMembership, which must be a ConcernUsage.

+ * + * @return the value of the 'Referenced Concern' reference. + * @see #setReferencedConcern(ConcernUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFramedConcernMembership_ReferencedConcern() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='referencingConcernMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ConcernUsage getReferencedConcern(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.FramedConcernMembership#getReferencedConcern Referenced Concern}' reference. + * + * + * @param value the new value of the 'Referenced Concern' reference. + * @see #getReferencedConcern() + * @generated + */ + void setReferencedConcern(ConcernUsage value); + +} // FramedConcernMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Function.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Function.java new file mode 100644 index 000000000..705320b88 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Function.java @@ -0,0 +1,145 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Function'. + * + * + * + *

A Function is a Behavior that has an out parameter that is identified as its result. A Function represents the performance of a calculation that produces the values of its result parameter. This calculation may be decomposed into Expressions that are steps of the Function.

+ * + * featureMembership-> + * selectByKind(ReturnParameterMembership)-> + * size() = 1 + * specializesFromLibrary('Performances::Evaluation') + * ownedMembership.selectByKind(ResultExpressionMembership)-> + * forAll(mem | ownedFeature.selectByKind(BindingConnector)-> + * exists(binding | + * binding.relatedFeature->includes(result) and + * binding.relatedFeature->includes(mem.ownedResultExpression.result))) + * result = + * let resultParams : Sequence(Feature) = + * featureMemberships-> + * selectByKind(ReturnParameterMembership). + * ownedMemberParameter in + * if resultParams->notEmpty() then resultParams->first() + * else null + * endif + * membership->selectByKind(ResultExpressionMembership)->size() <= 1 + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Function#isIsModelLevelEvaluable Is Model Level Evaluable}
  • + *
  • {@link org.omg.sysml.model.sysml.Function#getExpression Expression}
  • + *
  • {@link org.omg.sysml.model.sysml.Function#getResult Result}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getFunction() + * @model + * @generated + */ +public interface Function extends Behavior { + /** + * Returns the value of the 'Is Model Level Evaluable' attribute. + * + * + * + *

Whether this Function can be used as the function of a model-level evaluable InvocationExpression. Certain Functions from the Kernel Functions Library are considered to have isModelLevelEvaluable = true. For all other Functions it is false.

+ * + *

Note: See the specification of the KerML concrete syntax notation for Expressions for an identification of which library Functions are model-level evaluable.

+ * + * @return the value of the 'Is Model Level Evaluable' attribute. + * @see #setIsModelLevelEvaluable(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFunction_IsModelLevelEvaluable() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isIsModelLevelEvaluable(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Function#isIsModelLevelEvaluable Is Model Level Evaluable}' attribute. + * + * + * @param value the new value of the 'Is Model Level Evaluable' attribute. + * @see #isIsModelLevelEvaluable() + * @generated + */ + void setIsModelLevelEvaluable(boolean value); + + /** + * Returns the value of the 'Expression' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Expression}. + * + * + * + *

The Expressions that are steps in the calculation of the result of this Function.

+ * + *

The set of expressions that represent computational steps or parts of a system of equations within the Function.

+ * + * + * @return the value of the 'Expression' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getFunction_Expression() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='computedFunction'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getExpression(); + + /** + * Returns the value of the 'Result' reference. + * + * + * + *

The object or value that is the result of evaluating the Function.

+ *

The result parameter of the Function, which is owned by the Function via a ReturnParameterMembership.

+ * + * + * @return the value of the 'Result' reference. + * @see #setResult(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getFunction_Result() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='computingFunction'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getResult(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Function#getResult Result}' reference. + * + * + * @param value the new value of the 'Result' reference. + * @see #getResult() + * @generated + */ + void setResult(Feature value); + +} // Function diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/IfActionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/IfActionUsage.java new file mode 100644 index 000000000..a25c77406 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/IfActionUsage.java @@ -0,0 +1,159 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'If Action Usage'. + * + * + * + *

An IfActionUsage is an ActionUsage that specifies that the thenAction ActionUsage should be performed if the result of the ifArgument Expression is true. It may also optionally specify an elseAction ActionUsage that is performed if the result of the ifArgument is false.

+ * thenAction = + * let parameter : Feature = inputParameter(2) in + * if parameter <> null and parameter.oclIsKindOf(ActionUsage) then + * parameter.oclAsType(ActionUsage) + * else + * null + * endif + * isSubactionUsage() implies + * specializesFromLibrary('Actions::Action::ifSubactions') + * if elseAction = null then + * specializesFromLibrary('Actions::ifThenActions') + * else + * specializesFromLibrary('Actions::ifThenElseActions') + * endif + * ifArgument = + * let parameter : Feature = inputParameter(1) in + * if parameter <> null and parameter.oclIsKindOf(Expression) then + * parameter.oclAsType(Expression) + * else + * null + * endif + * elseAction = + * let parameter : Feature = inputParameter(3) in + * if parameter <> null and parameter.oclIsKindOf(ActionUsage) then + * parameter.oclAsType(ActionUsage) + * else + * null + * endif + * inputParameters()->size() >= 2 + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.IfActionUsage#getElseAction Else Action}
  • + *
  • {@link org.omg.sysml.model.sysml.IfActionUsage#getIfArgument If Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.IfActionUsage#getThenAction Then Action}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getIfActionUsage() + * @model + * @generated + */ +public interface IfActionUsage extends ActionUsage { + /** + * Returns the value of the 'Else Action' reference. + * + * + * + *

The ActionUsage that is to be performed if the result of the ifArgument is false. It is the (optional) third parameter of the IfActionUsage.

+ * + * + * @return the value of the 'Else Action' reference. + * @see #setElseAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getIfActionUsage_ElseAction() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='ifElseAction'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getElseAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.IfActionUsage#getElseAction Else Action}' reference. + * + * + * @param value the new value of the 'Else Action' reference. + * @see #getElseAction() + * @generated + */ + void setElseAction(ActionUsage value); + + /** + * Returns the value of the 'If Argument' reference. + * + * + * + *

The Expression whose result determines whether the thenAction or (optionally) the elseAction is performed. It is the first parameter of the IfActionUsage.

+ * + * + * @return the value of the 'If Argument' reference. + * @see #setIfArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getIfActionUsage_IfArgument() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='ifAction'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getIfArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.IfActionUsage#getIfArgument If Argument}' reference. + * + * + * @param value the new value of the 'If Argument' reference. + * @see #getIfArgument() + * @generated + */ + void setIfArgument(Expression value); + + /** + * Returns the value of the 'Then Action' reference. + * + * + * + *

The ActionUsage that is to be performed if the result of the ifArgument is true. It is the second parameter of the IfActionUsage.

+ * + * + * @return the value of the 'Then Action' reference. + * @see #setThenAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getIfActionUsage_ThenAction() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='ifThenAction'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getThenAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.IfActionUsage#getThenAction Then Action}' reference. + * + * + * @param value the new value of the 'Then Action' reference. + * @see #getThenAction() + * @generated + */ + void setThenAction(ActionUsage value); + +} // IfActionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Import.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Import.java new file mode 100644 index 000000000..7a9f220e2 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Import.java @@ -0,0 +1,207 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Import'. + * + * + * + *

An Import is an Relationship between its importOwningNamespace and either a Membership (for a MembershipImport) or another Namespace (for a NamespaceImport), which determines a set of Memberships that become importedMemberships of the importOwningNamespace. If isImportAll = false (the default), then only public Memberships are considered "visible". If isImportAll = true, then all Memberships are considered "visible", regardless of their declared visibility. If isRecursive = true, then visible Memberships are also recursively imported from owned sub-Namespaces.

+ * + * + * importOwningNamespace.owner = null implies + * visibility = VisibilityKind::private + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Import#isIsImportAll Is Import All}
  • + *
  • {@link org.omg.sysml.model.sysml.Import#isIsRecursive Is Recursive}
  • + *
  • {@link org.omg.sysml.model.sysml.Import#getVisibility Visibility}
  • + *
  • {@link org.omg.sysml.model.sysml.Import#getImportedElement Imported Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Import#getImportOwningNamespace Import Owning Namespace}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getImport() + * @model abstract="true" + * @generated + */ +public interface Import extends Relationship { + /** + * Returns the value of the 'Is Import All' attribute. + * The default value is "false". + * + * + * + *

Whether to import memberships without regard to declared visibility.

+ * + * + * @return the value of the 'Is Import All' attribute. + * @see #setIsImportAll(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getImport_IsImportAll() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsImportAll(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Import#isIsImportAll Is Import All}' attribute. + * + * + * @param value the new value of the 'Is Import All' attribute. + * @see #isIsImportAll() + * @generated + */ + void setIsImportAll(boolean value); + + /** + * Returns the value of the 'Is Recursive' attribute. + * The default value is "false". + * + * + * + *

Whether to recursively import Memberships from visible, owned sub-Namespaces.

+ * + * @return the value of the 'Is Recursive' attribute. + * @see #setIsRecursive(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getImport_IsRecursive() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsRecursive(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Import#isIsRecursive Is Recursive}' attribute. + * + * + * @param value the new value of the 'Is Recursive' attribute. + * @see #isIsRecursive() + * @generated + */ + void setIsRecursive(boolean value); + + /** + * Returns the value of the 'Visibility' attribute. + * The default value is "private". + * The literals are from the enumeration {@link org.omg.sysml.model.sysml.VisibilityKind}. + * + * + * + *

The visibility level of the imported members from this Import relative to the importOwningNamespace. The default is private.

+ * + * + * @return the value of the 'Visibility' attribute. + * @see org.omg.sysml.model.sysml.VisibilityKind + * @see #setVisibility(VisibilityKind) + * @see org.omg.sysml.model.sysml.SysMLPackage#getImport_Visibility() + * @model default="private" required="true" ordered="false" + * @generated + */ + VisibilityKind getVisibility(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Import#getVisibility Visibility}' attribute. + * + * + * @param value the new value of the 'Visibility' attribute. + * @see org.omg.sysml.model.sysml.VisibilityKind + * @see #getVisibility() + * @generated + */ + void setVisibility(VisibilityKind value); + + /** + * Returns the value of the 'Imported Element' reference. + * + * + * + *

The effectively imported Element for this Import. For a MembershipImport, this is the memberElement of the importedMembership. For a NamespaceImport, it is the importedNamespace.

+ * + * @return the value of the 'Imported Element' reference. + * @see #setImportedElement(Element) + * @see org.omg.sysml.model.sysml.SysMLPackage#getImport_ImportedElement() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='membershipImport'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Element getImportedElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Import#getImportedElement Imported Element}' reference. + * + * + * @param value the new value of the 'Imported Element' reference. + * @see #getImportedElement() + * @generated + */ + void setImportedElement(Element value); + + /** + * Returns the value of the 'Import Owning Namespace' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Namespace#getOwnedImport Owned Import}'. + * + * + * + *

The Namespace into which Memberships are imported by this Import, which must be the owningRelatedElement of the Import.

+ * + * + * @return the value of the 'Import Owning Namespace' reference. + * @see #setImportOwningNamespace(Namespace) + * @see org.omg.sysml.model.sysml.SysMLPackage#getImport_ImportOwningNamespace() + * @see org.omg.sysml.model.sysml.Namespace#getOwnedImport + * @model opposite="ownedImport" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Namespace getImportOwningNamespace(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Import#getImportOwningNamespace Import Owning Namespace}' reference. + * + * + * @param value the new value of the 'Import Owning Namespace' reference. + * @see #getImportOwningNamespace() + * @generated + */ + void setImportOwningNamespace(Namespace value); + + /** + * + * + * + *

Returns Memberships that are to become importedMemberships of the importOwningNamespace. (The excluded parameter is used to handle the possibility of circular Import Relationships.)

+ * + * + * @model excludedMany="true" excludedOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList importedMemberships(EList excluded); + +} // Import diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/IncludeUseCaseUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/IncludeUseCaseUsage.java new file mode 100644 index 000000000..a96949cfb --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/IncludeUseCaseUsage.java @@ -0,0 +1,80 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Include Use Case Usage'. + * + * + * + *

An IncludeUseCaseUsage is a UseCaseUsage that represents the inclusion of a UseCaseUsage by a UseCaseDefinition or UseCaseUsage. Unless it is the IncludeUseCaseUsage itself, the UseCaseUsage to be included is related to the includedUseCase by a ReferenceSubsetting Relationship. An IncludeUseCaseUsage is also a PerformActionUsage, with its useCaseIncluded as the performedAction.

+ * + * owningType <> null and + * (owningType.oclIsKindOf(UseCaseDefinition) or + * owningType.oclIsKindOf(UseCaseUsage) implies + * specializesFromLibrary('UseCases::UseCase::includedUseCases') + * referencedFeatureTarget() <> null implies + * referencedFeatureTarget().oclIsKindOf(UseCaseUsage) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.IncludeUseCaseUsage#getUseCaseIncluded Use Case Included}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getIncludeUseCaseUsage() + * @model + * @generated + */ +public interface IncludeUseCaseUsage extends UseCaseUsage, PerformActionUsage { + /** + * Returns the value of the 'Use Case Included' reference. + * + * + * + *

The UseCaseUsage to be included by this IncludeUseCaseUsage. It is the performedAction of the IncludeUseCaseUsage considered as a PerformActionUsage, which must be a UseCaseUsage.

+ * + * + * @return the value of the 'Use Case Included' reference. + * @see #setUseCaseIncluded(UseCaseUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getIncludeUseCaseUsage_UseCaseIncluded() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='useCaseInclusion'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + UseCaseUsage getUseCaseIncluded(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.IncludeUseCaseUsage#getUseCaseIncluded Use Case Included}' reference. + * + * + * @param value the new value of the 'Use Case Included' reference. + * @see #getUseCaseIncluded() + * @generated + */ + void setUseCaseIncluded(UseCaseUsage value); + +} // IncludeUseCaseUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/IndexExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/IndexExpression.java new file mode 100644 index 000000000..105ad2a47 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/IndexExpression.java @@ -0,0 +1,42 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Index Expression'. + * + * + * + *

An IndexExpression is an OperatorExpression whose operator is "#", which resolves to the Function BasicFunctions::'#' from the Kernel Functions Library.

+ * arguments->notEmpty() and + * not arguments->first().result.specializesFromLibrary('Collections::Array') implies + * result.specializes(arguments->first().result) + * operator = '#' + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getIndexExpression() + * @model + * @generated + */ +public interface IndexExpression extends OperatorExpression { +} // IndexExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InstantiationExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InstantiationExpression.java new file mode 100644 index 000000000..0f90f323d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InstantiationExpression.java @@ -0,0 +1,117 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Instantiation Expression'. + * + * + * + *

An InstantiationExpression is an Expression that instantiates its instantiatedType, binding some or all of the features of that Type to the results of its arguments.

+ * + *

InstantiationExpression is abstract, with concrete subclasses InvocationExpression and ConstructorExpression.

+ * result.owningType = self + * instantiatedType = instantiatedType() + * instantiatedType() <> null + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.InstantiationExpression#getArgument Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.InstantiationExpression#getInstantiatedType Instantiated Type}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getInstantiationExpression() + * @model abstract="true" + * @generated + */ +public interface InstantiationExpression extends Expression { + /** + * Returns the value of the 'Argument' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Expression}. + * + * + * + *

The Expressions whose results are bound to features of the instantiatedType. The arguments are ordered consistent with the order of the features, though they may not be one-to-one with all the features.

+ * + *

Note. The derivation of argument is given in the concrete subclasses of InstantiationExpression.

+ * + * @return the value of the 'Argument' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getInstantiationExpression_Argument() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='instantiation'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getArgument(); + + /** + * Returns the value of the 'Instantiated Type' reference. + * + * + * + *

The Type that is being instantiated.

+ * + * @return the value of the 'Instantiated Type' reference. + * @see #setInstantiatedType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getInstantiationExpression_InstantiatedType() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='instantiationExpression'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getInstantiatedType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.InstantiationExpression#getInstantiatedType Instantiated Type}' reference. + * + * + * @param value the new value of the 'Instantiated Type' reference. + * @see #getInstantiatedType() + * @generated + */ + void setInstantiatedType(Type value); + + /** + * + * + * + *

Return the Type to act as the instantiatedType for this InstantiationExpression. By default, this is the memberElement of the first ownedMembership that is not a FeatureMembership, which must be a Type.

+ * + *

Note. This operation is overridden in the subclass OperatorExpression.

+ * let members : Sequence(Element) = ownedMembership-> + * reject(oclIsKindOf(FeatureMembership)).memberElement in + * if members->isEmpty() or not members->first().oclIsKindOf(Type) then null + * else typeMembers->first().oclAsType(Type) + * endif + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type instantiatedType(); + +} // InstantiationExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Interaction.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Interaction.java new file mode 100644 index 000000000..a671255f5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Interaction.java @@ -0,0 +1,39 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Interaction'. + * + * + * + *

An Interaction is a Behavior that is also an Association, providing a context for multiple objects that have behaviors that impact one another.

+ * + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getInteraction() + * @model + * @generated + */ +public interface Interaction extends Association, Behavior { +} // Interaction diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InterfaceDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InterfaceDefinition.java new file mode 100644 index 000000000..976d6b60d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InterfaceDefinition.java @@ -0,0 +1,68 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Interface Definition'. + * + * + * + *

An InterfaceDefinition is a ConnectionDefinition all of whose ends are PortUsages, defining an interface between elements that interact through such ports.

+ * specializesFromLibrary('Interfaces::Interface') + * ownedEndFeature->size() = 2 implies + * specializesFromLibrary('Interfaces::BinaryInterface') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.InterfaceDefinition#getInterfaceEnd Interface End}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getInterfaceDefinition() + * @model + * @generated + */ +public interface InterfaceDefinition extends ConnectionDefinition { + /** + * Returns the value of the 'Interface End' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PortUsage}. + * + * + * + *

The PortUsages that are the connectionEnds of this InterfaceDefinition. + * + * + * + * @return the value of the 'Interface End' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getInterfaceDefinition_InterfaceEnd() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='interfaceDefinitionWithEnd'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getInterfaceEnd(); + +} // InterfaceDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InterfaceUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InterfaceUsage.java new file mode 100644 index 000000000..e04d6c191 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InterfaceUsage.java @@ -0,0 +1,66 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Interface Usage'. + * + * + * + *

An InterfaceUsage is a Usage of an InterfaceDefinition to represent an interface connecting parts of a system through specific ports.

+ * ownedEndFeature->size() = 2 implies + * specializesFromLibrary('Interfaces::binaryInterfaces') + * specializesFromLibrary('Interfaces::interfaces') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.InterfaceUsage#getInterfaceDefinition Interface Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getInterfaceUsage() + * @model + * @generated + */ +public interface InterfaceUsage extends ConnectionUsage { + /** + * Returns the value of the 'Interface Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.InterfaceDefinition}. + * + * + * + *

The InterfaceDefinitions that type this InterfaceUsage.

+ * + * @return the value of the 'Interface Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getInterfaceUsage_InterfaceDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedInterface'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getInterfaceDefinition(); + +} // InterfaceUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Intersecting.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Intersecting.java new file mode 100644 index 000000000..e62bfc076 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Intersecting.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Intersecting'. + * + * + * + *

Intersecting is a Relationship that makes its intersectingType one of the intersectingTypes of its typeIntersected.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Intersecting#getIntersectingType Intersecting Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Intersecting#getTypeIntersected Type Intersected}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getIntersecting() + * @model + * @generated + */ +public interface Intersecting extends Relationship { + /** + * Returns the value of the 'Intersecting Type' reference. + * + * + * + *

Type that partly determines interpretations of typeIntersected, as described in Type::intersectingType.

+ * + * + * @return the value of the 'Intersecting Type' reference. + * @see #setIntersectingType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getIntersecting_IntersectingType() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='intersectedIntersecting'" + * annotation="redefines" + * @generated + */ + Type getIntersectingType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Intersecting#getIntersectingType Intersecting Type}' reference. + * + * + * @param value the new value of the 'Intersecting Type' reference. + * @see #getIntersectingType() + * @generated + */ + void setIntersectingType(Type value); + + /** + * Returns the value of the 'Type Intersected' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Type#getOwnedIntersecting Owned Intersecting}'. + * + * + * + *

Type with interpretations partly determined by intersectingType, as described in Type::intersectingType.

+ * + * + * @return the value of the 'Type Intersected' reference. + * @see #setTypeIntersected(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getIntersecting_TypeIntersected() + * @see org.omg.sysml.model.sysml.Type#getOwnedIntersecting + * @model opposite="ownedIntersecting" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getTypeIntersected(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Intersecting#getTypeIntersected Type Intersected}' reference. + * + * + * @param value the new value of the 'Type Intersected' reference. + * @see #getTypeIntersected() + * @generated + */ + void setTypeIntersected(Type value); + +} // Intersecting diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Invariant.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Invariant.java new file mode 100644 index 000000000..151f94b1d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Invariant.java @@ -0,0 +1,77 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Invariant'. + * + * + * + *

An Invariant is a BooleanExpression that is asserted to have a specific Boolean result value. If isNegated = false, then the result is asserted to be true. If isNegated = true, then the result is asserted to be false.

+ * + * if isNegated then + * specializesFromLibrary('Performances::falseEvaluations') + * else + * specializesFromLibrary('Performances::trueEvaluations') + * endif + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Invariant#isIsNegated Is Negated}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getInvariant() + * @model + * @generated + */ +public interface Invariant extends BooleanExpression { + /** + * Returns the value of the 'Is Negated' attribute. + * The default value is "false". + * + * + * + *

Whether this Invariant is asserted to be false rather than true.

+ * + * + * @return the value of the 'Is Negated' attribute. + * @see #setIsNegated(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getInvariant_IsNegated() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsNegated(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Invariant#isIsNegated Is Negated}' attribute. + * + * + * @param value the new value of the 'Is Negated' attribute. + * @see #isIsNegated() + * @generated + */ + void setIsNegated(boolean value); + +} // Invariant diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InvocationExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InvocationExpression.java new file mode 100644 index 000000000..6beb20f8d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/InvocationExpression.java @@ -0,0 +1,91 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Invocation Expression'. + * + * + * + *

An InvocationExpression is an InstantiationExpression whose instantiatedType must be a Behavior or a Feature typed by a single Behavior (such as a Step). Each of the input parameters of the instantiatedType are bound to the result of an argument Expression. If the instantiatedType is a Function or a Feature typed by a Function, then the result of the InvocationExpression is the result of the invoked Function. Otherwise, the result is an instance of the instantiatedType (essentially like a behavioral ConstructorExpression).

+ * + * not instantiatedType.oclIsKindOf(Function) and + * not (instantiatedType.oclIsKindOf(Feature) and + * instantiatedType.oclAsType(Feature).type->exists(oclIsKindOf(Function))) implies + * ownedFeature.selectByKind(BindingConnector)->exists( + * relatedFeature->includes(self) and + * relatedFeature->includes(result)) + * TBD + * instantiatedType.input->collect(inp | + * ownedFeatures->select(redefines(inp)).valuation-> + * select(v | v <> null).value + * ) + * let parameters : OrderedSet(Feature) = instantiatedType.input in + * input->forAll(inp | + * inp.ownedRedefinition.redefinedFeature-> + * intersection(parameters)->size() = 1) + * let features : OrderedSet(Feature) = instantiatedType.feature in + * input->forAll(inp1 | input->forAll(inp2 | + * inp1 <> inp2 implies + * inp1.ownedRedefinition.redefinedFeature-> + * intersection(inp2.ownedRedefinition.redefinedFeature)-> + * intersection(features)->isEmpty())) + * not instantiatedType.oclIsKindOf(Function) and + * not (instantiatedType.oclIsKindOf(Feature) and + * instantiatedType.oclAsType(Feature).type->exists(oclIsKindOf(Function))) implies + * result.specializes(instantiatedType) + * specializes(instantiatedType) + * instantiatedType.oclIsKindOf(Behavior) or + * instantiatedType.oclIsKindOf(Feature) and + * instantiatedType.type->exists(oclIsKindOf(Behavior)) and + * instantiatedType.type->size(1) + * ownedFeature->forAll(f | + * f <> result implies + * f.direction = FeatureDirectionKind::_'in') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.InvocationExpression#getOperand Operand}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getInvocationExpression() + * @model + * @generated + */ +public interface InvocationExpression extends InstantiationExpression { + /** + * Returns the value of the 'Operand' containment reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Expression}. + * + * + * @return the value of the 'Operand' containment reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getInvocationExpression_Operand() + * @model containment="true" transient="true" volatile="true" derived="true" + * @generated + */ + EList getOperand(); + +} // InvocationExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ItemDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ItemDefinition.java new file mode 100644 index 000000000..8e8f186a7 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ItemDefinition.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Item Definition'. + * + * + * + *

An ItemDefinition is an OccurrenceDefinition of the Structure of things that may themselves be systems or parts of systems, but may also be things that are acted on by a system or parts of a system, but which do not necessarily perform actions themselves. This includes items that can be exchanged between parts of a system, such as water or electrical signals.

+ * + * specializesFromLibrary('Items::Item') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getItemDefinition() + * @model + * @generated + */ +public interface ItemDefinition extends OccurrenceDefinition, Structure { +} // ItemDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ItemUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ItemUsage.java new file mode 100644 index 000000000..69fbe06af --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ItemUsage.java @@ -0,0 +1,69 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Item Usage'. + * + * + * + *

An ItemUsage is a ItemUsage whose definition is a Structure. Nominally, if the definition is an ItemDefinition, an ItemUsage is a ItemUsage of that ItemDefinition within a system. However, other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Model Libraries.

+ * itemDefinition = occurrenceDefinition->selectByKind(Structure) + * specializesFromLibrary('Items::items') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(ItemDefinition) or + * owningType.oclIsKindOf(ItemUsage)) implies + * specializesFromLibrary('Items::Item::subitem') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ItemUsage#getItemDefinition Item Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getItemUsage() + * @model + * @generated + */ +public interface ItemUsage extends OccurrenceUsage { + /** + * Returns the value of the 'Item Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Structure}. + * + * + * + *

The Structures that are the definitions of this ItemUsage. Nominally, these are ItemDefinitions, but other kinds of Kernel Structures are also allowed, to permit use of Structures from the Kernel Library.

+ * + * @return the value of the 'Item Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getItemUsage_ItemDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedItem'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getItemDefinition(); + +} // ItemUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/JoinNode.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/JoinNode.java new file mode 100644 index 000000000..497cef463 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/JoinNode.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Join Node'. + * + * + * + *

A JoinNode is a ControlNode that waits for the completion of all the predecessor Actions given by incoming Successions.

+ * sourceConnector->selectByKind(Succession)->size() <= 1 + * specializesFromLibrary('Actions::Action::join') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getJoinNode() + * @model + * @generated + */ +public interface JoinNode extends ControlNode { +} // JoinNode diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LibraryPackage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LibraryPackage.java new file mode 100644 index 000000000..5b95eced4 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LibraryPackage.java @@ -0,0 +1,71 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Library Package'. + * + * + * + *

A LibraryPackage is a Package that is the container for a model library. A LibraryPackage is itself a library Element as are all Elements that are directly or indirectly contained in it.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.LibraryPackage#isIsStandard Is Standard}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getLibraryPackage() + * @model + * @generated + */ +public interface LibraryPackage extends org.omg.sysml.model.sysml.Package { + /** + * Returns the value of the 'Is Standard' attribute. + * The default value is "false". + * + * + * + *

Whether this LibraryPackage contains a standard library model. This should only be set to true for LibraryPackages in the standard Kernel Model Libraries or in normative model libraries for a language built on KerML.

+ * + * @return the value of the 'Is Standard' attribute. + * @see #setIsStandard(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getLibraryPackage_IsStandard() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsStandard(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.LibraryPackage#isIsStandard Is Standard}' attribute. + * + * + * @param value the new value of the 'Is Standard' attribute. + * @see #isIsStandard() + * @generated + */ + void setIsStandard(boolean value); + +} // LibraryPackage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralBoolean.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralBoolean.java new file mode 100644 index 000000000..28b21d07e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralBoolean.java @@ -0,0 +1,73 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Literal Boolean'. + * + * + * + *

LiteralBoolean is a LiteralExpression that provides a Boolean value as a result. Its result parameter must have type Boolean.

+ * + * specializesFromLibrary('Performances::literalBooleanEvaluations') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.LiteralBoolean#isValue Value}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getLiteralBoolean() + * @model + * @generated + */ +public interface LiteralBoolean extends LiteralExpression { + /** + * Returns the value of the 'Value' attribute. + * + * + * + *

The Boolean value that is the result of evaluating this LiteralBoolean.

+ *

The Boolean value that is the result of evaluating this Expression.

+ * + * + * @return the value of the 'Value' attribute. + * @see #setValue(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getLiteralBoolean_Value() + * @model required="true" ordered="false" + * @generated + */ + boolean isValue(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.LiteralBoolean#isValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #isValue() + * @generated + */ + void setValue(boolean value); + +} // LiteralBoolean diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralExpression.java new file mode 100644 index 000000000..79ee5ab6c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralExpression.java @@ -0,0 +1,41 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Literal Expression'. + * + * + * + *

A LiteralExpression is an Expression that provides a basic DataValue as a result.

+ * + * isModelLevelEvaluable = true + * specializesFromLibrary('Performances::literalEvaluations') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getLiteralExpression() + * @model + * @generated + */ +public interface LiteralExpression extends Expression { +} // LiteralExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralInfinity.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralInfinity.java new file mode 100644 index 000000000..332da3e41 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralInfinity.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Literal Infinity'. + * + * + * + *

A LiteralInfinity is a LiteralExpression that provides the positive infinity value (*). It's result must have the type Positive.

+ * + * specializesFromLibrary('Performances::literalIntegerEvaluations') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getLiteralInfinity() + * @model + * @generated + */ +public interface LiteralInfinity extends LiteralExpression { +} // LiteralInfinity diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralInteger.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralInteger.java new file mode 100644 index 000000000..0f7f8094c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralInteger.java @@ -0,0 +1,73 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Literal Integer'. + * + * + * + *

A LiteralInteger is a LiteralExpression that provides an Integer value as a result. Its result parameter must have the type Integer.

+ * + * specializesFromLibrary('Performances::literalIntegerEvaluations') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.LiteralInteger#getValue Value}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getLiteralInteger() + * @model + * @generated + */ +public interface LiteralInteger extends LiteralExpression { + /** + * Returns the value of the 'Value' attribute. + * + * + * + *

The Integer value that is the result of evaluating this LiteralInteger.

+ *

The Integer value that is the result of evaluating this Expression.

+ * + * + * @return the value of the 'Value' attribute. + * @see #setValue(int) + * @see org.omg.sysml.model.sysml.SysMLPackage#getLiteralInteger_Value() + * @model required="true" ordered="false" + * @generated + */ + int getValue(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.LiteralInteger#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(int value); + +} // LiteralInteger diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralRational.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralRational.java new file mode 100644 index 000000000..c62c4de2a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralRational.java @@ -0,0 +1,73 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Literal Rational'. + * + * + * + *

A LiteralRational is a LiteralExpression that provides a Rational value as a result. Its result parameter must have the type Rational.

+ * + * specializesFromLibrary('Performances::literalRationalEvaluations') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.LiteralRational#getValue Value}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getLiteralRational() + * @model + * @generated + */ +public interface LiteralRational extends LiteralExpression { + /** + * Returns the value of the 'Value' attribute. + * + * + * + *

The value whose rational approximation is the result of evaluating this LiteralRational.

+ * + *

The Real value that is the result of evaluating this Expression.

+ * + * @return the value of the 'Value' attribute. + * @see #setValue(double) + * @see org.omg.sysml.model.sysml.SysMLPackage#getLiteralRational_Value() + * @model required="true" ordered="false" + * @generated + */ + double getValue(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.LiteralRational#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(double value); + +} // LiteralRational diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralString.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralString.java new file mode 100644 index 000000000..bbc75b1eb --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LiteralString.java @@ -0,0 +1,73 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Literal String'. + * + * + * + *

A LiteralString is a LiteralExpression that provides a String value as a result. Its result parameter must have the type String.

+ * + * specializesFromLibrary('Performances::literalStringEvaluations') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.LiteralString#getValue Value}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getLiteralString() + * @model + * @generated + */ +public interface LiteralString extends LiteralExpression { + /** + * Returns the value of the 'Value' attribute. + * + * + * + *

The String value that is the result of evaluating this Expression.

+ *

The String value that is the result of evaluating this LiteralString.

+ * + * + * @return the value of the 'Value' attribute. + * @see #setValue(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getLiteralString_Value() + * @model required="true" ordered="false" + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.LiteralString#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + +} // LiteralString diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LoopActionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LoopActionUsage.java new file mode 100644 index 000000000..d4f14c484 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/LoopActionUsage.java @@ -0,0 +1,80 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Loop Action Usage'. + * + * + * + *

A LoopActionUsage is an ActionUsage that specifies that its bodyAction should be performed repeatedly. Its subclasses WhileLoopActionUsage and ForLoopActionUsage provide different ways to determine how many times the bodyAction should be performed.

+ * bodyAction = + * let parameter : Feature = inputParameter(2) in + * if parameter <> null and parameter.oclIsKindOf(Action) then + * parameter.oclAsType(Action) + * else + * null + * endif + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.LoopActionUsage#getBodyAction Body Action}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getLoopActionUsage() + * @model abstract="true" + * @generated + */ +public interface LoopActionUsage extends ActionUsage { + /** + * Returns the value of the 'Body Action' reference. + * + * + * + *

The ActionUsage to be performed repeatedly by the LoopActionUsage. It is the second parameter of the LoopActionUsage.

+ * + * + * @return the value of the 'Body Action' reference. + * @see #setBodyAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getLoopActionUsage_BodyAction() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='loopAction'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getBodyAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.LoopActionUsage#getBodyAction Body Action}' reference. + * + * + * @param value the new value of the 'Body Action' reference. + * @see #getBodyAction() + * @generated + */ + void setBodyAction(ActionUsage value); + +} // LoopActionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Membership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Membership.java new file mode 100644 index 000000000..ba36b8af5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Membership.java @@ -0,0 +1,243 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Membership'. + * + * + * + *

A Membership is a Relationship between a Namespace and an Element that indicates the Element is a member of (i.e., is contained in) the Namespace. Any memberNames specify how the memberElement is identified in the Namespace and the visibility specifies whether or not the memberElement is publicly visible from outside the Namespace.

+ * + *

If a Membership is an OwningMembership, then it owns its memberElement, which becomes an ownedMember of the membershipOwningNamespace. Otherwise, the memberNames of a Membership are effectively aliases within the membershipOwningNamespace for an Element with a separate OwningMembership in the same or a different Namespace.

+ * + *

 

+ * + * memberElementId = memberElement.elementId + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Membership#getMemberElementId Member Element Id}
  • + *
  • {@link org.omg.sysml.model.sysml.Membership#getMemberName Member Name}
  • + *
  • {@link org.omg.sysml.model.sysml.Membership#getMemberShortName Member Short Name}
  • + *
  • {@link org.omg.sysml.model.sysml.Membership#getVisibility Visibility}
  • + *
  • {@link org.omg.sysml.model.sysml.Membership#getMemberElement Member Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Membership#getMembershipOwningNamespace Membership Owning Namespace}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMembership() + * @model + * @generated + */ +public interface Membership extends Relationship { + /** + * Returns the value of the 'Member Element Id' attribute. + * + * + * + *

The elementId of the memberElement.

+ * + * @return the value of the 'Member Element Id' attribute. + * @see #setMemberElementId(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMembership_MemberElementId() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String getMemberElementId(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Membership#getMemberElementId Member Element Id}' attribute. + * + * + * @param value the new value of the 'Member Element Id' attribute. + * @see #getMemberElementId() + * @generated + */ + void setMemberElementId(String value); + + /** + * Returns the value of the 'Member Name' attribute. + * + * + * + *

The name of the memberElement relative to the membershipOwningNamespace.

+ * + * + * @return the value of the 'Member Name' attribute. + * @see #setMemberName(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMembership_MemberName() + * @model ordered="false" + * @generated + */ + String getMemberName(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Membership#getMemberName Member Name}' attribute. + * + * + * @param value the new value of the 'Member Name' attribute. + * @see #getMemberName() + * @generated + */ + void setMemberName(String value); + + /** + * Returns the value of the 'Member Short Name' attribute. + * + * + * + *

The short name of the memberElement relative to the membershipOwningNamespace.

+ * + * @return the value of the 'Member Short Name' attribute. + * @see #setMemberShortName(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMembership_MemberShortName() + * @model ordered="false" + * @generated + */ + String getMemberShortName(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Membership#getMemberShortName Member Short Name}' attribute. + * + * + * @param value the new value of the 'Member Short Name' attribute. + * @see #getMemberShortName() + * @generated + */ + void setMemberShortName(String value); + + /** + * Returns the value of the 'Visibility' attribute. + * The default value is "public". + * The literals are from the enumeration {@link org.omg.sysml.model.sysml.VisibilityKind}. + * + * + * + *

Whether or not the Membership of the memberElement in the membershipOwningNamespace is publicly visible outside that Namespace.

+ * + * + * @return the value of the 'Visibility' attribute. + * @see org.omg.sysml.model.sysml.VisibilityKind + * @see #setVisibility(VisibilityKind) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMembership_Visibility() + * @model default="public" required="true" ordered="false" + * @generated + */ + VisibilityKind getVisibility(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Membership#getVisibility Visibility}' attribute. + * + * + * @param value the new value of the 'Visibility' attribute. + * @see org.omg.sysml.model.sysml.VisibilityKind + * @see #getVisibility() + * @generated + */ + void setVisibility(VisibilityKind value); + + /** + * Returns the value of the 'Member Element' reference. + * + * + * + *

The Element that becomes a member of the membershipOwningNamespace due to this Membership.

+ * + * + * @return the value of the 'Member Element' reference. + * @see #setMemberElement(Element) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMembership_MemberElement() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='membership'" + * annotation="redefines" + * @generated + */ + Element getMemberElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Membership#getMemberElement Member Element}' reference. + * + * + * @param value the new value of the 'Member Element' reference. + * @see #getMemberElement() + * @generated + */ + void setMemberElement(Element value); + + /** + * Returns the value of the 'Membership Owning Namespace' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Namespace#getOwnedMembership Owned Membership}'. + * + * + * + *

The Namespace of which the memberElement becomes a member due to this Membership.

+ * + * + * @return the value of the 'Membership Owning Namespace' reference. + * @see #setMembershipOwningNamespace(Namespace) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMembership_MembershipOwningNamespace() + * @see org.omg.sysml.model.sysml.Namespace#getOwnedMembership + * @model opposite="ownedMembership" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Namespace getMembershipOwningNamespace(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Membership#getMembershipOwningNamespace Membership Owning Namespace}' reference. + * + * + * @param value the new value of the 'Membership Owning Namespace' reference. + * @see #getMembershipOwningNamespace() + * @generated + */ + void setMembershipOwningNamespace(Namespace value); + + /** + * + * + * + *

Whether this Membership is distinguishable from a given other Membership. By default, this is true if this Membership has no memberShortName or memberName; or each of the memberShortName and memberName are different than both of those of the other Membership; or neither of the metaclasses of the memberElement of this Membership and the memberElement of the other Membership conform to the other. But this may be overridden in specializations of Membership.

+ * + * not (memberElement.oclKindOf(other.memberElement.oclType()) or + * other.memberElement.oclKindOf(memberElement.oclType())) or + * (shortMemberName = null or + * (shortMemberName <> other.shortMemberName and + * shortMemberName <> other.memberName)) and + * (memberName = null or + * (memberName <> other.shortMemberName and + * memberName <> other.memberName))) + * + * + * @model required="true" ordered="false" otherRequired="true" otherOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isDistinguishableFrom(Membership other); + +} // Membership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MembershipExpose.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MembershipExpose.java new file mode 100644 index 000000000..ca31df906 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MembershipExpose.java @@ -0,0 +1,38 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Membership Expose'. + * + * + * + *

A MembershipExpose is an Expose that exposes a specific importedMembership and, if isRecursive = true, additional Memberships recursively.

+ * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMembershipExpose() + * @model + * @generated + */ +public interface MembershipExpose extends MembershipImport, Expose { +} // MembershipExpose diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MembershipImport.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MembershipImport.java new file mode 100644 index 000000000..87e181128 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MembershipImport.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Membership Import'. + * + * + * + *

A MembershipImport is an Import that imports its importedMembership into the importOwningNamespace. If isRecursive = true and the memberElement of the importedMembership is a Namespace, then the equivalent of a recursive NamespaceImport is also performed on that Namespace.

+ * + * importedElement = importedMembership.memberElement + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.MembershipImport#getImportedMembership Imported Membership}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMembershipImport() + * @model + * @generated + */ +public interface MembershipImport extends Import { + /** + * Returns the value of the 'Imported Membership' reference. + * + * + * + *

The Membership to be imported.

+ * + * + * @return the value of the 'Imported Membership' reference. + * @see #setImportedMembership(Membership) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMembershipImport_ImportedMembership() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='import'" + * annotation="redefines" + * @generated + */ + Membership getImportedMembership(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.MembershipImport#getImportedMembership Imported Membership}' reference. + * + * + * @param value the new value of the 'Imported Membership' reference. + * @see #getImportedMembership() + * @generated + */ + void setImportedMembership(Membership value); + +} // MembershipImport diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MergeNode.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MergeNode.java new file mode 100644 index 000000000..614c7e7dc --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MergeNode.java @@ -0,0 +1,47 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Merge Node'. + * + * + * + *

A MergeNode is a ControlNode that asserts the merging of its incoming Successions. A MergeNode may have at most one outgoing Successions.

+ * sourceConnector->selectAsKind(Succession)->size() <= 1 + * targetConnector->selectByKind(Succession)-> + * collect(connectorEnd->at(1))-> + * forAll(sourceMult | + * multiplicityHasBounds(sourceMult, 0, 1)) + * targetConnector->selectByKind(Succession)-> + * forAll(subsetsChain(self, + * resolveGlobal('ControlPerformances::MergePerformance::incomingHBLink'))) + * specializesFromLibrary('Actions::Action::merges') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMergeNode() + * @model + * @generated + */ +public interface MergeNode extends ControlNode { +} // MergeNode diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Metaclass.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Metaclass.java new file mode 100644 index 000000000..8b03506ab --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Metaclass.java @@ -0,0 +1,39 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Metaclass'. + * + * + * + *

A Metaclass is a Structure used to type MetadataFeatures.

+ * specializesFromLibrary('Metaobjects::Metaobject') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMetaclass() + * @model + * @generated + */ +public interface Metaclass extends Structure { +} // Metaclass diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataAccessExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataAccessExpression.java new file mode 100644 index 000000000..dbea4f0ca --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataAccessExpression.java @@ -0,0 +1,92 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Metadata Access Expression'. + * + * + * + *

A MetadataAccessExpression is an Expression whose result is a sequence of instances of Metaclasses representing all the MetadataFeature annotations of the referencedElement. In addition, the sequence includes an instance of the reflective Metaclass corresponding to the MOF class of the referencedElement, with values for all the abstract syntax properties of the referencedElement.

+ * specializesFromLibrary('Performances::metadataAccessEvaluations') + * ownedMembership->exists(not oclIsKindOf(FeatureMembership)) + * referencedElement = + * let elements : Sequence(Element) = ownedMembership-> + * reject(oclIsKindOf(FeatureMembership)).memberElement in + * if elements->isEmpty() then null + * else elements->first() + * endif + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.MetadataAccessExpression#getReferencedElement Referenced Element}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMetadataAccessExpression() + * @model + * @generated + */ +public interface MetadataAccessExpression extends Expression { + /** + * Returns the value of the 'Referenced Element' reference. + * + * + * + *

The Element whose metadata is being accessed.

+ * + * @return the value of the 'Referenced Element' reference. + * @see #setReferencedElement(Element) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMetadataAccessExpression_ReferencedElement() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='accessExpression'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Element getReferencedElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.MetadataAccessExpression#getReferencedElement Referenced Element}' reference. + * + * + * @param value the new value of the 'Referenced Element' reference. + * @see #getReferencedElement() + * @generated + */ + void setReferencedElement(Element value); + + /** + * + * + * + *

Return a MetadataFeature whose annotatedElement is the referencedElement, whose metaclass is the reflective Metaclass corresponding to the MOF class of the referencedElement and whose ownedFeatures are bound to the MOF properties of the referencedElement.

+ * + * @model required="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + MetadataFeature metaclassFeature(); + +} // MetadataAccessExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataDefinition.java new file mode 100644 index 000000000..d6afc76a7 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataDefinition.java @@ -0,0 +1,39 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Metadata Definition'. + * + * + * + *

A MetadataDefinition is an ItemDefinition that is also a Metaclass.

+ * specializesFromLibrary('Metadata::MetadataItem') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMetadataDefinition() + * @model + * @generated + */ +public interface MetadataDefinition extends ItemDefinition, Metaclass { +} // MetadataDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataFeature.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataFeature.java new file mode 100644 index 000000000..8bfe4ee1a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataFeature.java @@ -0,0 +1,187 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Metadata Feature'. + * + * + * + *

A MetadataFeature is a Feature that is an AnnotatingElement used to annotate another Element with metadata. It is typed by a Metaclass. All its ownedFeatures must redefine features of its metaclass and any feature bindings must be model-level evaluable.

+ * + * + * type->selectByKind(Metaclass).size() = 1 + * not metaclass.isAbstract + * specializesFromLibrary('Metaobjects::metaobjects') + * ownedFeature->closure(ownedFeature)->forAll(f | + * f.declaredName = null and f.declaredShortName = null and + * f.valuation <> null implies f.valuation.value.isModelLevelEvaluable and + * f.redefinition.redefinedFeature->size() = 1) + * metaclass = + * let metaclassTypes : Sequence(Type) = type->selectByKind(Metaclass) in + * if metaclassTypes->isEmpty() then null + * else metaClassTypes->first() + * endif + * let baseAnnotatedElementFeature : Feature = + * resolveGlobal('Metaobjects::Metaobject::annotatedElement').memberElement. + * oclAsType(Feature) in + * let annotatedElementFeatures : OrderedSet(Feature) = feature-> + * select(specializes(baseAnnotatedElementFeature))-> + * excluding(baseAnnotatedElementFeature) in + * annotatedElementFeatures->notEmpty() implies + * let annotatedElementTypes : Set(Feature) = + * annotatedElementFeatures.typing.type->asSet() in + * let metaclasses : Set(Metaclass) = + * annotatedElement.oclType().qualifiedName->collect(qn | + * resolveGlobal(qn).memberElement.oclAsType(Metaclass)) in + * metaclasses->forAll(m | annotatedElementTypes->exists(t | m.specializes(t))) + * isSemantic() implies + * let annotatedTypes : Sequence(Type) = + * annotatedElement->selectAsKind(Type) in + * let baseTypes : Sequence(MetadataFeature) = + * evaluateFeature(resolveGlobal( + * 'Metaobjects::SemanticMetadata::baseType'). + * memberElement. + * oclAsType(Feature))-> + * selectAsKind(MetadataFeature) in + * annotatedTypes->notEmpty() and + * baseTypes()->notEmpty() and + * baseTypes()->first().isSyntactic() implies + * let annotatedType : Type = annotatedTypes->first() in + * let baseType : Element = baseTypes->first().syntaxElement() in + * if annotatedType.oclIsKindOf(Classifier) and + * baseType.oclIsKindOf(Feature) then + * baseType.oclAsType(Feature).type-> + * forAll(t | annotatedType.specializes(t)) + * else if baseType.oclIsKindOf(Type) then + * annotatedType.specializes(baseType.oclAsType(Type)) + * else + * true + * endif + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.MetadataFeature#getMetaclass Metaclass}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMetadataFeature() + * @model + * @generated + */ +public interface MetadataFeature extends Feature, AnnotatingElement { + /** + * Returns the value of the 'Metaclass' reference. + * + * + * + *

The type of this MetadataFeature, which must be a Metaclass.

+ * + * @return the value of the 'Metaclass' reference. + * @see #setMetaclass(Metaclass) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMetadataFeature_Metaclass() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typedMetadata'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Metaclass getMetaclass(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.MetadataFeature#getMetaclass Metaclass}' reference. + * + * + * @param value the new value of the 'Metaclass' reference. + * @see #getMetaclass() + * @generated + */ + void setMetaclass(Metaclass value); + + /** + * + * + * + *

If the given baseFeature is a feature of this MetadataFeature, or is directly or indirectly redefined by a feature, then return the result of evaluating the appropriate (model-level evaluable) value Expression for it (if any), with the MetadataFeature as the target.

+ * let selectedFeatures : Sequence(Feature) = feature-> + * select(closure(ownedRedefinition.redefinedFeature)-> + * includes(baseFeature)) in + * if selectedFeatures->isEmpty() then null + * else + * let selectedFeature : Feature = selectedFeatures->first() in + * let featureValues : FeatureValue = selectedFeature-> + * closure(ownedRedefinition.redefinedFeature).ownedMember-> + * selectAsKind(FeatureValue) in + * if featureValues->isEmpty() then null + * else featureValues->first().value.evaluate(self) + * endif + * + * @model ordered="false" baseFeatureRequired="true" baseFeatureOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList evaluateFeature(Feature baseFeature); + + /** + * + * + * + *

Check if this MetadataFeature has a metaclass which is a kind of SemanticMetadata.

+ * specializesFromLibrary('Metaobjects::SemanticMetadata') + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isSemantic(); + + /** + * + * + * + *

Check if this MetadataFeature has a metaclass that is a kind of KerML::Element (that is, it is from the reflective abstract syntax model).

+ * specializesFromLibrary('KerML::Element') + * + * @model kind="operation" required="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isSyntactic(); + + /** + * + * + * + *

If this MetadataFeature reflectively represents a model element, then return the corresponding Element instance from the MOF abstract syntax representation of the model.

+ * No OCL + * isSyntactic() + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Element syntaxElement(); + +} // MetadataFeature diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataUsage.java new file mode 100644 index 000000000..3d33f1cb8 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MetadataUsage.java @@ -0,0 +1,73 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Metadata Usage'. + * + * + * + *

A MetadataUsage is a Usage and a MetadataFeature, used to annotate other Elements in a system model with metadata. As a MetadataFeature, its type must be a Metaclass, which will nominally be a MetadataDefinition. However, any kernel Metaclass is also allowed, to permit use of Metaclasses from the Kernel Model Libraries.

+ * specializesFromLibrary('Metadata::metadataItems') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.MetadataUsage#getMetadataDefinition Metadata Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMetadataUsage() + * @model + * @generated + */ +public interface MetadataUsage extends ItemUsage, MetadataFeature { + /** + * Returns the value of the 'Metadata Definition' reference. + * + * + * + *

The MetadataDefinition that is the definition of this MetadataUsage.

+ * + * @return the value of the 'Metadata Definition' reference. + * @see #setMetadataDefinition(Metaclass) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMetadataUsage_MetadataDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedMetadata'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Metaclass getMetadataDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.MetadataUsage#getMetadataDefinition Metadata Definition}' reference. + * + * + * @param value the new value of the 'Metadata Definition' reference. + * @see #getMetadataDefinition() + * @generated + */ + void setMetadataDefinition(Metaclass value); + +} // MetadataUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Multiplicity.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Multiplicity.java new file mode 100644 index 000000000..0149cbd0f --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Multiplicity.java @@ -0,0 +1,52 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Multiplicity'. + * + * + * + *

A Multiplicity is a Feature whose co-domain is a set of natural numbers giving the allowed cardinalities of each typeWithMultiplicity. The cardinality of a Type is defined as follows, depending on whether the Type is a Classifier or Feature. + *

    + *
  • Classifier – The number of basic instances of the Classifier, that is, those instances representing things, which are not instances of any subtypes of the Classifier that are Features. + *
  • Features – The number of instances with the same featuring instances. In the case of a Feature with a Classifier as its featuringType, this is the number of values of Feature for each basic instance of the Classifier. Note that, for non-unique Features, all duplicate values are included in this count.
  • + *
+ * + *

Multiplicity co-domains (in models) can be specified by Expression that might vary in their results. If the typeWithMultiplicity is a Classifier, the domain of the Multiplicity shall be Base::Anything. If the typeWithMultiplicity is a Feature, the Multiplicity shall have the same domain as the typeWithMultiplicity.

+ * + * if owningType <> null and owningType.oclIsKindOf(Feature) then + * featuringType = + * owningType.oclAsType(Feature).featuringType + * else + * featuringType->isEmpty() + * endif + * specializesFromLibrary('Base::naturals') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMultiplicity() + * @model + * @generated + */ +public interface Multiplicity extends Feature { +} // Multiplicity diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MultiplicityRange.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MultiplicityRange.java new file mode 100644 index 000000000..2600309a1 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/MultiplicityRange.java @@ -0,0 +1,201 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Multiplicity Range'. + * + * + * + *

A MultiplicityRange is a Multiplicity whose value is defined to be the (inclusive) range of natural numbers given by the result of a lowerBound Expression and the result of an upperBound Expression. The result of these Expressions shall be of type Natural. If the result of the upperBound Expression is the unbounded value *, then the specified range includes all natural numbers greater than or equal to the lowerBound value. If no lowerBound Expression, then the default is that the lower bound has the same value as the upper bound, except if the upperBound evaluates to *, in which case the default for the lower bound is 0.

+ * + * bound->forAll(b | b.featuringType = self.featuringType) + * bound->forAll(b | + * b.result.specializesFromLibrary('ScalarValues::Integer') and + * let value : UnlimitedNatural = valueOf(b) in + * value <> null implies value >= 0 + * ) + * lowerBound = + * let ownedExpressions : Sequence(Expression) = + * ownedMember->selectByKind(Expression) in + * if ownedExpressions->size() < 2 then null + * else ownedExpressions->first() + * endif + * upperBound = + * let ownedExpressions : Sequence(Expression) = + * ownedMember->selectByKind(Expression) in + * if ownedExpressions->isEmpty() then null + * else if ownedExpressions->size() = 1 then ownedExpressions->at(1) + * else ownedExpressions->at(2) + * endif endif + * bound = + * if upperBound = null then Sequence{} + * else if lowerBound = null then Sequence{upperBound} + * else Sequence{lowerBound, upperBound} + * endif endif + * if lowerBound = null then + * ownedMember->notEmpty() and + * ownedMember->at(1) = upperBound + * else + * ownedMember->size() > 1 and + * ownedMember->at(1) = lowerBound and + * ownedMember->at(2) = upperBound + * endif + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.MultiplicityRange#getBound Bound}
  • + *
  • {@link org.omg.sysml.model.sysml.MultiplicityRange#getLowerBound Lower Bound}
  • + *
  • {@link org.omg.sysml.model.sysml.MultiplicityRange#getUpperBound Upper Bound}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getMultiplicityRange() + * @model + * @generated + */ +public interface MultiplicityRange extends Multiplicity { + /** + * Returns the value of the 'Bound' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Expression}. + * + * + * + *

The owned Expressions of the MultiplicityRange whose results provide its bounds. These must be the first ownedMembers of the MultiplicityRange.

+ * + * @return the value of the 'Bound' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getMultiplicityRange_Bound() + * @model required="true" upper="2" transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='multiplicity'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getBound(); + + /** + * Returns the value of the 'Lower Bound' reference. + * + * + * + *

The Expression whose result provides the lower bound of the MultiplicityRange. If no lowerBound Expression is given, then the lower bound shall have the same value as the upper bound, unless the upper bound is unbounded (*), in which case the lower bound shall be 0.

+ * + * + * @return the value of the 'Lower Bound' reference. + * @see #setLowerBound(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMultiplicityRange_LowerBound() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='multiplicity'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getLowerBound(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.MultiplicityRange#getLowerBound Lower Bound}' reference. + * + * + * @param value the new value of the 'Lower Bound' reference. + * @see #getLowerBound() + * @generated + */ + void setLowerBound(Expression value); + + /** + * Returns the value of the 'Upper Bound' reference. + * + * + * + *

The Expression whose result is the upper bound of the MultiplicityRange.

+ * + * @return the value of the 'Upper Bound' reference. + * @see #setUpperBound(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getMultiplicityRange_UpperBound() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='multiplicity'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getUpperBound(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.MultiplicityRange#getUpperBound Upper Bound}' reference. + * + * + * @param value the new value of the 'Upper Bound' reference. + * @see #getUpperBound() + * @generated + */ + void setUpperBound(Expression value); + + /** + * + * + * + *

Check whether this MultiplicityRange represents the range bounded by the given values lower and upper, presuming the lowerBound and upperBound Expressions are model-level evaluable.

+ * valueOf(upperBound) = upper and + * let lowerValue: UnlimitedNatural = valueOf(lowerBound) in + * (lowerValue = lower or + * lowerValue = null and + * (lower = upper or + * lower = 0 and upper = *)) + * + * + * @model required="true" ordered="false" lowerRequired="true" lowerOrdered="false" upperRequired="true" upperOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean hasBounds(int lower, int upper); + + /** + * + * + * + *

Evaluate the given bound Expression (at model level) and return the result represented as a MOF UnlimitedNatural value.

+ * if bound = null or not bound.isModelLevelEvaluable then + * null + * else + * let boundEval: Sequence(Element) = bound.evaluate(owningType) in + * if boundEval->size() <> 1 then null else + * let valueEval: Element = boundEval->at(1) in + * if valueEval.oclIsKindOf(LiteralInfinity) then * + * else if valueEval.oclIsKindOf(LiteralInteger) then + * let value : Integer = + * valueEval.oclAsKindOf(LiteralInteger).value in + * if value >= 0 then value else null endif + * else null + * endif endif + * endif + * endif + * + * @model ordered="false" boundOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + int valueOf(Expression bound); + +} // MultiplicityRange diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Namespace.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Namespace.java new file mode 100644 index 000000000..940a1c97a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Namespace.java @@ -0,0 +1,378 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Namespace'. + * + * + * + *

A Namespace is an Element that contains other Elements, known as its members, via Membership Relationships with those Elements. The members of a Namespace may be owned by the Namespace, aliased in the Namespace, or imported into the Namespace via Import Relationships.

+ * + *

A Namespace can provide names for its members via the memberNames and memberShortNames specified by the Memberships in the Namespace. If a Membership specifies a memberName and/or memberShortName, then those are names of the corresponding memberElement relative to the Namespace. For an OwningMembership, the ownedMemberName and ownedMemberShortName are given by the Element name and shortName. Note that the same Element may be the memberElement of multiple Memberships in a Namespace (though it may be owned at most once), each of which may define a separate alias for the Element relative to the Namespace.

+ * + * membership->forAll(m1 | + * membership->forAll(m2 | + * m1 <> m2 implies m1.isDistinguishableFrom(m2))) + * member = membership.memberElement + * ownedMember = ownedMembership->selectByKind(OwningMembership).ownedMemberElement + * importedMembership = importedMemberships(Set{}) + * ownedImport = ownedRelationship->selectByKind(Import) + * ownedMembership = ownedRelationship->selectByKind(Membership) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Namespace#getImportedMembership Imported Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.Namespace#getMember Member}
  • + *
  • {@link org.omg.sysml.model.sysml.Namespace#getMembership Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.Namespace#getOwnedImport Owned Import}
  • + *
  • {@link org.omg.sysml.model.sysml.Namespace#getOwnedMember Owned Member}
  • + *
  • {@link org.omg.sysml.model.sysml.Namespace#getOwnedMembership Owned Membership}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getNamespace() + * @model + * @generated + */ +public interface Namespace extends Element { + /** + * Returns the value of the 'Imported Membership' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Membership}. + * + * + * + *

The Memberships in this Namespace that result from the ownedImports of this Namespace.

+ * + * + * @return the value of the 'Imported Membership' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getNamespace_ImportedMembership() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='importingNamespace'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getImportedMembership(); + + /** + * Returns the value of the 'Member' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * + * + * + *

The set of all member Elements of this Namespace, which are the memberElements of all memberships of the Namespace.

+ * + * + * @return the value of the 'Member' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getNamespace_Member() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='namespace'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getMember(); + + /** + * Returns the value of the 'Membership' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Membership}. + * + * + * + *

All Memberships in this Namespace, including (at least) the union of ownedMemberships and importedMemberships.

+ * + * + * @return the value of the 'Membership' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getNamespace_Membership() + * @model transient="true" changeable="false" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='membershipNamespace'" + * annotation="union" + * @generated + */ + EList getMembership(); + + /** + * Returns the value of the 'Owned Import' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Import}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Import#getImportOwningNamespace Import Owning Namespace}'. + * + * + * + *

The ownedRelationships of this Namespace that are Imports, for which the Namespace is the importOwningNamespace.

+ * + * + * @return the value of the 'Owned Import' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getNamespace_OwnedImport() + * @see org.omg.sysml.model.sysml.Import#getImportOwningNamespace + * @model opposite="importOwningNamespace" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedImport(); + + /** + * Returns the value of the 'Owned Member' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Element#getOwningNamespace Owning Namespace}'. + * + * + * + *

The owned members of this Namespace, which are the ownedMemberElements of the ownedMemberships of the Namespace.

+ * + * + * @return the value of the 'Owned Member' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getNamespace_OwnedMember() + * @see org.omg.sysml.model.sysml.Element#getOwningNamespace + * @model opposite="owningNamespace" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedMember(); + + /** + * Returns the value of the 'Owned Membership' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Membership}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Membership#getMembershipOwningNamespace Membership Owning Namespace}'. + * + * + * + *

The ownedRelationships of this Namespace that are Memberships, for which the Namespace is the membershipOwningNamespace.

+ * + * + * @return the value of the 'Owned Membership' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getNamespace_OwnedMembership() + * @see org.omg.sysml.model.sysml.Membership#getMembershipOwningNamespace + * @model opposite="membershipOwningNamespace" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedMembership(); + + /** + * + * + * + *

Derive the imported Memberships of this Namespace as the importedMembership of all ownedImports, excluding those Imports whose importOwningNamespace is in the excluded set, and excluding Memberships that have distinguisibility collisions with each other or with any ownedMembership.

+ * + * ownedImport.importedMemberships(excluded->including(self)) + * + * @model excludedMany="true" excludedOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList importedMemberships(EList excluded); + + /** + * + * + * + *

If visibility is not null, return the Memberships of this Namespace with the given visibility, including ownedMemberships with the given visibility and Memberships imported with the given visibility. If visibility is null, return all ownedMemberships and imported Memberships regardless of visibility. When computing imported Memberships, ignore this Namespace and any Namespaces in the given excluded set.

+ * ownedMembership-> + * select(mem | visibility = null or mem.visibility = visibility)-> + * union(ownedImport-> + * select(imp | visibility = null or imp.visibility = visibility). + * importedMemberships(excluded->including(self))) + * + * @model ordered="false" visibilityOrdered="false" excludedMany="true" excludedOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList membershipsOfVisibility(VisibilityKind visibility, EList excluded); + + /** + * + * + * + *

Return the names of the given element as it is known in this Namespace.

+ * + * let elementMemberships : Sequence(Membership) = + * memberships->select(memberElement = element) in + * memberships.memberShortName-> + * union(memberships.memberName)-> + * asSet() + * + * @model ordered="false" elementRequired="true" elementOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList namesOf(Element element); + + /** + * + * + * + *

Return a string with valid KerML syntax representing the qualification part of a given qualifiedName, that is, a qualified name with all the segment names of the given name except the last. If the given qualifiedName has only one segment, then return null.

+ * No OCL + * + * @model ordered="false" qualifiedNameRequired="true" qualifiedNameOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String qualificationOf(String qualifiedName); + + /** + * + * + * + *

Resolve the given qualified name to the named Membership (if any), starting with this Namespace as the local scope. The qualified name string must conform to the concrete syntax of the KerML textual notation. According to the KerML name resolution rules every qualified name will resolve to either a single Membership, or to none.

+ * + * let qualification : String = qualificationOf(qualifiedName) in + * let name : String = unqualifiedNameOf(qualifiedName) in + * if qualification = null then resolveLocal(name) + * else if qualification = '$' then resolveGlobal(name) + * else + * let namespaceMembership : Membership = resolve(qualification) in + * if namespaceMembership = null or + * not namespaceMembership.memberElement.oclIsKindOf(Namespace) + * then null + * else + * namespaceMembership.memberElement.oclAsType(Namespace). + * resolveVisible(name) + * endif + * endif endif + * + * @model ordered="false" qualifiedNameRequired="true" qualifiedNameOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Membership resolve(String qualifiedName); + + /** + * + * + * + *

Resolve the given qualified name to the named Membership (if any) in the effective global Namespace that is the outermost naming scope. The qualified name string must conform to the concrete syntax of the KerML textual notation.

+ * + * No OCL + * + * @model ordered="false" qualifiedNameRequired="true" qualifiedNameOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Membership resolveGlobal(String qualifiedName); + + /** + * + * + * + *

Resolve a simple name starting with this Namespace as the local scope, and continuing with containing outer scopes as necessary. However, if this Namespace is a root Namespace, then the resolution is done directly in global scope.

+ * + * if owningNamespace = null then resolveGlobal(name) + * else + * let memberships : Membership = membership-> + * select(memberShortName = name or memberName = name) in + * if memberships->notEmpty() then memberships->first() + * else owningNamspace.resolveLocal(name) + * endif + * endif + * + * @model ordered="false" nameRequired="true" nameOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Membership resolveLocal(String name); + + /** + * + * + * + *

Resolve a simple name from the visible Memberships of this Namespace.

+ * + * let memberships : Sequence(Membership) = + * visibleMemberships(Set{}, false, false)-> + * select(memberShortName = name or memberName = name) in + * if memberships->isEmpty() then null + * else memberships->first() + * endif + * + * @model ordered="false" nameRequired="true" nameOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Membership resolveVisible(String name); + + /** + * + * + * + *

Return the simple name that is the last segment name of the given qualifiedName. If this segment name has the form of a KerML unrestricted name, then "unescape" it by removing the surrounding single quotes and replacing all escape sequences with the specified character.

+ * No OCL + * + * @model required="true" ordered="false" qualifiedNameRequired="true" qualifiedNameOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String unqualifiedNameOf(String qualifiedName); + + /** + * + * + * + *

Returns this visibility of mem relative to this Namespace. If mem is an importedMembership, this is the visibility of its Import. Otherwise it is the visibility of the Membership itself.

+ * + * if importedMembership->includes(mem) then + * ownedImport-> + * select(importedMemberships(Set{})->includes(mem)). + * first().visibility + * else if memberships->includes(mem) then + * mem.visibility + * else + * VisibilityKind::private + * endif + * + * @model required="true" ordered="false" memRequired="true" memOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + VisibilityKind visibilityOf(Membership mem); + + /** + * + * + * + *

If includeAll = true, then return all the Memberships of this Namespace. Otherwise, return only the publicly visible Memberships of this Namespace, including ownedMemberships that have a visibility of public and Memberships imported with a visibility of public. If isRecursive = true, also recursively include all visible Memberships of any public owned Namespaces, or, if IncludeAll = true, all Memberships of all owned Namespaces. When computing imported Memberships, ignore this Namespace and any Namespaces in the given excluded set.

+ * + * let visibleMemberships : OrderedSet(Membership) = + * if includeAll then membershipsOfVisibility(null, excluded) + * else membershipsOfVisibility(VisibilityKind::public, excluded) + * endif in + * if not isRecursive then visibleMemberships + * else visibleMemberships->union(ownedMember-> + * selectAsKind(Namespace). + * select(includeAll or owningMembership.visibility = VisibilityKind::public)-> + * visibleMemberships(excluded->including(self), true, includeAll)) + * endif + * + * + * @model excludedMany="true" excludedOrdered="false" isRecursiveRequired="true" isRecursiveOrdered="false" includeAllRequired="true" includeAllOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList visibleMemberships(EList excluded, boolean isRecursive, boolean includeAll); + +} // Namespace diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/NamespaceExpose.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/NamespaceExpose.java new file mode 100644 index 000000000..8f5dd7f2e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/NamespaceExpose.java @@ -0,0 +1,38 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Namespace Expose'. + * + * + * + *

A NamespaceExpose is an Expose Relationship that exposes the Memberships of a specific importedNamespace and, if isRecursive = true, additional Memberships recursively.

+ * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getNamespaceExpose() + * @model + * @generated + */ +public interface NamespaceExpose extends NamespaceImport, Expose { +} // NamespaceExpose diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/NamespaceImport.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/NamespaceImport.java new file mode 100644 index 000000000..8c9f5f5bb --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/NamespaceImport.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Namespace Import'. + * + * + * + *

A NamespaceImport is an Import that imports Memberships from its importedNamespace into the importOwningNamespace. If isRecursive = false, then only the visible Memberships of the importedNamespace are imported. If isRecursive = true, then, in addition, Memberships are recursively imported from any ownedMembers of the importedNamespace that are Namespaces.

+ * + * importedElement = importedNamespace + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.NamespaceImport#getImportedNamespace Imported Namespace}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getNamespaceImport() + * @model + * @generated + */ +public interface NamespaceImport extends Import { + /** + * Returns the value of the 'Imported Namespace' reference. + * + * + * + *

The Namespace whose visible Memberships are imported by this NamespaceImport.

+ * + * + * @return the value of the 'Imported Namespace' reference. + * @see #setImportedNamespace(Namespace) + * @see org.omg.sysml.model.sysml.SysMLPackage#getNamespaceImport_ImportedNamespace() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='import'" + * annotation="redefines" + * @generated + */ + Namespace getImportedNamespace(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.NamespaceImport#getImportedNamespace Imported Namespace}' reference. + * + * + * @param value the new value of the 'Imported Namespace' reference. + * @see #getImportedNamespace() + * @generated + */ + void setImportedNamespace(Namespace value); + +} // NamespaceImport diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/NullExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/NullExpression.java new file mode 100644 index 000000000..db973cbc1 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/NullExpression.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Null Expression'. + * + * + * + *

A NullExpression is an Expression that results in a null value.

+ * + * specializesFromLibrary('Performances::nullEvaluations') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getNullExpression() + * @model + * @generated + */ +public interface NullExpression extends Expression { +} // NullExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ObjectiveMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ObjectiveMembership.java new file mode 100644 index 000000000..81af57032 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ObjectiveMembership.java @@ -0,0 +1,77 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Objective Membership'. + * + * + * + *

An ObjectiveMembership is a FeatureMembership that indicates that its ownedObjectiveRequirement is the objective RequirementUsage for its owningType, which must be a CaseDefinition or CaseUsage.

+ * owningType.oclIsType(CaseDefinition) or + * owningType.oclIsType(CaseUsage) + * + * ownedObjectiveRequirement.isComposite + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ObjectiveMembership#getOwnedObjectiveRequirement Owned Objective Requirement}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getObjectiveMembership() + * @model + * @generated + */ +public interface ObjectiveMembership extends FeatureMembership { + /** + * Returns the value of the 'Owned Objective Requirement' reference. + * + * + * + *

The RequirementUsage that is the ownedMemberFeature of this RequirementUsage.

+ * + * + * @return the value of the 'Owned Objective Requirement' reference. + * @see #setOwnedObjectiveRequirement(RequirementUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getObjectiveMembership_OwnedObjectiveRequirement() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningObjectiveMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RequirementUsage getOwnedObjectiveRequirement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ObjectiveMembership#getOwnedObjectiveRequirement Owned Objective Requirement}' reference. + * + * + * @param value the new value of the 'Owned Objective Requirement' reference. + * @see #getOwnedObjectiveRequirement() + * @generated + */ + void setOwnedObjectiveRequirement(RequirementUsage value); + +} // ObjectiveMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OccurrenceDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OccurrenceDefinition.java new file mode 100644 index 000000000..e0c1005a4 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OccurrenceDefinition.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Occurrence Definition'. + * + * + * + *

An OccurrenceDefinition is a Definition of a Class of individuals that have an independent life over time and potentially an extent over space. This includes both structural things and behaviors that act on such structures. If isIndividual is true, then the OccurrenceDefinition is constrained to have (at most) a single instance that is the entire life of a single individual.

+ * isIndividual implies specializesFromLibrary('Occurrences::Life') + * isIndividual implies + * multiplicity <> null and + * multiplicity.specializesFromLibrary('Base::zeroOrOne') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.OccurrenceDefinition#isIsIndividual Is Individual}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getOccurrenceDefinition() + * @model + * @generated + */ +public interface OccurrenceDefinition extends Definition, org.omg.sysml.model.sysml.Class { + /** + * Returns the value of the 'Is Individual' attribute. + * The default value is "false". + * + * + * + *

Whether this OccurrenceDefinition is constrained to represent at most one thing.

+ * + * @return the value of the 'Is Individual' attribute. + * @see #setIsIndividual(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getOccurrenceDefinition_IsIndividual() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsIndividual(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.OccurrenceDefinition#isIsIndividual Is Individual}' attribute. + * + * + * @param value the new value of the 'Is Individual' attribute. + * @see #isIsIndividual() + * @generated + */ + void setIsIndividual(boolean value); + +} // OccurrenceDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OccurrenceUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OccurrenceUsage.java new file mode 100644 index 000000000..b2e60e5d1 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OccurrenceUsage.java @@ -0,0 +1,178 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Occurrence Usage'. + * + * + * + *

An OccurrenceUsage is a Usage whose types are all Classes. Nominally, if a type is an OccurrenceDefinition, an OccurrenceUsage is a Usage of that OccurrenceDefinition within a system. However, other types of Kernel Classes are also allowed, to permit use of Classes from the Kernel Model Libraries.

+ * + * individualDefinition = + * let individualDefinitions : OrderedSet(OccurrenceDefinition) = + * occurrenceDefinition-> + * selectByKind(OccurrenceDefinition)-> + * select(isIndividual) in + * if individualDefinitions->isEmpty() then null + * else individualDefinitions->first() endif + * isIndividual implies individualDefinition <> null + * specializesFromLibrary('Occurrences::occurrences') + * isComposite and + * owningType <> null and + * (owningType.oclIsKindOf(Class) or + * owningType.oclIsKindOf(OccurrenceUsage) or + * owningType.oclIsKindOf(Feature) and + * owningType.oclAsType(Feature).type-> + * exists(oclIsKind(Class))) implies + * specializesFromLibrary('Occurrences::Occurrence::suboccurrences') + * occurrenceDefinition-> + * selectByKind(OccurrenceDefinition)-> + * select(isIndividual).size() <= 1 + * portionKind = PortionKind::snapshot implies + * specializesFromLibrary('Occurrences::Occurrence::snapshots') + * portionKind = PortionKind::timeslice implies + * specializesFromLibrary('Occurrences::Occurrence::timeSlices') + * portionKind <> null implies + * owningType <> null and + * (owningType.oclIsKindOf(OccurrenceDefinition) or + * owningType.oclIsKindOf(OccurrenceUsage)) + * portionKind <> null implies isPortion + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.OccurrenceUsage#isIsIndividual Is Individual}
  • + *
  • {@link org.omg.sysml.model.sysml.OccurrenceUsage#getPortionKind Portion Kind}
  • + *
  • {@link org.omg.sysml.model.sysml.OccurrenceUsage#getIndividualDefinition Individual Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.OccurrenceUsage#getOccurrenceDefinition Occurrence Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getOccurrenceUsage() + * @model + * @generated + */ +public interface OccurrenceUsage extends Usage { + /** + * Returns the value of the 'Is Individual' attribute. + * The default value is "false". + * + * + * + *

Whether this OccurrenceUsage represents the usage of the specific individual represented by its individualDefinition.

+ * + * @return the value of the 'Is Individual' attribute. + * @see #setIsIndividual(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getOccurrenceUsage_IsIndividual() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsIndividual(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.OccurrenceUsage#isIsIndividual Is Individual}' attribute. + * + * + * @param value the new value of the 'Is Individual' attribute. + * @see #isIsIndividual() + * @generated + */ + void setIsIndividual(boolean value); + + /** + * Returns the value of the 'Portion Kind' attribute. + * The literals are from the enumeration {@link org.omg.sysml.model.sysml.PortionKind}. + * + * + * + *

The kind of temporal portion (time slice or snapshot) is represented by this OccurrenceUsage. If portionKind is not null, then the owningType of the OccurrenceUsage must be non-null, and the OccurrenceUsage represents portions of the featuring instance of the owningType.

+ * + * @return the value of the 'Portion Kind' attribute. + * @see org.omg.sysml.model.sysml.PortionKind + * @see #setPortionKind(PortionKind) + * @see org.omg.sysml.model.sysml.SysMLPackage#getOccurrenceUsage_PortionKind() + * @model ordered="false" + * @generated + */ + PortionKind getPortionKind(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.OccurrenceUsage#getPortionKind Portion Kind}' attribute. + * + * + * @param value the new value of the 'Portion Kind' attribute. + * @see org.omg.sysml.model.sysml.PortionKind + * @see #getPortionKind() + * @generated + */ + void setPortionKind(PortionKind value); + + /** + * Returns the value of the 'Individual Definition' reference. + * + * + * + *

The at most one occurrenceDefinition that has isIndividual = true.

+ * + * @return the value of the 'Individual Definition' reference. + * @see #setIndividualDefinition(OccurrenceDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getOccurrenceUsage_IndividualDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='individualUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + OccurrenceDefinition getIndividualDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.OccurrenceUsage#getIndividualDefinition Individual Definition}' reference. + * + * + * @param value the new value of the 'Individual Definition' reference. + * @see #getIndividualDefinition() + * @generated + */ + void setIndividualDefinition(OccurrenceDefinition value); + + /** + * Returns the value of the 'Occurrence Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Class}. + * + * + * + *

The Classes that are the types of this OccurrenceUsage. Nominally, these are OccurrenceDefinitions, but other kinds of kernel Classes are also allowed, to permit use of Classes from the Kernel Model Libraries.

+ * + * @return the value of the 'Occurrence Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getOccurrenceUsage_OccurrenceDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedOccurrence'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOccurrenceDefinition(); + +} // OccurrenceUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OperatorExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OperatorExpression.java new file mode 100644 index 000000000..cc3b5d4ca --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OperatorExpression.java @@ -0,0 +1,69 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Operator Expression'. + * + * + * + *

An OperatorExpression is an InvocationExpression whose function is determined by resolving its operator in the context of one of the standard packages from the Kernel Function Library.

+ * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.OperatorExpression#getOperator Operator}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getOperatorExpression() + * @model + * @generated + */ +public interface OperatorExpression extends InvocationExpression { + /** + * Returns the value of the 'Operator' attribute. + * + * + * + *

An operator symbol that names a corresponding Function from one of the standard packages from the Kernel Function Library .

+ * + * @return the value of the 'Operator' attribute. + * @see #setOperator(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getOperatorExpression_Operator() + * @model required="true" ordered="false" + * @generated + */ + String getOperator(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.OperatorExpression#getOperator Operator}' attribute. + * + * + * @param value the new value of the 'Operator' attribute. + * @see #getOperator() + * @generated + */ + void setOperator(String value); + +} // OperatorExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OwningMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OwningMembership.java new file mode 100644 index 000000000..38c0dd7ce --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/OwningMembership.java @@ -0,0 +1,163 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Owning Membership'. + * + * + * + *

An OwningMembership is a Membership that owns its memberElement as a ownedRelatedElement. The ownedMemberElement becomes an ownedMember of the membershipOwningNamespace.

+ * + * ownedMemberName = ownedMemberElement.name + * ownedMemberShortName = ownedMemberElement.shortName + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberElementId Owned Member Element Id}
  • + *
  • {@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberName Owned Member Name}
  • + *
  • {@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberShortName Owned Member Short Name}
  • + *
  • {@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberElement Owned Member Element}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getOwningMembership() + * @model + * @generated + */ +public interface OwningMembership extends Membership { + /** + * Returns the value of the 'Owned Member Element Id' attribute. + * + * + * + *

The elementId of the ownedMemberElement.

+ * + * @return the value of the 'Owned Member Element Id' attribute. + * @see #setOwnedMemberElementId(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getOwningMembership_OwnedMemberElementId() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String getOwnedMemberElementId(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberElementId Owned Member Element Id}' attribute. + * + * + * @param value the new value of the 'Owned Member Element Id' attribute. + * @see #getOwnedMemberElementId() + * @generated + */ + void setOwnedMemberElementId(String value); + + /** + * Returns the value of the 'Owned Member Name' attribute. + * + * + * + *

The name of the ownedMemberElement.

+ * + * + * @return the value of the 'Owned Member Name' attribute. + * @see #setOwnedMemberName(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getOwningMembership_OwnedMemberName() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String getOwnedMemberName(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberName Owned Member Name}' attribute. + * + * + * @param value the new value of the 'Owned Member Name' attribute. + * @see #getOwnedMemberName() + * @generated + */ + void setOwnedMemberName(String value); + + /** + * Returns the value of the 'Owned Member Short Name' attribute. + * + * + * + *

The shortName of the ownedMemberElement.

+ * + * @return the value of the 'Owned Member Short Name' attribute. + * @see #setOwnedMemberShortName(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getOwningMembership_OwnedMemberShortName() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + String getOwnedMemberShortName(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberShortName Owned Member Short Name}' attribute. + * + * + * @param value the new value of the 'Owned Member Short Name' attribute. + * @see #getOwnedMemberShortName() + * @generated + */ + void setOwnedMemberShortName(String value); + + /** + * Returns the value of the 'Owned Member Element' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Element#getOwningMembership Owning Membership}'. + * + * + * + *

The Element that becomes an ownedMember of the membershipOwningNamespace due to this OwningMembership.

+ * + * + * @return the value of the 'Owned Member Element' reference. + * @see #setOwnedMemberElement(Element) + * @see org.omg.sysml.model.sysml.SysMLPackage#getOwningMembership_OwnedMemberElement() + * @see org.omg.sysml.model.sysml.Element#getOwningMembership + * @model opposite="owningMembership" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Element getOwnedMemberElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberElement Owned Member Element}' reference. + * + * + * @param value the new value of the 'Owned Member Element' reference. + * @see #getOwnedMemberElement() + * @generated + */ + void setOwnedMemberElement(Element value); + +} // OwningMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Package.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Package.java new file mode 100644 index 000000000..f5838a9a4 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Package.java @@ -0,0 +1,84 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Package'. + * + * + * + *

A Package is a Namespace used to group Elements, without any instance-level semantics. It may have one or more model-level evaluable filterCondition Expressions used to filter its importedMemberships. Any imported member must meet all of the filterConditions.

+ * filterCondition = ownedMembership-> + * selectByKind(ElementFilterMembership).condition + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Package#getFilterCondition Filter Condition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getPackage() + * @model + * @generated + */ +public interface Package extends Namespace { + /** + * Returns the value of the 'Filter Condition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Expression}. + * + * + * + *

The model-level evaluable Boolean-valued Expression used to filter the members of this Package, which are owned by the Package are via ElementFilterMemberships.

+ * + * + * @return the value of the 'Filter Condition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getPackage_FilterCondition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='conditionedPackage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getFilterCondition(); + + /** + * + * + * + *

Determine whether the given element meets all the filterConditions.

+ * let metadataFeatures: Sequence(AnnotatingElement) = + * element.ownedAnnotation.annotatingElement-> + * selectByKind(MetadataFeature) in + * self.filterCondition->forAll(cond | + * metadataFeatures->exists(elem | + * cond.checkCondition(elem))) + * + * @model required="true" ordered="false" elementRequired="true" elementOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean includeAsMember(Element element); + +} // Package diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ParameterMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ParameterMembership.java new file mode 100644 index 000000000..edcb8cbdd --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ParameterMembership.java @@ -0,0 +1,90 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Parameter Membership'. + * + * + * + *

A ParameterMembership is a FeatureMembership that identifies its memberFeature as a parameter, which is always owned, and must have a direction. A ParameterMembership must be owned by a Behavior, a Step, or the result parameter of a ConstructorExpression.

+ * ownedMemberParameter.direction = parameterDirection() + * owningType.oclIsKindOf(Behavior) or owningType.oclIsKindOf(Step) or + * owningType.owningMembership.oclIsKindOf(ReturnParameterMembership) and + * owningType.owningNamespace.oclIsKindOf(ConstructorExpression) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ParameterMembership#getOwnedMemberParameter Owned Member Parameter}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getParameterMembership() + * @model + * @generated + */ +public interface ParameterMembership extends FeatureMembership { + /** + * Returns the value of the 'Owned Member Parameter' reference. + * + * + * + *

The Feature that is identified as a parameter by this ParameterMembership.

+ * + * + * @return the value of the 'Owned Member Parameter' reference. + * @see #setOwnedMemberParameter(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getParameterMembership_OwnedMemberParameter() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningParameterMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getOwnedMemberParameter(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ParameterMembership#getOwnedMemberParameter Owned Member Parameter}' reference. + * + * + * @param value the new value of the 'Owned Member Parameter' reference. + * @see #getOwnedMemberParameter() + * @generated + */ + void setOwnedMemberParameter(Feature value); + + /** + * + * + * + *

Return the required value of the direction of the ownedMemberParameter. By default, this is in.

+ * FeatureDirectionKind::_'in' + * + * @model required="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + FeatureDirectionKind parameterDirection(); + +} // ParameterMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PartDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PartDefinition.java new file mode 100644 index 000000000..c855ca7b3 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PartDefinition.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Part Definition'. + * + * + * + *

A PartDefinition is an ItemDefinition of a Class of systems or parts of systems. Note that all parts may be considered items for certain purposes, but not all items are parts that can perform actions within a system.

+ * + * specializesFromLibrary('Parts::Part') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getPartDefinition() + * @model + * @generated + */ +public interface PartDefinition extends ItemDefinition { +} // PartDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PartUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PartUsage.java new file mode 100644 index 000000000..e20988fac --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PartUsage.java @@ -0,0 +1,81 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Part Usage'. + * + * + * + *

A PartUsage is a usage of a PartDefinition to represent a system or a part of a system. At least one of the itemDefinitions of the PartUsage must be a PartDefinition.

+ * + *

A PartUsage must subset, directly or indirectly, the base PartUsage parts from the Systems Model Library.

+ * itemDefinition->selectByKind(PartDefinition) + * partDefinition->notEmpty() + * specializesFromLibrary('Parts::parts') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(ItemDefinition) or + * owningType.oclIsKindOf(ItemUsage)) implies + * specializesFromLibrary('Items::Item::subparts') + * owningFeatureMembership <> null and + * owningFeatureMembership.oclIsKindOf(ActorMembership) implies + * if owningType.oclIsKindOf(RequirementDefinition) or + * owningType.oclIsKindOf(RequirementUsage) + * then specializesFromLibrary('Requirements::RequirementCheck::actors') + * else specializesFromLibrary('Cases::Case::actors') + * owningFeatureMembership <> null and + * owningFeatureMembership.oclIsKindOf(StakeholderMembership) implies + * specializesFromLibrary('Requirements::RequirementCheck::stakeholders') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.PartUsage#getPartDefinition Part Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getPartUsage() + * @model + * @generated + */ +public interface PartUsage extends ItemUsage { + /** + * Returns the value of the 'Part Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartDefinition}. + * + * + * + *

The itemDefinitions of this PartUsage that are PartDefinitions.

+ * + * @return the value of the 'Part Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getPartUsage_PartDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedPart'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getPartDefinition(); + +} // PartUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PayloadFeature.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PayloadFeature.java new file mode 100644 index 000000000..e63d7067c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PayloadFeature.java @@ -0,0 +1,39 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Payload Feature'. + * + * + * + *

A PayloadFeature is the ownedFeature of a Flow that identifies the things carried by the kinds of transfers that are instances of the Flow.

+ * redefinesFromLibrary('Transfers::Transfer::payload') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getPayloadFeature() + * @model + * @generated + */ +public interface PayloadFeature extends Feature { +} // PayloadFeature diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PerformActionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PerformActionUsage.java new file mode 100644 index 000000000..8ca46605f --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PerformActionUsage.java @@ -0,0 +1,79 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Perform Action Usage'. + * + * + * + *

A PerformActionUsage is an ActionUsage that represents the performance of an ActionUsage. Unless it is the PerformActionUsage itself, the ActionUsage to be performed is related to the PerformActionUsage by a ReferenceSubsetting relationship. A PerformActionUsage is also an EventOccurrenceUsage, with its performedAction as the eventOccurrence.

+ * referencedFeatureTarget() <> null implies + * referencedFeatureTarget().oclIsKindOf(ActionUsage) + * owningType <> null and + * (owningType.oclIsKindOf(PartDefinition) or + * owningType.oclIsKindOf(PartUsage)) implies + * specializesFromLibrary('Parts::Part::performedActions') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.PerformActionUsage#getPerformedAction Performed Action}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getPerformActionUsage() + * @model + * @generated + */ +public interface PerformActionUsage extends ActionUsage, EventOccurrenceUsage { + /** + * Returns the value of the 'Performed Action' reference. + * + * + * + *

The ActionUsage to be performed by this PerformedActionUsage. It is the eventOccurrence of the PerformActionUsage considered as an EventOccurrenceUsage, which must be an ActionUsage.

+ * + * + * @return the value of the 'Performed Action' reference. + * @see #setPerformedAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getPerformActionUsage_PerformedAction() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='performingAction'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getPerformedAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.PerformActionUsage#getPerformedAction Performed Action}' reference. + * + * + * @param value the new value of the 'Performed Action' reference. + * @see #getPerformedAction() + * @generated + */ + void setPerformedAction(ActionUsage value); + +} // PerformActionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortConjugation.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortConjugation.java new file mode 100644 index 000000000..633595696 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortConjugation.java @@ -0,0 +1,102 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Port Conjugation'. + * + * + * + *

A PortConjugation is a Conjugation Relationship between a PortDefinition and its corresponding ConjugatedPortDefinition. As a result of this Relationship, the ConjugatedPortDefinition inherits all the features of the original PortDefinition, but input flows of the original PortDefinition become outputs on the ConjugatedPortDefinition and output flows of the original PortDefinition become inputs on the ConjugatedPortDefinition.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.PortConjugation#getConjugatedPortDefinition Conjugated Port Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.PortConjugation#getOriginalPortDefinition Original Port Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getPortConjugation() + * @model + * @generated + */ +public interface PortConjugation extends Conjugation { + /** + * Returns the value of the 'Conjugated Port Definition' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOwnedPortConjugator Owned Port Conjugator}'. + * + * + * + *

The ConjugatedPortDefinition that is conjugate to the originalPortDefinition.

+ * + * @return the value of the 'Conjugated Port Definition' reference. + * @see #setConjugatedPortDefinition(ConjugatedPortDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getPortConjugation_ConjugatedPortDefinition() + * @see org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOwnedPortConjugator + * @model opposite="ownedPortConjugator" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ConjugatedPortDefinition getConjugatedPortDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.PortConjugation#getConjugatedPortDefinition Conjugated Port Definition}' reference. + * + * + * @param value the new value of the 'Conjugated Port Definition' reference. + * @see #getConjugatedPortDefinition() + * @generated + */ + void setConjugatedPortDefinition(ConjugatedPortDefinition value); + + /** + * Returns the value of the 'Original Port Definition' reference. + * + * + * + *

The PortDefinition being conjugated.

+ * + * @return the value of the 'Original Port Definition' reference. + * @see #setOriginalPortDefinition(PortDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getPortConjugation_OriginalPortDefinition() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='portConjugation'" + * annotation="redefines" + * @generated + */ + PortDefinition getOriginalPortDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.PortConjugation#getOriginalPortDefinition Original Port Definition}' reference. + * + * + * @param value the new value of the 'Original Port Definition' reference. + * @see #getOriginalPortDefinition() + * @generated + */ + void setOriginalPortDefinition(PortDefinition value); + +} // PortConjugation diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortDefinition.java new file mode 100644 index 000000000..1b7d970ed --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortDefinition.java @@ -0,0 +1,90 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Port Definition'. + * + * + * + *

A PortDefinition defines a point at which external entities can connect to and interact with a system or part of a system. Any ownedUsages of a PortDefinition, other than PortUsages, must not be composite.

+ * + * + * + * conjugatedPortDefinition = + * let conjugatedPortDefinitions : OrderedSet(ConjugatedPortDefinition) = + * ownedMember->selectByKind(ConjugatedPortDefinition) in + * if conjugatedPortDefinitions->isEmpty() then null + * else conjugatedPortDefinitions->first() + * endif + * ownedUsage-> + * reject(oclIsKindOf(PortUsage))-> + * forAll(not isComposite) + * not oclIsKindOf(ConjugatedPortDefinition) implies + * ownedMember-> + * selectByKind(ConjugatedPortDefinition)-> + * size() = 1 + * specializesFromLibrary('Ports::Port') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.PortDefinition#getConjugatedPortDefinition Conjugated Port Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getPortDefinition() + * @model + * @generated + */ +public interface PortDefinition extends OccurrenceDefinition, Structure { + /** + * Returns the value of the 'Conjugated Port Definition' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOriginalPortDefinition Original Port Definition}'. + * + * + * + *

The that is conjugate to this PortDefinition.

+ * + * @return the value of the 'Conjugated Port Definition' reference. + * @see #setConjugatedPortDefinition(ConjugatedPortDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getPortDefinition_ConjugatedPortDefinition() + * @see org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOriginalPortDefinition + * @model opposite="originalPortDefinition" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ConjugatedPortDefinition getConjugatedPortDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.PortDefinition#getConjugatedPortDefinition Conjugated Port Definition}' reference. + * + * + * @param value the new value of the 'Conjugated Port Definition' reference. + * @see #getConjugatedPortDefinition() + * @generated + */ + void setConjugatedPortDefinition(ConjugatedPortDefinition value); + +} // PortDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortUsage.java new file mode 100644 index 000000000..80ad96b18 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortUsage.java @@ -0,0 +1,79 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Port Usage'. + * + * + * + *

A PortUsage is a usage of a PortDefinition. A PortUsage itself as well as all its nestedUsages must be referential (non-composite).

+ * nestedUsage-> + * reject(oclIsKindOf(PortUsage))-> + * forAll(not isComposite) + * specializesFromLibrary('Ports::ports') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(PortDefinition) or + * owningType.oclIsKindOf(PortUsage)) implies + * specializesFromLibrary('Ports::Port::subports') + * owningType = null or + * not owningType.oclIsKindOf(PortDefinition) and + * not owningType.oclIsKindOf(PortUsage) implies + * isReference + * owningType <> null and + * (owningType.oclIsKindOf(PartDefinition) or + * owningType.oclIsKindOf(PartUsage)) implies + * specializesFromLibrary('Parts::Part::ownedPorts') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.PortUsage#getPortDefinition Port Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getPortUsage() + * @model + * @generated + */ +public interface PortUsage extends OccurrenceUsage { + /** + * Returns the value of the 'Port Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PortDefinition}. + * + * + * + *

The occurrenceDefinitions of this PortUsage, which must all be PortDefinitions.

+ * + * @return the value of the 'Port Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getPortUsage_PortDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedPort'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getPortDefinition(); + +} // PortUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortionKind.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortionKind.java new file mode 100644 index 000000000..d069c0391 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/PortionKind.java @@ -0,0 +1,241 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Portion Kind', + * and utility methods for working with them. + * + * + *

PortionKind is an enumeration of the specific kinds of Occurrence portions that can be represented by an OccurrenceUsage.

+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getPortionKind() + * @model + * @generated + */ +public enum PortionKind implements Enumerator { + /** + * The 'Timeslice' literal object. + * + * + * + *

A time slice of an Occurrence (a portion over time).

+ * + * @see #TIMESLICE_VALUE + * @generated + * @ordered + */ + TIMESLICE(0, "timeslice", "timeslice"), + + /** + * The 'Snapshot' literal object. + * + * + * + *

A snapshot of an Occurrence (a time slice with zero duration).

+ * + * @see #SNAPSHOT_VALUE + * @generated + * @ordered + */ + SNAPSHOT(1, "snapshot", "snapshot"); + + /** + * The 'Timeslice' literal value. + * + * + * + *

A time slice of an Occurrence (a portion over time).

+ * + * @see #TIMESLICE + * @model name="timeslice" + * @generated + * @ordered + */ + public static final int TIMESLICE_VALUE = 0; + + /** + * The 'Snapshot' literal value. + * + * + * + *

A snapshot of an Occurrence (a time slice with zero duration).

+ * + * @see #SNAPSHOT + * @model name="snapshot" + * @generated + * @ordered + */ + public static final int SNAPSHOT_VALUE = 1; + + /** + * An array of all the 'Portion Kind' enumerators. + * + * + * @generated + */ + private static final PortionKind[] VALUES_ARRAY = + new PortionKind[] { + TIMESLICE, + SNAPSHOT, + }; + + /** + * A public read-only list of all the 'Portion Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Portion Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static PortionKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + PortionKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Portion Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static PortionKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + PortionKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Portion Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static PortionKind get(int value) { + switch (value) { + case TIMESLICE_VALUE: return TIMESLICE; + case SNAPSHOT_VALUE: return SNAPSHOT; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private PortionKind(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //PortionKind diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Predicate.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Predicate.java new file mode 100644 index 000000000..86dc83d2d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Predicate.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Predicate'. + * + * + * + *

A Predicate is a Function whose result parameter has type Boolean and multiplicity 1..1.

+ * + * specializesFromLibrary('Performances::BooleanEvaluation') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getPredicate() + * @model + * @generated + */ +public interface Predicate extends Function { +} // Predicate diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Redefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Redefinition.java new file mode 100644 index 000000000..5c26f9738 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Redefinition.java @@ -0,0 +1,128 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Redefinition'. + * + * + * + *

Redefinition is a kind of Subsetting that requires the redefinedFeature and the redefiningFeature to have the same values (on each instance of the domain of the redefiningFeature). This means any restrictions on the redefiningFeature, such as type or multiplicity, also apply to the redefinedFeature (on each instance of the domain of the redefiningFeature), and vice versa. The redefinedFeature might have values for instances of the domain of the redefiningFeature, but only as instances of the domain of the redefinedFeature that happen to also be instances of the domain of the redefiningFeature. This is supported by the constraints inherited from Subsetting on the domains of the redefiningFeature and redefinedFeature. However, these constraints are narrowed for Redefinition to require the owningTypes of the redefiningFeature and redefinedFeature to be different and the redefinedFeature to not be inherited into the owningNamespace of the redefiningFeature.This enables the redefiningFeature to have the same name as the redefinedFeature, if desired.

+ * + * let anythingType: Type = + * redefiningFeature.resolveGlobal('Base::Anything').modelElement.oclAsType(Type) in + * -- Including "Anything" accounts for implicit featuringType of Features + * -- with no explicit featuringType. + * let redefiningFeaturingTypes: Set(Type) = + * if redefiningFeature.isVariable then Set{redefiningFeature.owningType} + * else redefiningFeature.featuringTypes->asSet()->including(anythingType) + * endif in + * let redefinedFeaturingTypes: Set(Type) = + * if redefinedFeature.isVariable then Set{redefinedFeature.owningType} + * else redefinedFeature.featuringTypes->asSet()->including(anythingType) + * endif in + * redefiningFeaturingTypes <> redefinedFeaturingType + * let featuringTypes : Sequence(Type) = + * if redefiningFeature.isVariable then Sequence{redefiningFeature.owningType} + * else redefiningFeature.featuringType + * endif in + * featuringTypes->forAll(t | + * let direction : FeatureDirectionKind = t.directionOf(redefinedFeature) in + * ((direction = FeatureDirectionKind::_'in' or + * direction = FeatureDirectionKind::out) implies + * redefiningFeature.direction = direction) + * and + * (direction = FeatureDirectionKind::inout implies + * redefiningFeature.direction <> null)) + * redefinedFeature.isEnd implies redefiningFeature.isEnd + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Redefinition#getRedefinedFeature Redefined Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Redefinition#getRedefiningFeature Redefining Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getRedefinition() + * @model + * @generated + */ +public interface Redefinition extends Subsetting { + /** + * Returns the value of the 'Redefined Feature' reference. + * + * + * + *

The Feature that is redefined by the redefiningFeature of this Redefinition.

+ * + * + * @return the value of the 'Redefined Feature' reference. + * @see #setRedefinedFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRedefinition_RedefinedFeature() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='redefining'" + * annotation="redefines" + * @generated + */ + Feature getRedefinedFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Redefinition#getRedefinedFeature Redefined Feature}' reference. + * + * + * @param value the new value of the 'Redefined Feature' reference. + * @see #getRedefinedFeature() + * @generated + */ + void setRedefinedFeature(Feature value); + + /** + * Returns the value of the 'Redefining Feature' reference. + * + * + * + *

The Feature that is redefining the redefinedFeature of this Redefinition.

+ * + * + * @return the value of the 'Redefining Feature' reference. + * @see #setRedefiningFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRedefinition_RedefiningFeature() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='redefinition'" + * annotation="redefines" + * @generated + */ + Feature getRedefiningFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Redefinition#getRedefiningFeature Redefining Feature}' reference. + * + * + * @param value the new value of the 'Redefining Feature' reference. + * @see #getRedefiningFeature() + * @generated + */ + void setRedefiningFeature(Feature value); + +} // Redefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ReferenceSubsetting.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ReferenceSubsetting.java new file mode 100644 index 000000000..9ae1f3488 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ReferenceSubsetting.java @@ -0,0 +1,106 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Reference Subsetting'. + * + * + * + *

ReferenceSubsetting is a kind of Subsetting in which the referencedFeature is syntactically distinguished from other Features subsetted by the referencingFeature. ReferenceSubsetting has the same semantics as Subsetting, but the referencedFeature may have a special purpose relative to the referencingFeature. For instance, ReferenceSubsetting is used to identify the relatedFeatures of a Connector.

+ * + *

ReferenceSubsetting is always an ownedRelationship of its referencingFeature. A Feature can have at most one ownedReferenceSubsetting.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ReferenceSubsetting#getReferencedFeature Referenced Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.ReferenceSubsetting#getReferencingFeature Referencing Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getReferenceSubsetting() + * @model + * @generated + */ +public interface ReferenceSubsetting extends Subsetting { + /** + * Returns the value of the 'Referenced Feature' reference. + * + * + * + *

The Feature that is referenced by the referencingFeature of this ReferenceSubsetting.

+ * + * + * @return the value of the 'Referenced Feature' reference. + * @see #setReferencedFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getReferenceSubsetting_ReferencedFeature() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='referencing'" + * annotation="redefines" + * @generated + */ + Feature getReferencedFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ReferenceSubsetting#getReferencedFeature Referenced Feature}' reference. + * + * + * @param value the new value of the 'Referenced Feature' reference. + * @see #getReferencedFeature() + * @generated + */ + void setReferencedFeature(Feature value); + + /** + * Returns the value of the 'Referencing Feature' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Feature#getOwnedReferenceSubsetting Owned Reference Subsetting}'. + * + * + * + *

The Feature that owns this ReferenceSubsetting relationship, which is also its subsettingFeature.

+ * + * + * @return the value of the 'Referencing Feature' reference. + * @see #setReferencingFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getReferenceSubsetting_ReferencingFeature() + * @see org.omg.sysml.model.sysml.Feature#getOwnedReferenceSubsetting + * @model opposite="ownedReferenceSubsetting" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getReferencingFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ReferenceSubsetting#getReferencingFeature Referencing Feature}' reference. + * + * + * @param value the new value of the 'Referencing Feature' reference. + * @see #getReferencingFeature() + * @generated + */ + void setReferencingFeature(Feature value); + +} // ReferenceSubsetting diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ReferenceUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ReferenceUsage.java new file mode 100644 index 000000000..11969172e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ReferenceUsage.java @@ -0,0 +1,39 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Reference Usage'. + * + * + * + *

A ReferenceUsage is a Usage that specifies a non-compositional (isComposite = false) reference to something. The definition of a ReferenceUsage can be any kind of Classifier, with the default being the top-level Classifier Base::Anything from the Kernel Semantic Library. This allows the specification of a generic reference without distinguishing if the thing referenced is an attribute value, item, action, etc.

+ * isReference + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getReferenceUsage() + * @model + * @generated + */ +public interface ReferenceUsage extends Usage { +} // ReferenceUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Relationship.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Relationship.java new file mode 100644 index 000000000..385a3133a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Relationship.java @@ -0,0 +1,178 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Relationship'. + * + * + * + *

A Relationship is an Element that relates other Element. Some of its relatedElements may be owned, in which case those ownedRelatedElements will be deleted from a model if their owningRelationship is. A Relationship may also be owned by another Element, in which case the ownedRelatedElements of the Relationship are also considered to be transitively owned by the owningRelatedElement of the Relationship.

+ * + *

The relatedElements of a Relationship are divided into source and target Elements. The Relationship is considered to be directed from the source to the target Elements. An undirected Relationship may have either all source or all target Elements.

+ * + *

A "relationship Element" in the abstract syntax is generically any Element that is an instance of either Relationship or a direct or indirect specialization of Relationship. Any other kind of Element is a "non-relationship Element". It is a convention of that non-relationship Elements are only related via reified relationship Elements. Any meta-associations directly between non-relationship Elements must be derived from underlying reified Relationship.

+ * + * relatedElement = source->union(target) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Relationship#isIsImplied Is Implied}
  • + *
  • {@link org.omg.sysml.model.sysml.Relationship#getOwnedRelatedElement Owned Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Relationship#getOwningRelatedElement Owning Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Relationship#getRelatedElement Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.Relationship#getSource Source}
  • + *
  • {@link org.omg.sysml.model.sysml.Relationship#getTarget Target}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getRelationship() + * @model abstract="true" + * @generated + */ +public interface Relationship extends Element { + /** + * Returns the value of the 'Is Implied' attribute. + * The default value is "false". + * + * + * + *

Whether this Relationship was generated by tooling to meet semantic rules, rather than being directly created by a modeler.

+ * + * @return the value of the 'Is Implied' attribute. + * @see #setIsImplied(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRelationship_IsImplied() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsImplied(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Relationship#isIsImplied Is Implied}' attribute. + * + * + * @param value the new value of the 'Is Implied' attribute. + * @see #isIsImplied() + * @generated + */ + void setIsImplied(boolean value); + + /** + * Returns the value of the 'Owned Related Element' containment reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Element#getOwningRelationship Owning Relationship}'. + * + * + * + *

The relatedElements of this Relationship that are owned by the Relationship.

+ * + * @return the value of the 'Owned Related Element' containment reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRelationship_OwnedRelatedElement() + * @see org.omg.sysml.model.sysml.Element#getOwningRelationship + * @model opposite="owningRelationship" containment="true" + * annotation="subsets" + * @generated + */ + EList getOwnedRelatedElement(); + + /** + * Returns the value of the 'Owning Related Element' container reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Element#getOwnedRelationship Owned Relationship}'. + * + * + * + *

The relatedElement of this Relationship that owns the Relationship, if any.

+ * + * @return the value of the 'Owning Related Element' container reference. + * @see #setOwningRelatedElement(Element) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRelationship_OwningRelatedElement() + * @see org.omg.sysml.model.sysml.Element#getOwnedRelationship + * @model opposite="ownedRelationship" transient="false" ordered="false" + * annotation="subsets" + * @generated + */ + Element getOwningRelatedElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Relationship#getOwningRelatedElement Owning Related Element}' container reference. + * + * + * @param value the new value of the 'Owning Related Element' container reference. + * @see #getOwningRelatedElement() + * @generated + */ + void setOwningRelatedElement(Element value); + + /** + * Returns the value of the 'Related Element' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * + * + * + *

The Elements that are related by this Relationship, derived as the union of the source and target Elements of the Relationship.

+ * + * @return the value of the 'Related Element' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRelationship_RelatedElement() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='relationship'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getRelatedElement(); + + /** + * Returns the value of the 'Source' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * + * + * + *

The relatedElements from which this Relationship is considered to be directed.

+ * + * @return the value of the 'Source' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRelationship_Source() + * @model annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='sourceRelationship'" + * annotation="subsets" + * @generated + */ + EList getSource(); + + /** + * Returns the value of the 'Target' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * + * + * + *

The relatedElements to which this Relationship is considered to be directed.

+ * + * + * @return the value of the 'Target' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRelationship_Target() + * @model annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='targetRelationship'" + * annotation="subsets" + * @generated + */ + EList getTarget(); + +} // Relationship diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RenderingDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RenderingDefinition.java new file mode 100644 index 000000000..3debdcbe2 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RenderingDefinition.java @@ -0,0 +1,65 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Rendering Definition'. + * + * + * + *

A RenderingDefinition is a PartDefinition that defines a specific rendering of the content of a model view (e.g., symbols, style, layout, etc.).

+ * rendering = usages->selectByKind(RenderingUsage) + * specializesFromLibrary('Views::Rendering') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.RenderingDefinition#getRendering Rendering}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getRenderingDefinition() + * @model + * @generated + */ +public interface RenderingDefinition extends PartDefinition { + /** + * Returns the value of the 'Rendering' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.RenderingUsage}. + * + * + * + *

The usages of a RenderingDefinition that are RenderingUsages.

+ * + * @return the value of the 'Rendering' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRenderingDefinition_Rendering() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringRenderingDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getRendering(); + +} // RenderingDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RenderingUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RenderingUsage.java new file mode 100644 index 000000000..2ebc1c91d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RenderingUsage.java @@ -0,0 +1,82 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Rendering Usage'. + * + * + * + *

A RenderingUsage is the usage of a RenderingDefinition to specify the rendering of a specific model view to produce a physical view artifact.

+ * + * + * specializesFromLibrary('Views::renderings') + * owningType <> null and + * (owningType.oclIsKindOf(RenderingDefinition) or + * owningType.oclIsKindOf(RenderingUsage)) implies + * specializesFromLibrary('Views::Rendering::subrenderings') + * owningFeatureMembership <> null and + * owningFeatureMembership.oclIsKindOf(ViewRenderingMembership) implies + * redefinesFromLibrary('Views::View::viewRendering') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.RenderingUsage#getRenderingDefinition Rendering Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getRenderingUsage() + * @model + * @generated + */ +public interface RenderingUsage extends PartUsage { + /** + * Returns the value of the 'Rendering Definition' reference. + * + * + * + *

The RenderingDefinition that is the definition of this RenderingUsage.

+ * + * @return the value of the 'Rendering Definition' reference. + * @see #setRenderingDefinition(RenderingDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRenderingUsage_RenderingDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedRendering'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RenderingDefinition getRenderingDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RenderingUsage#getRenderingDefinition Rendering Definition}' reference. + * + * + * @param value the new value of the 'Rendering Definition' reference. + * @see #getRenderingDefinition() + * @generated + */ + void setRenderingDefinition(RenderingDefinition value); + +} // RenderingUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementConstraintKind.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementConstraintKind.java new file mode 100644 index 000000000..2ee48f273 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementConstraintKind.java @@ -0,0 +1,241 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Requirement Constraint Kind', + * and utility methods for working with them. + * + * + *

A RequirementConstraintKind indicates whether a ConstraintUsage is an assumption or a requirement in a RequirementDefinition or RequirementUsage.

+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementConstraintKind() + * @model + * @generated + */ +public enum RequirementConstraintKind implements Enumerator { + /** + * The 'Assumption' literal object. + * + * + * + *

Indicates that a member ConstraintUsage of a RequirementDefinition or RequirementUsage represents an assumption.

+ * + * @see #ASSUMPTION_VALUE + * @generated + * @ordered + */ + ASSUMPTION(0, "assumption", "assumption"), + + /** + * The 'Requirement' literal object. + * + * + * + *

Indicates that a member ConstraintUsage of a RequirementDefinition or RequirementUsagerepresents an requirement.

+ * + * @see #REQUIREMENT_VALUE + * @generated + * @ordered + */ + REQUIREMENT(1, "requirement", "requirement"); + + /** + * The 'Assumption' literal value. + * + * + * + *

Indicates that a member ConstraintUsage of a RequirementDefinition or RequirementUsage represents an assumption.

+ * + * @see #ASSUMPTION + * @model name="assumption" + * @generated + * @ordered + */ + public static final int ASSUMPTION_VALUE = 0; + + /** + * The 'Requirement' literal value. + * + * + * + *

Indicates that a member ConstraintUsage of a RequirementDefinition or RequirementUsagerepresents an requirement.

+ * + * @see #REQUIREMENT + * @model name="requirement" + * @generated + * @ordered + */ + public static final int REQUIREMENT_VALUE = 1; + + /** + * An array of all the 'Requirement Constraint Kind' enumerators. + * + * + * @generated + */ + private static final RequirementConstraintKind[] VALUES_ARRAY = + new RequirementConstraintKind[] { + ASSUMPTION, + REQUIREMENT, + }; + + /** + * A public read-only list of all the 'Requirement Constraint Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Requirement Constraint Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static RequirementConstraintKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + RequirementConstraintKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Requirement Constraint Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static RequirementConstraintKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + RequirementConstraintKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Requirement Constraint Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static RequirementConstraintKind get(int value) { + switch (value) { + case ASSUMPTION_VALUE: return ASSUMPTION; + case REQUIREMENT_VALUE: return REQUIREMENT; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private RequirementConstraintKind(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //RequirementConstraintKind diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementConstraintMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementConstraintMembership.java new file mode 100644 index 000000000..1b2f57ead --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementConstraintMembership.java @@ -0,0 +1,140 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Requirement Constraint Membership'. + * + * + * + *

A RequirementConstraintMembership is a FeatureMembership for an assumed or required ConstraintUsage of a RequirementDefinition or RequirementUsage.

+ * referencedConstraint = + * let referencedFeature : Feature = + * ownedConstraint.referencedFeatureTarget() in + * if referencedFeature = null then ownedConstraint + * else if referencedFeature.oclIsKindOf(ConstraintUsage) then + * refrencedFeature.oclAsType(ConstraintUsage) + * else null + * endif endif + * owningType.oclIsKindOf(RequirementDefinition) or + * owningType.oclIsKindOf(RequirementUsage) + * ownedConstraint.isComposite + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.RequirementConstraintMembership#getKind Kind}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementConstraintMembership#getOwnedConstraint Owned Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementConstraintMembership#getReferencedConstraint Referenced Constraint}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementConstraintMembership() + * @model + * @generated + */ +public interface RequirementConstraintMembership extends FeatureMembership { + /** + * Returns the value of the 'Kind' attribute. + * The literals are from the enumeration {@link org.omg.sysml.model.sysml.RequirementConstraintKind}. + * + * + * + *

Whether the RequirementConstraintMembership is for an assumed or required ConstraintUsage.

+ * + * @return the value of the 'Kind' attribute. + * @see org.omg.sysml.model.sysml.RequirementConstraintKind + * @see #setKind(RequirementConstraintKind) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementConstraintMembership_Kind() + * @model required="true" ordered="false" + * @generated + */ + RequirementConstraintKind getKind(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RequirementConstraintMembership#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.omg.sysml.model.sysml.RequirementConstraintKind + * @see #getKind() + * @generated + */ + void setKind(RequirementConstraintKind value); + + /** + * Returns the value of the 'Owned Constraint' reference. + * + * + * + *

The ConstraintUsage that is the ownedMemberFeature of this RequirementConstraintMembership.

+ * + * @return the value of the 'Owned Constraint' reference. + * @see #setOwnedConstraint(ConstraintUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementConstraintMembership_OwnedConstraint() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='requirementConstraintMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ConstraintUsage getOwnedConstraint(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RequirementConstraintMembership#getOwnedConstraint Owned Constraint}' reference. + * + * + * @param value the new value of the 'Owned Constraint' reference. + * @see #getOwnedConstraint() + * @generated + */ + void setOwnedConstraint(ConstraintUsage value); + + /** + * Returns the value of the 'Referenced Constraint' reference. + * + * + * + *

The ConstraintUsage that is referenced through this RequirementConstraintMembership. It is the referencedFeature of the ownedReferenceSubsetting of the ownedConstraint, if there is one, and, otherwise, the ownedConstraint itself.

+ * + * @return the value of the 'Referenced Constraint' reference. + * @see #setReferencedConstraint(ConstraintUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementConstraintMembership_ReferencedConstraint() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='referencingConstraintMembership'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ConstraintUsage getReferencedConstraint(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RequirementConstraintMembership#getReferencedConstraint Referenced Constraint}' reference. + * + * + * @param value the new value of the 'Referenced Constraint' reference. + * @see #getReferencedConstraint() + * @generated + */ + void setReferencedConstraint(ConstraintUsage value); + +} // RequirementConstraintMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementDefinition.java new file mode 100644 index 000000000..6bd6c596b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementDefinition.java @@ -0,0 +1,242 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Requirement Definition'. + * + * + * + *

A RequirementDefinition is a ConstraintDefinition that defines a requirement used in the context of a specification as a constraint that a valid solution must satisfy. The specification is relative to a specified subject, possibly in collaboration with one or more external actors.

+ * text = documentation.body + * assumedConstraint = ownedFeatureMembership-> + * selectByKind(RequirementConstraintMembership)-> + * select(kind = RequirementConstraintKind::assumption). + * ownedConstraint + * requiredConstraint = ownedFeatureMembership-> + * selectByKind(RequirementConstraintMembership)-> + * select(kind = RequirementConstraintKind::requirement). + * ownedConstraint + * subjectParameter = + * let subjects : OrderedSet(SubjectMembership) = + * featureMembership->selectByKind(SubjectMembership) in + * if subjects->isEmpty() then null + * else subjects->first().ownedSubjectParameter + * endif + * framedConcern = featureMembership-> + * selectByKind(FramedConcernMembership). + * ownedConcern + * actorParameter = featureMembership-> + * selectByKind(ActorMembership). + * ownedActorParameter + * stakeholderParameter = featureMembership-> + * selectByKind(StakholderMembership). + * ownedStakeholderParameter + * featureMembership-> + * selectByKind(SubjectMembership)-> + * size() <= 1 + * input->notEmpty() and input->first() = subjectParameter + * specializesFromLibrary('Requirements::RequirementCheck') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.RequirementDefinition#getReqId Req Id}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementDefinition#getText Text}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementDefinition#getActorParameter Actor Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementDefinition#getAssumedConstraint Assumed Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementDefinition#getFramedConcern Framed Concern}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementDefinition#getRequiredConstraint Required Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementDefinition#getStakeholderParameter Stakeholder Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementDefinition#getSubjectParameter Subject Parameter}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementDefinition() + * @model + * @generated + */ +public interface RequirementDefinition extends ConstraintDefinition { + /** + * Returns the value of the 'Req Id' attribute. + * + * + * + *

An optional modeler-specified identifier for this RequirementDefinition (used, e.g., to link it to an original requirement text in some source document), which is the declaredShortName for the RequirementDefinition.

+ * + * @return the value of the 'Req Id' attribute. + * @see #setReqId(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementDefinition_ReqId() + * @model ordered="false" + * annotation="redefines" + * @generated + */ + String getReqId(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RequirementDefinition#getReqId Req Id}' attribute. + * + * + * @param value the new value of the 'Req Id' attribute. + * @see #getReqId() + * @generated + */ + void setReqId(String value); + + /** + * Returns the value of the 'Text' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * + *

An optional textual statement of the requirement represented by this RequirementDefinition, derived from the bodies of the documentation of the RequirementDefinition.

+ * + * + * @return the value of the 'Text' attribute list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementDefinition_Text() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getText(); + + /** + * Returns the value of the 'Actor Parameter' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartUsage}. + * + * + * + *

The parameters of this RequirementDefinition that represent actors involved in the requirement.

+ * + * @return the value of the 'Actor Parameter' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementDefinition_ActorParameter() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='actorOwningRequirementDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getActorParameter(); + + /** + * Returns the value of the 'Assumed Constraint' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConstraintUsage}. + * + * + * + *

The owned ConstraintUsages that represent assumptions of this RequirementDefinition, which are the ownedConstraints of the RequirementConstraintMemberships of the RequirementDefinition with kind = assumption.

+ * + * @return the value of the 'Assumed Constraint' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementDefinition_AssumedConstraint() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='assumingRequirementDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getAssumedConstraint(); + + /** + * Returns the value of the 'Framed Concern' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConcernUsage}. + * + * + * + *

The ConcernUsages framed by this RequirementDefinition, which are the ownedConcerns of all FramedConcernMemberships of the RequirementDefinition.

+ * + * @return the value of the 'Framed Concern' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementDefinition_FramedConcern() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='framingRequirementDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getFramedConcern(); + + /** + * Returns the value of the 'Required Constraint' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConstraintUsage}. + * + * + * + *

The owned ConstraintUsages that represent requirements of this RequirementDefinition, derived as the ownedConstraints of the RequirementConstraintMemberships of the RequirementDefinition with kind = requirement.

+ * + * @return the value of the 'Required Constraint' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementDefinition_RequiredConstraint() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='requiringRequirementDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getRequiredConstraint(); + + /** + * Returns the value of the 'Stakeholder Parameter' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartUsage}. + * + * + * + *

The parameters of this RequirementDefinition that represent stakeholders for th requirement.

+ * + * @return the value of the 'Stakeholder Parameter' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementDefinition_StakeholderParameter() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='stakholderOwiningRequirementDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getStakeholderParameter(); + + /** + * Returns the value of the 'Subject Parameter' reference. + * + * + * + *

The parameter of this RequirementDefinition that represents its subject.

+ * + * @return the value of the 'Subject Parameter' reference. + * @see #setSubjectParameter(Usage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementDefinition_SubjectParameter() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='subjectOwningRequirementDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Usage getSubjectParameter(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RequirementDefinition#getSubjectParameter Subject Parameter}' reference. + * + * + * @param value the new value of the 'Subject Parameter' reference. + * @see #getSubjectParameter() + * @generated + */ + void setSubjectParameter(Usage value); + +} // RequirementDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementUsage.java new file mode 100644 index 000000000..e7e815bfc --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementUsage.java @@ -0,0 +1,284 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Requirement Usage'. + * + * + * + *

A RequirementUsage is a Usage of a RequirementDefinition.

+ * actorParameter = featureMembership-> + * selectByKind(ActorMembership). + * ownedActorParameter + * assumedConstraint = ownedFeatureMembership-> + * selectByKind(RequirementConstraintMembership)-> + * select(kind = RequirementConstraintKind::assumption). + * ownedConstraint + * framedConcern = featureMembership-> + * selectByKind(FramedConcernMembership). + * ownedConcern + * requiredConstraint = ownedFeatureMembership-> + * selectByKind(RequirementConstraintMembership)-> + * select(kind = RequirementConstraintKind::requirement). + * ownedConstraint + * stakeholderParameter = featureMembership-> + * selectByKind(AStakholderMembership). + * ownedStakeholderParameter + * subjectParameter = + * let subjects : OrderedSet(SubjectMembership) = + * featureMembership->selectByKind(SubjectMembership) in + * if subjects->isEmpty() then null + * else subjects->first().ownedSubjectParameter + * endif + * text = documentation.body + * featureMembership-> + * selectByKind(SubjectMembership)-> + * size() <= 1 + * input->notEmpty() and input->first() = subjectParameter + * specializesFromLibrary('Requirements::requirementChecks') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(RequirementDefinition) or + * owningType.oclIsKindOf(RequirementUsage)) implies + * specializesFromLibrary('Requirements::RequirementCheck::subrequirements') + * owningfeatureMembership <> null and + * owningfeatureMembership.oclIsKindOf(ObjectiveMembership) implies + * owningType.ownedSpecialization.general->forAll(gen | + * (gen.oclIsKindOf(CaseDefinition) implies + * redefines(gen.oclAsType(CaseDefinition).objectiveRequirement)) and + * (gen.oclIsKindOf(CaseUsage) implies + * redefines(gen.oclAsType(CaseUsage).objectiveRequirement)) + * owningFeatureMembership <> null and + * owningFeatureMembership.oclIsKindOf(RequirementVerificationMembership) implies + * specializesFromLibrary('VerificationCases::VerificationCase::obj::requirementVerifications') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.RequirementUsage#getReqId Req Id}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementUsage#getText Text}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementUsage#getActorParameter Actor Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementUsage#getAssumedConstraint Assumed Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementUsage#getFramedConcern Framed Concern}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementUsage#getRequiredConstraint Required Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementUsage#getRequirementDefinition Requirement Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementUsage#getStakeholderParameter Stakeholder Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementUsage#getSubjectParameter Subject Parameter}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementUsage() + * @model + * @generated + */ +public interface RequirementUsage extends ConstraintUsage { + /** + * Returns the value of the 'Req Id' attribute. + * + * + * + *

An optional modeler-specified identifier for this RequirementUsage (used, e.g., to link it to an original requirement text in some source document), which is the declaredShortName for the RequirementUsage.

+ * + * @return the value of the 'Req Id' attribute. + * @see #setReqId(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementUsage_ReqId() + * @model ordered="false" + * annotation="redefines" + * @generated + */ + String getReqId(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RequirementUsage#getReqId Req Id}' attribute. + * + * + * @param value the new value of the 'Req Id' attribute. + * @see #getReqId() + * @generated + */ + void setReqId(String value); + + /** + * Returns the value of the 'Text' attribute list. + * The list contents are of type {@link java.lang.String}. + * + * + * + *

An optional textual statement of the requirement represented by this RequirementUsage, derived from the bodies of the documentation of the RequirementUsage.

+ * + * @return the value of the 'Text' attribute list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementUsage_Text() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getText(); + + /** + * Returns the value of the 'Actor Parameter' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartUsage}. + * + * + * + *

The parameters of this RequirementUsage that represent actors involved in the requirement.

+ * + * @return the value of the 'Actor Parameter' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementUsage_ActorParameter() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='actorOwningRequirement'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getActorParameter(); + + /** + * Returns the value of the 'Assumed Constraint' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConstraintUsage}. + * + * + * + *

The owned ConstraintUsages that represent assumptions of this RequirementUsage, derived as the ownedConstraints of the RequirementConstraintMemberships of the RequirementUsage with kind = assumption.

+ * + * @return the value of the 'Assumed Constraint' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementUsage_AssumedConstraint() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='assumingRequirement'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getAssumedConstraint(); + + /** + * Returns the value of the 'Framed Concern' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConcernUsage}. + * + * + * + *

The ConcernUsages framed by this RequirementUsage, which are the ownedConcerns of all FramedConcernMemberships of the RequirementUsage.

+ * + * @return the value of the 'Framed Concern' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementUsage_FramedConcern() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='framingRequirement'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getFramedConcern(); + + /** + * Returns the value of the 'Required Constraint' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConstraintUsage}. + * + * + * + *

The owned ConstraintUsages that represent requirements of this RequirementUsage, which are the ownedConstraints of the RequirementConstraintMemberships of the RequirementUsage with kind = requirement.

+ * + * @return the value of the 'Required Constraint' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementUsage_RequiredConstraint() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='requiringRequirement'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getRequiredConstraint(); + + /** + * Returns the value of the 'Requirement Definition' reference. + * + * + * + *

The RequirementDefinition that is the single definition of this RequirementUsage.

+ * + * @return the value of the 'Requirement Definition' reference. + * @see #setRequirementDefinition(RequirementDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementUsage_RequirementDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedRequirement'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RequirementDefinition getRequirementDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RequirementUsage#getRequirementDefinition Requirement Definition}' reference. + * + * + * @param value the new value of the 'Requirement Definition' reference. + * @see #getRequirementDefinition() + * @generated + */ + void setRequirementDefinition(RequirementDefinition value); + + /** + * Returns the value of the 'Stakeholder Parameter' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartUsage}. + * + * + * + *

The parameters of this RequirementUsage that represent stakeholders for the requirement.

+ * + * @return the value of the 'Stakeholder Parameter' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementUsage_StakeholderParameter() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='stakholderOwningRequirement'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getStakeholderParameter(); + + /** + * Returns the value of the 'Subject Parameter' reference. + * + * + * + *

The parameter of this RequirementUsage that represents its subject.

+ * + * @return the value of the 'Subject Parameter' reference. + * @see #setSubjectParameter(Usage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementUsage_SubjectParameter() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='subjectOwningRequirement'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Usage getSubjectParameter(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RequirementUsage#getSubjectParameter Subject Parameter}' reference. + * + * + * @param value the new value of the 'Subject Parameter' reference. + * @see #getSubjectParameter() + * @generated + */ + void setSubjectParameter(Usage value); + +} // RequirementUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementVerificationMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementVerificationMembership.java new file mode 100644 index 000000000..636ac49b3 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/RequirementVerificationMembership.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Requirement Verification Membership'. + * + * + * + *

A RequirementVerificationMembership is a RequirementConstraintMembership used in the objective of a VerificationCase to identify a RequirementUsage that is verified by the VerificationCase.

+ * kind = RequirementConstraintKind::requirement + * owningType.oclIsKindOf(RequirementUsage) and + * owningType.owningFeatureMembership <> null and + * owningType.owningFeatureMembership.oclIsKindOf(ObjectiveMembership) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.RequirementVerificationMembership#getOwnedRequirement Owned Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.RequirementVerificationMembership#getVerifiedRequirement Verified Requirement}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementVerificationMembership() + * @model + * @generated + */ +public interface RequirementVerificationMembership extends RequirementConstraintMembership { + /** + * Returns the value of the 'Owned Requirement' reference. + * + * + * + *

The owned RequirementUsage that acts as the ownedConstraint for this RequirementVerificationMembership. This will either be the verifiedRequirement, or it will subset the verifiedRequirement.

+ * + * @return the value of the 'Owned Requirement' reference. + * @see #setOwnedRequirement(RequirementUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementVerificationMembership_OwnedRequirement() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='requirementVerificationMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RequirementUsage getOwnedRequirement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RequirementVerificationMembership#getOwnedRequirement Owned Requirement}' reference. + * + * + * @param value the new value of the 'Owned Requirement' reference. + * @see #getOwnedRequirement() + * @generated + */ + void setOwnedRequirement(RequirementUsage value); + + /** + * Returns the value of the 'Verified Requirement' reference. + * + * + * + *

The RequirementUsage that is identified as being verified. It is the referencedConstraint of the RequirementVerificationMembership considered as a RequirementConstraintMembership, which must be a RequirementUsage.

+ * + * @return the value of the 'Verified Requirement' reference. + * @see #setVerifiedRequirement(RequirementUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getRequirementVerificationMembership_VerifiedRequirement() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='requirementVerification'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RequirementUsage getVerifiedRequirement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.RequirementVerificationMembership#getVerifiedRequirement Verified Requirement}' reference. + * + * + * @param value the new value of the 'Verified Requirement' reference. + * @see #getVerifiedRequirement() + * @generated + */ + void setVerifiedRequirement(RequirementUsage value); + +} // RequirementVerificationMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ResultExpressionMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ResultExpressionMembership.java new file mode 100644 index 000000000..1fa932212 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ResultExpressionMembership.java @@ -0,0 +1,75 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Result Expression Membership'. + * + * + * + *

A ResultExpressionMembership is a FeatureMembership that indicates that the ownedResultExpression provides the result values for the Function or Expression that owns it. The owning Function or Expression must contain a BindingConnector between the result parameter of the ownedResultExpression and the result parameter of the owning Function or Expression.

+ * + * owningType.oclIsKindOf(Function) or owningType.oclIsKindOf(Expression) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ResultExpressionMembership#getOwnedResultExpression Owned Result Expression}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getResultExpressionMembership() + * @model + * @generated + */ +public interface ResultExpressionMembership extends FeatureMembership { + /** + * Returns the value of the 'Owned Result Expression' reference. + * + * + * + *

The Expression that provides the result for the owner of the ResultExpressionMembership.

+ * + * + * @return the value of the 'Owned Result Expression' reference. + * @see #setOwnedResultExpression(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getResultExpressionMembership_OwnedResultExpression() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningResultExpressionMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getOwnedResultExpression(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ResultExpressionMembership#getOwnedResultExpression Owned Result Expression}' reference. + * + * + * @param value the new value of the 'Owned Result Expression' reference. + * @see #getOwnedResultExpression() + * @generated + */ + void setOwnedResultExpression(Expression value); + +} // ResultExpressionMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ReturnParameterMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ReturnParameterMembership.java new file mode 100644 index 000000000..9a3a563a6 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ReturnParameterMembership.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Return Parameter Membership'. + * + * + * + *

A ReturnParameterMembership is a ParameterMembership that indicates that the ownedMemberParameter is the result parameter of a Function or Expression. The direction of the ownedMemberParameter must be out.

+ * + * owningType.oclIsKindOf(Function) or owningType.oclIsKindOf(Expression) + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getReturnParameterMembership() + * @model + * @generated + */ +public interface ReturnParameterMembership extends ParameterMembership { +} // ReturnParameterMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SatisfyRequirementUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SatisfyRequirementUsage.java new file mode 100644 index 000000000..057885f8b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SatisfyRequirementUsage.java @@ -0,0 +1,121 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Satisfy Requirement Usage'. + * + * + * + *

A SatisfyRequirementUsage is an AssertConstraintUsage that asserts, by default, that a satisfied RequirementUsage is true for a specific satisfyingFeature, or, if isNegated = true, that the RequirementUsage is false. The satisfied RequirementUsage is related to the SatisfyRequirementUsage by a ReferenceSubsetting Relationship.

+ * satisfyingFeature = + * let bindings: BindingConnector = ownedMember-> + * selectByKind(BindingConnector)-> + * select(b | b.relatedElement->includes(subjectParameter)) in + * if bindings->isEmpty() or + * bindings->first().relatedElement->exits(r | r <> subjectParameter) + * then null + * else bindings->first().relatedElement->any(r | r <> subjectParameter) + * endif + * ownedMember->selectByKind(BindingConnector)-> + * select(b | + * b.relatedElement->includes(subjectParameter) and + * b.relatedElement->exists(r | r <> subjectParameter))-> + * size() = 1 + * referencedFeatureTarget() <> null implies + * referencedFeatureTarget().oclIsKindOf(RequirementUsage) + * if isNegated then + * specializesFromLibrary('Requirements::notSatisfiedRequirementChecks') + * else + * specializesFromLibrary('Requirements::satisfiedRequirementChecks') + * endif + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.SatisfyRequirementUsage#getSatisfiedRequirement Satisfied Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.SatisfyRequirementUsage#getSatisfyingFeature Satisfying Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSatisfyRequirementUsage() + * @model + * @generated + */ +public interface SatisfyRequirementUsage extends RequirementUsage, AssertConstraintUsage { + /** + * Returns the value of the 'Satisfied Requirement' reference. + * + * + * + *

The RequirementUsage that is satisfied by the satisfyingSubject of this SatisfyRequirementUsage. It is the assertedConstraint of the SatisfyRequirementUsage considered as an AssertConstraintUsage, which must be a RequirementUsage.

+ * + * @return the value of the 'Satisfied Requirement' reference. + * @see #setSatisfiedRequirement(RequirementUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSatisfyRequirementUsage_SatisfiedRequirement() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='requirementSatisfaction'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RequirementUsage getSatisfiedRequirement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.SatisfyRequirementUsage#getSatisfiedRequirement Satisfied Requirement}' reference. + * + * + * @param value the new value of the 'Satisfied Requirement' reference. + * @see #getSatisfiedRequirement() + * @generated + */ + void setSatisfiedRequirement(RequirementUsage value); + + /** + * Returns the value of the 'Satisfying Feature' reference. + * + * + * + *

The Feature that represents the actual subject that is asserted to satisfy the satisfiedRequirement. The satisfyingFeature is bound to the subjectParameter of the SatisfyRequirementUsage.

+ * + * @return the value of the 'Satisfying Feature' reference. + * @see #setSatisfyingFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSatisfyRequirementUsage_SatisfyingFeature() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='satisfiedRequirement'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getSatisfyingFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.SatisfyRequirementUsage#getSatisfyingFeature Satisfying Feature}' reference. + * + * + * @param value the new value of the 'Satisfying Feature' reference. + * @see #getSatisfyingFeature() + * @generated + */ + void setSatisfyingFeature(Feature value); + +} // SatisfyRequirementUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SelectExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SelectExpression.java new file mode 100644 index 000000000..2bfa6fb6e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SelectExpression.java @@ -0,0 +1,41 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Select Expression'. + * + * + * + *

A SelectExpression is an OperatorExpression whose operator is "select", which resolves to the Function ControlFunctions::select from the Kernel Functions Library.

+ * operator = 'select' + * arguments->notEmpty() implies + * result.specializes(arguments->first().result) + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSelectExpression() + * @model + * @generated + */ +public interface SelectExpression extends OperatorExpression { +} // SelectExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SendActionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SendActionUsage.java new file mode 100644 index 000000000..78e41cf49 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SendActionUsage.java @@ -0,0 +1,138 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Send Action Usage'. + * + * + * + *

A SendActionUsage is an ActionUsage that specifies the sending of a payload given by the result of its payloadArgument Expression via a MessageTransfer whose source is given by the result of the senderArgument Expression and whose target is given by the result of the receiverArgument Expression. If no senderArgument is provided, the default is the this context for the action. If no receiverArgument is given, then the receiver is to be determined by, e.g., outgoing Connections from the sender.

+ * + * senderArgument = argument(2) + * payloadArgument = argument(1) + * inputParameters()->size() >= 3 + * receiverArgument = argument(3) + * isSubactionUsage() implies + * specializesFromLibrary('Actions::Action::acceptSubactions') + * specializesFromLibrary('Actions::sendActions') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.SendActionUsage#getPayloadArgument Payload Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.SendActionUsage#getReceiverArgument Receiver Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.SendActionUsage#getSenderArgument Sender Argument}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSendActionUsage() + * @model + * @generated + */ +public interface SendActionUsage extends ActionUsage { + /** + * Returns the value of the 'Payload Argument' reference. + * + * + * + *

An Expression whose result is bound to the payload input parameter of this SendActionUsage.

+ * + * + * @return the value of the 'Payload Argument' reference. + * @see #setPayloadArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSendActionUsage_PayloadArgument() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='sendingActionUsage'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getPayloadArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.SendActionUsage#getPayloadArgument Payload Argument}' reference. + * + * + * @param value the new value of the 'Payload Argument' reference. + * @see #getPayloadArgument() + * @generated + */ + void setPayloadArgument(Expression value); + + /** + * Returns the value of the 'Receiver Argument' reference. + * + * + * + *

An Expression whose result is bound to the receiver input parameter of this SendActionUsage.

+ * + * + * @return the value of the 'Receiver Argument' reference. + * @see #setReceiverArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSendActionUsage_ReceiverArgument() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='sendActionUsage'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getReceiverArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.SendActionUsage#getReceiverArgument Receiver Argument}' reference. + * + * + * @param value the new value of the 'Receiver Argument' reference. + * @see #getReceiverArgument() + * @generated + */ + void setReceiverArgument(Expression value); + + /** + * Returns the value of the 'Sender Argument' reference. + * + * + * + *

An Expression whose result is bound to the sender input parameter of this SendActionUsage.

+ * + * + * @return the value of the 'Sender Argument' reference. + * @see #setSenderArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSendActionUsage_SenderArgument() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='senderActionUsage'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getSenderArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.SendActionUsage#getSenderArgument Sender Argument}' reference. + * + * + * @param value the new value of the 'Sender Argument' reference. + * @see #getSenderArgument() + * @generated + */ + void setSenderArgument(Expression value); + +} // SendActionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Specialization.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Specialization.java new file mode 100644 index 000000000..346476534 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Specialization.java @@ -0,0 +1,134 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Specialization'. + * + * + * + *

Specialization is a Relationship between two Types that requires all instances of the specific type to also be instances of the general Type (i.e., the set of instances of the specific Type is a subset of those of the general Type, which might be the same set).

+ * + * not specific.isConjugated + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Specialization#getGeneral General}
  • + *
  • {@link org.omg.sysml.model.sysml.Specialization#getOwningType Owning Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Specialization#getSpecific Specific}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSpecialization() + * @model + * @generated + */ +public interface Specialization extends Relationship { + /** + * Returns the value of the 'General' reference. + * + * + * + *

A Type with a superset of all instances of the specific Type, which might be the same set.

+ * + * + * @return the value of the 'General' reference. + * @see #setGeneral(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSpecialization_General() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='generalization'" + * annotation="redefines" + * @generated + */ + Type getGeneral(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Specialization#getGeneral General}' reference. + * + * + * @param value the new value of the 'General' reference. + * @see #getGeneral() + * @generated + */ + void setGeneral(Type value); + + /** + * Returns the value of the 'Owning Type' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Type#getOwnedSpecialization Owned Specialization}'. + * + * + * + *

The Type that is the specific Type of this Specialization and owns it as its owningRelatedElement.

+ * + * + * @return the value of the 'Owning Type' reference. + * @see #setOwningType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSpecialization_OwningType() + * @see org.omg.sysml.model.sysml.Type#getOwnedSpecialization + * @model opposite="ownedSpecialization" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getOwningType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Specialization#getOwningType Owning Type}' reference. + * + * + * @param value the new value of the 'Owning Type' reference. + * @see #getOwningType() + * @generated + */ + void setOwningType(Type value); + + /** + * Returns the value of the 'Specific' reference. + * + * + * + *

A Type with a subset of all instances of the general Type, which might be the same set.

+ * + * + * @return the value of the 'Specific' reference. + * @see #setSpecific(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSpecialization_Specific() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='specialization'" + * annotation="redefines" + * @generated + */ + Type getSpecific(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Specialization#getSpecific Specific}' reference. + * + * + * @param value the new value of the 'Specific' reference. + * @see #getSpecific() + * @generated + */ + void setSpecific(Type value); + +} // Specialization diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StakeholderMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StakeholderMembership.java new file mode 100644 index 000000000..407cdafdf --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StakeholderMembership.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Stakeholder Membership'. + * + * + * + *

A StakeholderMembership is a ParameterMembership that identifies a PartUsage as a stakeholderParameter of a RequirementDefinition or RequirementUsage, which specifies a role played by an entity with concerns framed by the owningType.

+ * owningType.oclIsKindOf(RequirementUsage) or + * owningType.oclIsKindOf(RequirementDefinition) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.StakeholderMembership#getOwnedStakeholderParameter Owned Stakeholder Parameter}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getStakeholderMembership() + * @model + * @generated + */ +public interface StakeholderMembership extends ParameterMembership { + /** + * Returns the value of the 'Owned Stakeholder Parameter' reference. + * + * + * + *

The PartUsage specifying the stakeholder.

+ * + * @return the value of the 'Owned Stakeholder Parameter' reference. + * @see #setOwnedStakeholderParameter(PartUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStakeholderMembership_OwnedStakeholderParameter() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningStakeholderMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + PartUsage getOwnedStakeholderParameter(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StakeholderMembership#getOwnedStakeholderParameter Owned Stakeholder Parameter}' reference. + * + * + * @param value the new value of the 'Owned Stakeholder Parameter' reference. + * @see #getOwnedStakeholderParameter() + * @generated + */ + void setOwnedStakeholderParameter(PartUsage value); + +} // StakeholderMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateDefinition.java new file mode 100644 index 000000000..18be9890e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateDefinition.java @@ -0,0 +1,209 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'State Definition'. + * + * + * + *

A StateDefinition is the Definition of the Behavior of a system or part of a system in a certain state condition.

+ * + *

A StateDefinition may be related to up to three of its ownedFeatures by StateBehaviorMembership Relationships, all of different kinds, corresponding to the entry, do and exit actions of the StateDefinition.

+ * specializesFromLibrary('States::StateAction') + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * isUnique(kind) + * state = action->selectByKind(StateUsage) + * doAction = + * let doMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::do) in + * if doMemberships->isEmpty() then null + * else doMemberships->at(1) + * endif + * entryAction = + * let entryMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::entry) in + * if entryMemberships->isEmpty() then null + * else entryMemberships->at(1) + * endif + * isParallel implies + * ownedAction.incomingTransition->isEmpty() and + * ownedAction.outgoingTransition->isEmpty() + * exitAction = + * let exitMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::exit) in + * if exitMemberships->isEmpty() then null + * else exitMemberships->at(1) + * endif + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.StateDefinition#isIsParallel Is Parallel}
  • + *
  • {@link org.omg.sysml.model.sysml.StateDefinition#getDoAction Do Action}
  • + *
  • {@link org.omg.sysml.model.sysml.StateDefinition#getEntryAction Entry Action}
  • + *
  • {@link org.omg.sysml.model.sysml.StateDefinition#getExitAction Exit Action}
  • + *
  • {@link org.omg.sysml.model.sysml.StateDefinition#getState State}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateDefinition() + * @model + * @generated + */ +public interface StateDefinition extends ActionDefinition { + /** + * Returns the value of the 'Is Parallel' attribute. + * The default value is "false". + * + * + * + *

Whether the ownedStates of this StateDefinition are to all be performed in parallel. If true, none of the ownedActions (which includes ownedStates) may have any incoming or outgoing Transitions. If false, only one ownedState may be performed at a time.

+ * + * + * @return the value of the 'Is Parallel' attribute. + * @see #setIsParallel(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateDefinition_IsParallel() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsParallel(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StateDefinition#isIsParallel Is Parallel}' attribute. + * + * + * @param value the new value of the 'Is Parallel' attribute. + * @see #isIsParallel() + * @generated + */ + void setIsParallel(boolean value); + + /** + * Returns the value of the 'Do Action' reference. + * + * + * + *

The ActionUsage of this StateDefinition to be performed while in the state defined by the StateDefinition. It is the owned ActionUsage related to the StateDefinition by a StateSubactionMembership with kind = do.

+ * + * @return the value of the 'Do Action' reference. + * @see #setDoAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateDefinition_DoAction() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='activeStateDefintion'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getDoAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StateDefinition#getDoAction Do Action}' reference. + * + * + * @param value the new value of the 'Do Action' reference. + * @see #getDoAction() + * @generated + */ + void setDoAction(ActionUsage value); + + /** + * Returns the value of the 'Entry Action' reference. + * + * + * + *

The ActionUsage of this StateDefinition to be performed on entry to the state defined by the StateDefinition. It is the owned ActionUsage related to the StateDefinition by a StateSubactionMembership with kind = entry.

+ * + * @return the value of the 'Entry Action' reference. + * @see #setEntryAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateDefinition_EntryAction() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='enteredStateDefinition'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getEntryAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StateDefinition#getEntryAction Entry Action}' reference. + * + * + * @param value the new value of the 'Entry Action' reference. + * @see #getEntryAction() + * @generated + */ + void setEntryAction(ActionUsage value); + + /** + * Returns the value of the 'Exit Action' reference. + * + * + * + *

The ActionUsage of this StateDefinition to be performed on exit to the state defined by the StateDefinition. It is the owned ActionUsage related to the StateDefinition by a StateSubactionMembership with kind = exit.

+ * + * @return the value of the 'Exit Action' reference. + * @see #setExitAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateDefinition_ExitAction() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='exitedStateDefinition'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getExitAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StateDefinition#getExitAction Exit Action}' reference. + * + * + * @param value the new value of the 'Exit Action' reference. + * @see #getExitAction() + * @generated + */ + void setExitAction(ActionUsage value); + + /** + * Returns the value of the 'State' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.StateUsage}. + * + * + * + *

The StateUsages, which are actions in the StateDefinition, that specify the discrete states in the behavior defined by the StateDefinition.

+ * + * @return the value of the 'State' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateDefinition_State() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringStateDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getState(); + +} // StateDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateSubactionKind.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateSubactionKind.java new file mode 100644 index 000000000..4d33bbcd6 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateSubactionKind.java @@ -0,0 +1,270 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'State Subaction Kind', + * and utility methods for working with them. + * + * + *

A StateSubactionKind indicates whether the action of a StateSubactionMembership is an entry, do or exit action.

+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateSubactionKind() + * @model + * @generated + */ +public enum StateSubactionKind implements Enumerator { + /** + * The 'Entry' literal object. + * + * + * + *

Indicates that the action of a StateSubactionMembership is an entryAction.

+ * + * @see #ENTRY_VALUE + * @generated + * @ordered + */ + ENTRY(0, "entry", "entry"), + + /** + * The 'Do' literal object. + * + * + * + *

Indicates that the action of a StateSubactionMembership is a doAction.

+ * + * @see #DO_VALUE + * @generated + * @ordered + */ + DO(1, "do", "do"), + + /** + * The 'Exit' literal object. + * + * + * + *

Indicates that the action of a StateSubactionMembership is an exitAction.

+ * + * @see #EXIT_VALUE + * @generated + * @ordered + */ + EXIT(2, "exit", "exit"); + + /** + * The 'Entry' literal value. + * + * + * + *

Indicates that the action of a StateSubactionMembership is an entryAction.

+ * + * @see #ENTRY + * @model name="entry" + * @generated + * @ordered + */ + public static final int ENTRY_VALUE = 0; + + /** + * The 'Do' literal value. + * + * + * + *

Indicates that the action of a StateSubactionMembership is a doAction.

+ * + * @see #DO + * @model name="do" + * @generated + * @ordered + */ + public static final int DO_VALUE = 1; + + /** + * The 'Exit' literal value. + * + * + * + *

Indicates that the action of a StateSubactionMembership is an exitAction.

+ * + * @see #EXIT + * @model name="exit" + * @generated + * @ordered + */ + public static final int EXIT_VALUE = 2; + + /** + * An array of all the 'State Subaction Kind' enumerators. + * + * + * @generated + */ + private static final StateSubactionKind[] VALUES_ARRAY = + new StateSubactionKind[] { + ENTRY, + DO, + EXIT, + }; + + /** + * A public read-only list of all the 'State Subaction Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'State Subaction Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static StateSubactionKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + StateSubactionKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'State Subaction Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static StateSubactionKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + StateSubactionKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'State Subaction Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static StateSubactionKind get(int value) { + switch (value) { + case ENTRY_VALUE: return ENTRY; + case DO_VALUE: return DO; + case EXIT_VALUE: return EXIT; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private StateSubactionKind(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //StateSubactionKind diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateSubactionMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateSubactionMembership.java new file mode 100644 index 000000000..03de9860f --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateSubactionMembership.java @@ -0,0 +1,103 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'State Subaction Membership'. + * + * + * + *

A StateSubactionMembership is a FeatureMembership for an entry, do or exit ActionUsage of a StateDefinition or StateUsage.

+ * owningType.oclIsKindOf(StateDefinition) or + * owningType.oclIsKindOf(StateUsage) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.StateSubactionMembership#getKind Kind}
  • + *
  • {@link org.omg.sysml.model.sysml.StateSubactionMembership#getAction Action}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateSubactionMembership() + * @model + * @generated + */ +public interface StateSubactionMembership extends FeatureMembership { + /** + * Returns the value of the 'Kind' attribute. + * The literals are from the enumeration {@link org.omg.sysml.model.sysml.StateSubactionKind}. + * + * + * + *

Whether this StateSubactionMembership is for an entry, do or exit ActionUsage.

+ * + * @return the value of the 'Kind' attribute. + * @see org.omg.sysml.model.sysml.StateSubactionKind + * @see #setKind(StateSubactionKind) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateSubactionMembership_Kind() + * @model required="true" ordered="false" + * @generated + */ + StateSubactionKind getKind(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StateSubactionMembership#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.omg.sysml.model.sysml.StateSubactionKind + * @see #getKind() + * @generated + */ + void setKind(StateSubactionKind value); + + /** + * Returns the value of the 'Action' reference. + * + * + * + *

The ActionUsage that is the ownedMemberFeature of this StateSubactionMembership.

+ * + * @return the value of the 'Action' reference. + * @see #setAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateSubactionMembership_Action() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='stateSubactionMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StateSubactionMembership#getAction Action}' reference. + * + * + * @param value the new value of the 'Action' reference. + * @see #getAction() + * @generated + */ + void setAction(ActionUsage value); + +} // StateSubactionMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateUsage.java new file mode 100644 index 000000000..d935f7b89 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/StateUsage.java @@ -0,0 +1,235 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'State Usage'. + * + * + * + *

A StateUsage is an ActionUsage that is nominally the Usage of a StateDefinition. However, other kinds of kernel Behaviors are also allowed as types, to permit use of Behaviors + * + *

A StateUsage may be related to up to three of its ownedFeatures by StateSubactionMembership Relationships, all of different kinds, corresponding to the entry, do and exit actions of the StateUsage.

+ * + * doAction = + * let doMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::do) in + * if doMemberships->isEmpty() then null + * else doMemberships->at(1) + * endif + * entryAction = + * let entryMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::entry) in + * if entryMemberships->isEmpty() then null + * else entryMemberships->at(1) + * endif + * isParallel implies + * nestedAction.incomingTransition->isEmpty() and + * nestedAction.outgoingTransition->isEmpty() + * isSubstateUsage(false) implies + * specializesFromLibrary('States::StateAction::exclusiveStates') + * exitAction = + * let exitMemberships : Sequence(StateSubactionMembership) = + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * select(kind = StateSubactionKind::exit) in + * if exitMemberships->isEmpty() then null + * else exitMemberships->at(1) + * endif + * specializesFromLibrary('States::stateActions') + * ownedMembership-> + * selectByKind(StateSubactionMembership)-> + * isUnique(kind) + * isSubstateUsage(true) implies + * specializesFromLibrary('States::StateAction::substates') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(PartDefinition) or + * owningType.oclIsKindOf(PartUsage)) implies + * specializesFromLibrary('Parts::Part::ownedStates') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.StateUsage#isIsParallel Is Parallel}
  • + *
  • {@link org.omg.sysml.model.sysml.StateUsage#getDoAction Do Action}
  • + *
  • {@link org.omg.sysml.model.sysml.StateUsage#getEntryAction Entry Action}
  • + *
  • {@link org.omg.sysml.model.sysml.StateUsage#getExitAction Exit Action}
  • + *
  • {@link org.omg.sysml.model.sysml.StateUsage#getStateDefinition State Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateUsage() + * @model + * @generated + */ +public interface StateUsage extends ActionUsage { + /** + * Returns the value of the 'Is Parallel' attribute. + * The default value is "false". + * + * + * + *

Whether the nestedStates of this StateUsage are to all be performed in parallel. If true, none of the nestedActions (which include nestedStates) may have any incoming or outgoing Transitions. If false, only one nestedState may be performed at a time.

+ * + * + * @return the value of the 'Is Parallel' attribute. + * @see #setIsParallel(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateUsage_IsParallel() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsParallel(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StateUsage#isIsParallel Is Parallel}' attribute. + * + * + * @param value the new value of the 'Is Parallel' attribute. + * @see #isIsParallel() + * @generated + */ + void setIsParallel(boolean value); + + /** + * Returns the value of the 'Do Action' reference. + * + * + * + *

The ActionUsage of this StateUsage to be performed while in the state defined by the StateDefinition. It is the owned ActionUsage related to the StateUsage by a StateSubactionMembership with kind = do.

+ * + * @return the value of the 'Do Action' reference. + * @see #setDoAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateUsage_DoAction() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='activeState'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getDoAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StateUsage#getDoAction Do Action}' reference. + * + * + * @param value the new value of the 'Do Action' reference. + * @see #getDoAction() + * @generated + */ + void setDoAction(ActionUsage value); + + /** + * Returns the value of the 'Entry Action' reference. + * + * + * + *

The ActionUsage of this StateUsage to be performed on entry to the state defined by the StateDefinition. It is the owned ActionUsage related to the StateUsage by a StateSubactionMembership with kind = entry.

+ * + * @return the value of the 'Entry Action' reference. + * @see #setEntryAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateUsage_EntryAction() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='enteredState'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getEntryAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StateUsage#getEntryAction Entry Action}' reference. + * + * + * @param value the new value of the 'Entry Action' reference. + * @see #getEntryAction() + * @generated + */ + void setEntryAction(ActionUsage value); + + /** + * Returns the value of the 'Exit Action' reference. + * + * + * + *

The ActionUsage of this StateUsage to be performed on exit to the state defined by the StateDefinition. It is the owned ActionUsage related to the StateUsage by a StateSubactionMembership with kind = exit.

+ * + * @return the value of the 'Exit Action' reference. + * @see #setExitAction(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateUsage_ExitAction() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='exitedState'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getExitAction(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.StateUsage#getExitAction Exit Action}' reference. + * + * + * @param value the new value of the 'Exit Action' reference. + * @see #getExitAction() + * @generated + */ + void setExitAction(ActionUsage value); + + /** + * Returns the value of the 'State Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Behavior}. + * + * + * + *

The Behaviors that are the types of this StateUsage. Nominally, these would be StateDefinitions, but kernel Behaviors are also allowed, to permit use of Behaviors from the Kernel Model Libraries.

+ * + * @return the value of the 'State Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getStateUsage_StateDefinition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedState'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getStateDefinition(); + + /** + * + * + * + *

Check if this StateUsage is composite and has an owningType that is a StateDefinition or StateUsage with the given value of isParallel, but is not an entryAction, doAction, or exitAction. If so, then it represents a StateAction that is a substate or exclusiveState (for isParallel = false) of another StateAction.

+ * isComposite and owningType <> null and + * (owningType.oclIsKindOf(StateDefinition) and + * owningType.oclAsType(StateDefinition).isParallel = isParallel or + * owningType.oclIsKindOf(StateUsage) and + * owningType.oclAsType(StateUsage).isParallel = isParallel) and + * not owningFeatureMembership.oclIsKindOf(StateSubactionMembership) + * + * @model required="true" ordered="false" isParallelRequired="true" isParallelOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isSubstateUsage(boolean isParallel); + +} // StateUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Step.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Step.java new file mode 100644 index 000000000..9e23b9c48 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Step.java @@ -0,0 +1,102 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Step'. + * + * + * + *

A Step is a Feature that is typed by one or more Behaviors. Steps may be used by one Behavior to coordinate the performance of other Behaviors, supporting a steady refinement of behavioral descriptions. Steps can be ordered in time and can be connected using Flows to specify things flowing between their parameters.

+ * + * specializesFromLibrary('Performances::performances') + * owningType <> null and + * (owningType.oclIsKindOf(Behavior) or + * owningType.oclIsKindOf(Step)) implies + * specializesFromLibrary('Performances::Performance::enclosedPerformance') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(Structure) or + * owningType.oclIsKindOf(Feature) and + * owningType.oclAsType(Feature).type-> + * exists(oclIsKindOf(Structure)) implies + * specializesFromLibrary('Objects::Object::ownedPerformance') + * owningType <> null and + * (owningType.oclIsKindOf(Behavior) or + * owningType.oclIsKindOf(Step)) and + * self.isComposite implies + * specializesFromLibrary('Performances::Performance::subperformance') + * behavior = type->selectByKind(Behavior) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Step#getBehavior Behavior}
  • + *
  • {@link org.omg.sysml.model.sysml.Step#getParameter Parameter}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getStep() + * @model + * @generated + */ +public interface Step extends Feature { + /** + * Returns the value of the 'Behavior' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Behavior}. + * + * + * + *

The Behaviors that type this Step.

+ * + * + * @return the value of the 'Behavior' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getStep_Behavior() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typedStep'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getBehavior(); + + /** + * Returns the value of the 'Parameter' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

The parameters of this Step, which are defined as its directedFeatures, whose values are passed into and/or out of a performance of the Step.

+ * + * + * @return the value of the 'Parameter' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getStep_Parameter() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='parameteredStep'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getParameter(); + +} // Step diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Structure.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Structure.java new file mode 100644 index 000000000..f1abd21e0 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Structure.java @@ -0,0 +1,41 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Structure'. + * + * + * + *

A Structure is a Class of objects in the modeled universe that are primarily structural in nature. While such an object is not itself behavioral, it may be involved in and acted on by Behaviors, and it may be the performer of some of them.

+ * + * specializesFromLibrary('Objects::Object') + * ownedSpecialization.general->forAll(not oclIsKindOf(Behavior)) + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getStructure() + * @model + * @generated + */ +public interface Structure extends org.omg.sysml.model.sysml.Class { +} // Structure diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Subclassification.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Subclassification.java new file mode 100644 index 000000000..7b2e1f48d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Subclassification.java @@ -0,0 +1,133 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Subclassification'. + * + * + * + *

Subclassification is Specialization in which both the specific and general Types are Classifier. This means all instances of the specific Classifier are also instances of the general Classifier.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Subclassification#getOwningClassifier Owning Classifier}
  • + *
  • {@link org.omg.sysml.model.sysml.Subclassification#getSubclassifier Subclassifier}
  • + *
  • {@link org.omg.sysml.model.sysml.Subclassification#getSuperclassifier Superclassifier}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSubclassification() + * @model + * @generated + */ +public interface Subclassification extends Specialization { + /** + * Returns the value of the 'Owning Classifier' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Classifier#getOwnedSubclassification Owned Subclassification}'. + * + * + * + *

The Classifier that owns this Subclassification relationship, which must also be its subclassifier.

+ * + * + * @return the value of the 'Owning Classifier' reference. + * @see #setOwningClassifier(Classifier) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSubclassification_OwningClassifier() + * @see org.omg.sysml.model.sysml.Classifier#getOwnedSubclassification + * @model opposite="ownedSubclassification" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Classifier getOwningClassifier(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Subclassification#getOwningClassifier Owning Classifier}' reference. + * + * + * @param value the new value of the 'Owning Classifier' reference. + * @see #getOwningClassifier() + * @generated + */ + void setOwningClassifier(Classifier value); + + /** + * Returns the value of the 'Subclassifier' reference. + * + * + * + *

The more specific Classifier in this Subclassification.

+ * + * + * @return the value of the 'Subclassifier' reference. + * @see #setSubclassifier(Classifier) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSubclassification_Subclassifier() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='subclassification'" + * annotation="redefines" + * @generated + */ + Classifier getSubclassifier(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Subclassification#getSubclassifier Subclassifier}' reference. + * + * + * @param value the new value of the 'Subclassifier' reference. + * @see #getSubclassifier() + * @generated + */ + void setSubclassifier(Classifier value); + + /** + * Returns the value of the 'Superclassifier' reference. + * + * + * + *

The more general Classifier in this Subclassification.

+ * + * + * @return the value of the 'Superclassifier' reference. + * @see #setSuperclassifier(Classifier) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSubclassification_Superclassifier() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='superclassification'" + * annotation="redefines" + * @generated + */ + Classifier getSuperclassifier(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Subclassification#getSuperclassifier Superclassifier}' reference. + * + * + * @param value the new value of the 'Superclassifier' reference. + * @see #getSuperclassifier() + * @generated + */ + void setSuperclassifier(Classifier value); + +} // Subclassification diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SubjectMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SubjectMembership.java new file mode 100644 index 000000000..30e5efb4c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SubjectMembership.java @@ -0,0 +1,77 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Subject Membership'. + * + * + * + *

A SubjectMembership is a ParameterMembership that indicates that its ownedSubjectParameter is the subject of its owningType. The owningType of a SubjectMembership must be a RequirementDefinition, RequirementUsage, CaseDefinition, or CaseUsage.

+ * owningType.oclIsType(RequirementDefinition) or + * owningType.oclIsType(RequiremenCaseRequirementDefinition) or + * owningType.oclIsType(CaseDefinition) or + * owningType.oclIsType(CaseUsage) + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.SubjectMembership#getOwnedSubjectParameter Owned Subject Parameter}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSubjectMembership() + * @model + * @generated + */ +public interface SubjectMembership extends ParameterMembership { + /** + * Returns the value of the 'Owned Subject Parameter' reference. + * + * + * + *

The UsageownedMemberParameter of this SubjectMembership.

+ * + * @return the value of the 'Owned Subject Parameter' reference. + * @see #setOwnedSubjectParameter(Usage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSubjectMembership_OwnedSubjectParameter() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningSubjectMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Usage getOwnedSubjectParameter(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.SubjectMembership#getOwnedSubjectParameter Owned Subject Parameter}' reference. + * + * + * @param value the new value of the 'Owned Subject Parameter' reference. + * @see #getOwnedSubjectParameter() + * @generated + */ + void setOwnedSubjectParameter(Usage value); + +} // SubjectMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Subsetting.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Subsetting.java new file mode 100644 index 000000000..fe0e11d35 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Subsetting.java @@ -0,0 +1,140 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Subsetting'. + * + * + * + *

Subsetting is Specialization in which the specific and general Types are Features. This means all values of the subsettingFeature (on instances of its domain, i.e., the intersection of its featuringTypes) are values of the subsettedFeature on instances of its domain. To support this the domain of the subsettingFeature must be the same or specialize (at least indirectly) the domain of the subsettedFeature (via Specialization), and the co-domain (intersection of the types) of the subsettingFeature must specialize the co-domain of the subsettedFeature.

+ * + * subsettingFeature.canAccess(subsettedFeature) + * subsettedFeature.isUnique implies subsettingFeature.isUnique + * subsettedFeature.isConstant and subsettingFeature.isVariable implies + * subsettingFeature.isConstant + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Subsetting#getOwningFeature Owning Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Subsetting#getSubsettedFeature Subsetted Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Subsetting#getSubsettingFeature Subsetting Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSubsetting() + * @model + * @generated + */ +public interface Subsetting extends Specialization { + /** + * Returns the value of the 'Owning Feature' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Feature#getOwnedSubsetting Owned Subsetting}'. + * + * + * + *

A subsettingFeature that is also the owningRelatedElement of this Subsetting.

+ * + * + * + * @return the value of the 'Owning Feature' reference. + * @see #setOwningFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSubsetting_OwningFeature() + * @see org.omg.sysml.model.sysml.Feature#getOwnedSubsetting + * @model opposite="ownedSubsetting" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getOwningFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Subsetting#getOwningFeature Owning Feature}' reference. + * + * + * @param value the new value of the 'Owning Feature' reference. + * @see #getOwningFeature() + * @generated + */ + void setOwningFeature(Feature value); + + /** + * Returns the value of the 'Subsetted Feature' reference. + * + * + * + *

The Feature that is subsetted by the subsettingFeature of this Subsetting.

+ * + * + * @return the value of the 'Subsetted Feature' reference. + * @see #setSubsettedFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSubsetting_SubsettedFeature() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='supersetting'" + * annotation="redefines" + * @generated + */ + Feature getSubsettedFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Subsetting#getSubsettedFeature Subsetted Feature}' reference. + * + * + * @param value the new value of the 'Subsetted Feature' reference. + * @see #getSubsettedFeature() + * @generated + */ + void setSubsettedFeature(Feature value); + + /** + * Returns the value of the 'Subsetting Feature' reference. + * + * + * + *

The Feature that is a subset of the subsettedFeature of this Subsetting.

+ * + * + * @return the value of the 'Subsetting Feature' reference. + * @see #setSubsettingFeature(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getSubsetting_SubsettingFeature() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='subsetting'" + * annotation="redefines" + * @generated + */ + Feature getSubsettingFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Subsetting#getSubsettingFeature Subsetting Feature}' reference. + * + * + * @param value the new value of the 'Subsetting Feature' reference. + * @see #getSubsettingFeature() + * @generated + */ + void setSubsettingFeature(Feature value); + +} // Subsetting diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Succession.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Succession.java new file mode 100644 index 000000000..9497e7390 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Succession.java @@ -0,0 +1,40 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Succession'. + * + * + * + *

A Succession is a binary Connector that requires its relatedFeatures to happen separately in time.

+ * + * specializesFromLibrary('Occurrences::happensBeforeLinks') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSuccession() + * @model + * @generated + */ +public interface Succession extends Connector { +} // Succession diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SuccessionAsUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SuccessionAsUsage.java new file mode 100644 index 000000000..6e3a03c49 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SuccessionAsUsage.java @@ -0,0 +1,38 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Succession As Usage'. + * + * + * + *

A SuccessionAsUsage is both a ConnectorAsUsage and a Succession.

+ * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSuccessionAsUsage() + * @model + * @generated + */ +public interface SuccessionAsUsage extends ConnectorAsUsage, Succession { +} // SuccessionAsUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SuccessionFlow.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SuccessionFlow.java new file mode 100644 index 000000000..1f63eb6e2 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SuccessionFlow.java @@ -0,0 +1,39 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Succession Flow'. + * + * + * + *

A SuccessionFlow is a Flow that also provides temporal ordering. It classifies Transfers that cannot start until the source Occurrence has completed and that must complete before the target Occurrence can start.

+ * specializesFromLibrary('Transfers::flowTransfersBefore') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSuccessionFlow() + * @model + * @generated + */ +public interface SuccessionFlow extends Flow, Succession { +} // SuccessionFlow diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SuccessionFlowUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SuccessionFlowUsage.java new file mode 100644 index 000000000..395b0c764 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SuccessionFlowUsage.java @@ -0,0 +1,39 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Succession Flow Usage'. + * + * + * + *

A SuccessionFlowUsage is a FlowUsage that is also a KerML SuccessionFlow.

+ * specializesFromLibrary('Flows::successionFlows') + * + * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getSuccessionFlowUsage() + * @model + * @generated + */ +public interface SuccessionFlowUsage extends FlowUsage, SuccessionFlow { +} // SuccessionFlowUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SysMLFactory.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SysMLFactory.java new file mode 100644 index 000000000..94bd4a5b0 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SysMLFactory.java @@ -0,0 +1,1553 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see org.omg.sysml.model.sysml.SysMLPackage + * @generated + */ +public interface SysMLFactory extends EFactory { + /** + * The singleton instance of the factory. + * + * + * @generated + */ + SysMLFactory eINSTANCE = org.omg.sysml.model.sysml.impl.SysMLFactoryImpl.init(); + + /** + * Returns a new object of class 'Accept Action Usage'. + * + * + * @return a new object of class 'Accept Action Usage'. + * @generated + */ + AcceptActionUsage createAcceptActionUsage(); + + /** + * Returns a new object of class 'Action Definition'. + * + * + * @return a new object of class 'Action Definition'. + * @generated + */ + ActionDefinition createActionDefinition(); + + /** + * Returns a new object of class 'Action Usage'. + * + * + * @return a new object of class 'Action Usage'. + * @generated + */ + ActionUsage createActionUsage(); + + /** + * Returns a new object of class 'Actor Membership'. + * + * + * @return a new object of class 'Actor Membership'. + * @generated + */ + ActorMembership createActorMembership(); + + /** + * Returns a new object of class 'Allocation Definition'. + * + * + * @return a new object of class 'Allocation Definition'. + * @generated + */ + AllocationDefinition createAllocationDefinition(); + + /** + * Returns a new object of class 'Allocation Usage'. + * + * + * @return a new object of class 'Allocation Usage'. + * @generated + */ + AllocationUsage createAllocationUsage(); + + /** + * Returns a new object of class 'Analysis Case Definition'. + * + * + * @return a new object of class 'Analysis Case Definition'. + * @generated + */ + AnalysisCaseDefinition createAnalysisCaseDefinition(); + + /** + * Returns a new object of class 'Analysis Case Usage'. + * + * + * @return a new object of class 'Analysis Case Usage'. + * @generated + */ + AnalysisCaseUsage createAnalysisCaseUsage(); + + /** + * Returns a new object of class 'Annotating Element'. + * + * + * @return a new object of class 'Annotating Element'. + * @generated + */ + AnnotatingElement createAnnotatingElement(); + + /** + * Returns a new object of class 'Annotation'. + * + * + * @return a new object of class 'Annotation'. + * @generated + */ + Annotation createAnnotation(); + + /** + * Returns a new object of class 'Assert Constraint Usage'. + * + * + * @return a new object of class 'Assert Constraint Usage'. + * @generated + */ + AssertConstraintUsage createAssertConstraintUsage(); + + /** + * Returns a new object of class 'Assignment Action Usage'. + * + * + * @return a new object of class 'Assignment Action Usage'. + * @generated + */ + AssignmentActionUsage createAssignmentActionUsage(); + + /** + * Returns a new object of class 'Association'. + * + * + * @return a new object of class 'Association'. + * @generated + */ + Association createAssociation(); + + /** + * Returns a new object of class 'Association Structure'. + * + * + * @return a new object of class 'Association Structure'. + * @generated + */ + AssociationStructure createAssociationStructure(); + + /** + * Returns a new object of class 'Attribute Definition'. + * + * + * @return a new object of class 'Attribute Definition'. + * @generated + */ + AttributeDefinition createAttributeDefinition(); + + /** + * Returns a new object of class 'Attribute Usage'. + * + * + * @return a new object of class 'Attribute Usage'. + * @generated + */ + AttributeUsage createAttributeUsage(); + + /** + * Returns a new object of class 'Behavior'. + * + * + * @return a new object of class 'Behavior'. + * @generated + */ + Behavior createBehavior(); + + /** + * Returns a new object of class 'Binding Connector'. + * + * + * @return a new object of class 'Binding Connector'. + * @generated + */ + BindingConnector createBindingConnector(); + + /** + * Returns a new object of class 'Binding Connector As Usage'. + * + * + * @return a new object of class 'Binding Connector As Usage'. + * @generated + */ + BindingConnectorAsUsage createBindingConnectorAsUsage(); + + /** + * Returns a new object of class 'Boolean Expression'. + * + * + * @return a new object of class 'Boolean Expression'. + * @generated + */ + BooleanExpression createBooleanExpression(); + + /** + * Returns a new object of class 'Calculation Definition'. + * + * + * @return a new object of class 'Calculation Definition'. + * @generated + */ + CalculationDefinition createCalculationDefinition(); + + /** + * Returns a new object of class 'Calculation Usage'. + * + * + * @return a new object of class 'Calculation Usage'. + * @generated + */ + CalculationUsage createCalculationUsage(); + + /** + * Returns a new object of class 'Case Definition'. + * + * + * @return a new object of class 'Case Definition'. + * @generated + */ + CaseDefinition createCaseDefinition(); + + /** + * Returns a new object of class 'Case Usage'. + * + * + * @return a new object of class 'Case Usage'. + * @generated + */ + CaseUsage createCaseUsage(); + + /** + * Returns a new object of class 'Class'. + * + * + * @return a new object of class 'Class'. + * @generated + */ + Class createClass(); + + /** + * Returns a new object of class 'Classifier'. + * + * + * @return a new object of class 'Classifier'. + * @generated + */ + Classifier createClassifier(); + + /** + * Returns a new object of class 'Collect Expression'. + * + * + * @return a new object of class 'Collect Expression'. + * @generated + */ + CollectExpression createCollectExpression(); + + /** + * Returns a new object of class 'Comment'. + * + * + * @return a new object of class 'Comment'. + * @generated + */ + Comment createComment(); + + /** + * Returns a new object of class 'Concern Definition'. + * + * + * @return a new object of class 'Concern Definition'. + * @generated + */ + ConcernDefinition createConcernDefinition(); + + /** + * Returns a new object of class 'Concern Usage'. + * + * + * @return a new object of class 'Concern Usage'. + * @generated + */ + ConcernUsage createConcernUsage(); + + /** + * Returns a new object of class 'Conjugated Port Definition'. + * + * + * @return a new object of class 'Conjugated Port Definition'. + * @generated + */ + ConjugatedPortDefinition createConjugatedPortDefinition(); + + /** + * Returns a new object of class 'Conjugated Port Typing'. + * + * + * @return a new object of class 'Conjugated Port Typing'. + * @generated + */ + ConjugatedPortTyping createConjugatedPortTyping(); + + /** + * Returns a new object of class 'Conjugation'. + * + * + * @return a new object of class 'Conjugation'. + * @generated + */ + Conjugation createConjugation(); + + /** + * Returns a new object of class 'Connection Definition'. + * + * + * @return a new object of class 'Connection Definition'. + * @generated + */ + ConnectionDefinition createConnectionDefinition(); + + /** + * Returns a new object of class 'Connection Usage'. + * + * + * @return a new object of class 'Connection Usage'. + * @generated + */ + ConnectionUsage createConnectionUsage(); + + /** + * Returns a new object of class 'Connector'. + * + * + * @return a new object of class 'Connector'. + * @generated + */ + Connector createConnector(); + + /** + * Returns a new object of class 'Constraint Definition'. + * + * + * @return a new object of class 'Constraint Definition'. + * @generated + */ + ConstraintDefinition createConstraintDefinition(); + + /** + * Returns a new object of class 'Constraint Usage'. + * + * + * @return a new object of class 'Constraint Usage'. + * @generated + */ + ConstraintUsage createConstraintUsage(); + + /** + * Returns a new object of class 'Constructor Expression'. + * + * + * @return a new object of class 'Constructor Expression'. + * @generated + */ + ConstructorExpression createConstructorExpression(); + + /** + * Returns a new object of class 'Cross Subsetting'. + * + * + * @return a new object of class 'Cross Subsetting'. + * @generated + */ + CrossSubsetting createCrossSubsetting(); + + /** + * Returns a new object of class 'Data Type'. + * + * + * @return a new object of class 'Data Type'. + * @generated + */ + DataType createDataType(); + + /** + * Returns a new object of class 'Decision Node'. + * + * + * @return a new object of class 'Decision Node'. + * @generated + */ + DecisionNode createDecisionNode(); + + /** + * Returns a new object of class 'Definition'. + * + * + * @return a new object of class 'Definition'. + * @generated + */ + Definition createDefinition(); + + /** + * Returns a new object of class 'Dependency'. + * + * + * @return a new object of class 'Dependency'. + * @generated + */ + Dependency createDependency(); + + /** + * Returns a new object of class 'Differencing'. + * + * + * @return a new object of class 'Differencing'. + * @generated + */ + Differencing createDifferencing(); + + /** + * Returns a new object of class 'Disjoining'. + * + * + * @return a new object of class 'Disjoining'. + * @generated + */ + Disjoining createDisjoining(); + + /** + * Returns a new object of class 'Documentation'. + * + * + * @return a new object of class 'Documentation'. + * @generated + */ + Documentation createDocumentation(); + + /** + * Returns a new object of class 'Element Filter Membership'. + * + * + * @return a new object of class 'Element Filter Membership'. + * @generated + */ + ElementFilterMembership createElementFilterMembership(); + + /** + * Returns a new object of class 'End Feature Membership'. + * + * + * @return a new object of class 'End Feature Membership'. + * @generated + */ + EndFeatureMembership createEndFeatureMembership(); + + /** + * Returns a new object of class 'Enumeration Definition'. + * + * + * @return a new object of class 'Enumeration Definition'. + * @generated + */ + EnumerationDefinition createEnumerationDefinition(); + + /** + * Returns a new object of class 'Enumeration Usage'. + * + * + * @return a new object of class 'Enumeration Usage'. + * @generated + */ + EnumerationUsage createEnumerationUsage(); + + /** + * Returns a new object of class 'Event Occurrence Usage'. + * + * + * @return a new object of class 'Event Occurrence Usage'. + * @generated + */ + EventOccurrenceUsage createEventOccurrenceUsage(); + + /** + * Returns a new object of class 'Exhibit State Usage'. + * + * + * @return a new object of class 'Exhibit State Usage'. + * @generated + */ + ExhibitStateUsage createExhibitStateUsage(); + + /** + * Returns a new object of class 'Expression'. + * + * + * @return a new object of class 'Expression'. + * @generated + */ + Expression createExpression(); + + /** + * Returns a new object of class 'Feature'. + * + * + * @return a new object of class 'Feature'. + * @generated + */ + Feature createFeature(); + + /** + * Returns a new object of class 'Feature Chain Expression'. + * + * + * @return a new object of class 'Feature Chain Expression'. + * @generated + */ + FeatureChainExpression createFeatureChainExpression(); + + /** + * Returns a new object of class 'Feature Chaining'. + * + * + * @return a new object of class 'Feature Chaining'. + * @generated + */ + FeatureChaining createFeatureChaining(); + + /** + * Returns a new object of class 'Feature Inverting'. + * + * + * @return a new object of class 'Feature Inverting'. + * @generated + */ + FeatureInverting createFeatureInverting(); + + /** + * Returns a new object of class 'Feature Membership'. + * + * + * @return a new object of class 'Feature Membership'. + * @generated + */ + FeatureMembership createFeatureMembership(); + + /** + * Returns a new object of class 'Feature Reference Expression'. + * + * + * @return a new object of class 'Feature Reference Expression'. + * @generated + */ + FeatureReferenceExpression createFeatureReferenceExpression(); + + /** + * Returns a new object of class 'Feature Typing'. + * + * + * @return a new object of class 'Feature Typing'. + * @generated + */ + FeatureTyping createFeatureTyping(); + + /** + * Returns a new object of class 'Feature Value'. + * + * + * @return a new object of class 'Feature Value'. + * @generated + */ + FeatureValue createFeatureValue(); + + /** + * Returns a new object of class 'Flow'. + * + * + * @return a new object of class 'Flow'. + * @generated + */ + Flow createFlow(); + + /** + * Returns a new object of class 'Flow Definition'. + * + * + * @return a new object of class 'Flow Definition'. + * @generated + */ + FlowDefinition createFlowDefinition(); + + /** + * Returns a new object of class 'Flow End'. + * + * + * @return a new object of class 'Flow End'. + * @generated + */ + FlowEnd createFlowEnd(); + + /** + * Returns a new object of class 'Flow Usage'. + * + * + * @return a new object of class 'Flow Usage'. + * @generated + */ + FlowUsage createFlowUsage(); + + /** + * Returns a new object of class 'Fork Node'. + * + * + * @return a new object of class 'Fork Node'. + * @generated + */ + ForkNode createForkNode(); + + /** + * Returns a new object of class 'For Loop Action Usage'. + * + * + * @return a new object of class 'For Loop Action Usage'. + * @generated + */ + ForLoopActionUsage createForLoopActionUsage(); + + /** + * Returns a new object of class 'Framed Concern Membership'. + * + * + * @return a new object of class 'Framed Concern Membership'. + * @generated + */ + FramedConcernMembership createFramedConcernMembership(); + + /** + * Returns a new object of class 'Function'. + * + * + * @return a new object of class 'Function'. + * @generated + */ + Function createFunction(); + + /** + * Returns a new object of class 'If Action Usage'. + * + * + * @return a new object of class 'If Action Usage'. + * @generated + */ + IfActionUsage createIfActionUsage(); + + /** + * Returns a new object of class 'Include Use Case Usage'. + * + * + * @return a new object of class 'Include Use Case Usage'. + * @generated + */ + IncludeUseCaseUsage createIncludeUseCaseUsage(); + + /** + * Returns a new object of class 'Index Expression'. + * + * + * @return a new object of class 'Index Expression'. + * @generated + */ + IndexExpression createIndexExpression(); + + /** + * Returns a new object of class 'Interaction'. + * + * + * @return a new object of class 'Interaction'. + * @generated + */ + Interaction createInteraction(); + + /** + * Returns a new object of class 'Interface Definition'. + * + * + * @return a new object of class 'Interface Definition'. + * @generated + */ + InterfaceDefinition createInterfaceDefinition(); + + /** + * Returns a new object of class 'Interface Usage'. + * + * + * @return a new object of class 'Interface Usage'. + * @generated + */ + InterfaceUsage createInterfaceUsage(); + + /** + * Returns a new object of class 'Intersecting'. + * + * + * @return a new object of class 'Intersecting'. + * @generated + */ + Intersecting createIntersecting(); + + /** + * Returns a new object of class 'Invariant'. + * + * + * @return a new object of class 'Invariant'. + * @generated + */ + Invariant createInvariant(); + + /** + * Returns a new object of class 'Invocation Expression'. + * + * + * @return a new object of class 'Invocation Expression'. + * @generated + */ + InvocationExpression createInvocationExpression(); + + /** + * Returns a new object of class 'Item Definition'. + * + * + * @return a new object of class 'Item Definition'. + * @generated + */ + ItemDefinition createItemDefinition(); + + /** + * Returns a new object of class 'Item Usage'. + * + * + * @return a new object of class 'Item Usage'. + * @generated + */ + ItemUsage createItemUsage(); + + /** + * Returns a new object of class 'Join Node'. + * + * + * @return a new object of class 'Join Node'. + * @generated + */ + JoinNode createJoinNode(); + + /** + * Returns a new object of class 'Library Package'. + * + * + * @return a new object of class 'Library Package'. + * @generated + */ + LibraryPackage createLibraryPackage(); + + /** + * Returns a new object of class 'Literal Boolean'. + * + * + * @return a new object of class 'Literal Boolean'. + * @generated + */ + LiteralBoolean createLiteralBoolean(); + + /** + * Returns a new object of class 'Literal Expression'. + * + * + * @return a new object of class 'Literal Expression'. + * @generated + */ + LiteralExpression createLiteralExpression(); + + /** + * Returns a new object of class 'Literal Infinity'. + * + * + * @return a new object of class 'Literal Infinity'. + * @generated + */ + LiteralInfinity createLiteralInfinity(); + + /** + * Returns a new object of class 'Literal Integer'. + * + * + * @return a new object of class 'Literal Integer'. + * @generated + */ + LiteralInteger createLiteralInteger(); + + /** + * Returns a new object of class 'Literal Rational'. + * + * + * @return a new object of class 'Literal Rational'. + * @generated + */ + LiteralRational createLiteralRational(); + + /** + * Returns a new object of class 'Literal String'. + * + * + * @return a new object of class 'Literal String'. + * @generated + */ + LiteralString createLiteralString(); + + /** + * Returns a new object of class 'Membership'. + * + * + * @return a new object of class 'Membership'. + * @generated + */ + Membership createMembership(); + + /** + * Returns a new object of class 'Membership Expose'. + * + * + * @return a new object of class 'Membership Expose'. + * @generated + */ + MembershipExpose createMembershipExpose(); + + /** + * Returns a new object of class 'Membership Import'. + * + * + * @return a new object of class 'Membership Import'. + * @generated + */ + MembershipImport createMembershipImport(); + + /** + * Returns a new object of class 'Merge Node'. + * + * + * @return a new object of class 'Merge Node'. + * @generated + */ + MergeNode createMergeNode(); + + /** + * Returns a new object of class 'Metaclass'. + * + * + * @return a new object of class 'Metaclass'. + * @generated + */ + Metaclass createMetaclass(); + + /** + * Returns a new object of class 'Metadata Access Expression'. + * + * + * @return a new object of class 'Metadata Access Expression'. + * @generated + */ + MetadataAccessExpression createMetadataAccessExpression(); + + /** + * Returns a new object of class 'Metadata Definition'. + * + * + * @return a new object of class 'Metadata Definition'. + * @generated + */ + MetadataDefinition createMetadataDefinition(); + + /** + * Returns a new object of class 'Metadata Feature'. + * + * + * @return a new object of class 'Metadata Feature'. + * @generated + */ + MetadataFeature createMetadataFeature(); + + /** + * Returns a new object of class 'Metadata Usage'. + * + * + * @return a new object of class 'Metadata Usage'. + * @generated + */ + MetadataUsage createMetadataUsage(); + + /** + * Returns a new object of class 'Multiplicity'. + * + * + * @return a new object of class 'Multiplicity'. + * @generated + */ + Multiplicity createMultiplicity(); + + /** + * Returns a new object of class 'Multiplicity Range'. + * + * + * @return a new object of class 'Multiplicity Range'. + * @generated + */ + MultiplicityRange createMultiplicityRange(); + + /** + * Returns a new object of class 'Namespace'. + * + * + * @return a new object of class 'Namespace'. + * @generated + */ + Namespace createNamespace(); + + /** + * Returns a new object of class 'Namespace Expose'. + * + * + * @return a new object of class 'Namespace Expose'. + * @generated + */ + NamespaceExpose createNamespaceExpose(); + + /** + * Returns a new object of class 'Namespace Import'. + * + * + * @return a new object of class 'Namespace Import'. + * @generated + */ + NamespaceImport createNamespaceImport(); + + /** + * Returns a new object of class 'Null Expression'. + * + * + * @return a new object of class 'Null Expression'. + * @generated + */ + NullExpression createNullExpression(); + + /** + * Returns a new object of class 'Objective Membership'. + * + * + * @return a new object of class 'Objective Membership'. + * @generated + */ + ObjectiveMembership createObjectiveMembership(); + + /** + * Returns a new object of class 'Occurrence Definition'. + * + * + * @return a new object of class 'Occurrence Definition'. + * @generated + */ + OccurrenceDefinition createOccurrenceDefinition(); + + /** + * Returns a new object of class 'Occurrence Usage'. + * + * + * @return a new object of class 'Occurrence Usage'. + * @generated + */ + OccurrenceUsage createOccurrenceUsage(); + + /** + * Returns a new object of class 'Operator Expression'. + * + * + * @return a new object of class 'Operator Expression'. + * @generated + */ + OperatorExpression createOperatorExpression(); + + /** + * Returns a new object of class 'Owning Membership'. + * + * + * @return a new object of class 'Owning Membership'. + * @generated + */ + OwningMembership createOwningMembership(); + + /** + * Returns a new object of class 'Package'. + * + * + * @return a new object of class 'Package'. + * @generated + */ + Package createPackage(); + + /** + * Returns a new object of class 'Parameter Membership'. + * + * + * @return a new object of class 'Parameter Membership'. + * @generated + */ + ParameterMembership createParameterMembership(); + + /** + * Returns a new object of class 'Part Definition'. + * + * + * @return a new object of class 'Part Definition'. + * @generated + */ + PartDefinition createPartDefinition(); + + /** + * Returns a new object of class 'Part Usage'. + * + * + * @return a new object of class 'Part Usage'. + * @generated + */ + PartUsage createPartUsage(); + + /** + * Returns a new object of class 'Payload Feature'. + * + * + * @return a new object of class 'Payload Feature'. + * @generated + */ + PayloadFeature createPayloadFeature(); + + /** + * Returns a new object of class 'Perform Action Usage'. + * + * + * @return a new object of class 'Perform Action Usage'. + * @generated + */ + PerformActionUsage createPerformActionUsage(); + + /** + * Returns a new object of class 'Port Conjugation'. + * + * + * @return a new object of class 'Port Conjugation'. + * @generated + */ + PortConjugation createPortConjugation(); + + /** + * Returns a new object of class 'Port Definition'. + * + * + * @return a new object of class 'Port Definition'. + * @generated + */ + PortDefinition createPortDefinition(); + + /** + * Returns a new object of class 'Port Usage'. + * + * + * @return a new object of class 'Port Usage'. + * @generated + */ + PortUsage createPortUsage(); + + /** + * Returns a new object of class 'Predicate'. + * + * + * @return a new object of class 'Predicate'. + * @generated + */ + Predicate createPredicate(); + + /** + * Returns a new object of class 'Redefinition'. + * + * + * @return a new object of class 'Redefinition'. + * @generated + */ + Redefinition createRedefinition(); + + /** + * Returns a new object of class 'Reference Subsetting'. + * + * + * @return a new object of class 'Reference Subsetting'. + * @generated + */ + ReferenceSubsetting createReferenceSubsetting(); + + /** + * Returns a new object of class 'Reference Usage'. + * + * + * @return a new object of class 'Reference Usage'. + * @generated + */ + ReferenceUsage createReferenceUsage(); + + /** + * Returns a new object of class 'Rendering Definition'. + * + * + * @return a new object of class 'Rendering Definition'. + * @generated + */ + RenderingDefinition createRenderingDefinition(); + + /** + * Returns a new object of class 'Rendering Usage'. + * + * + * @return a new object of class 'Rendering Usage'. + * @generated + */ + RenderingUsage createRenderingUsage(); + + /** + * Returns a new object of class 'Requirement Constraint Membership'. + * + * + * @return a new object of class 'Requirement Constraint Membership'. + * @generated + */ + RequirementConstraintMembership createRequirementConstraintMembership(); + + /** + * Returns a new object of class 'Requirement Definition'. + * + * + * @return a new object of class 'Requirement Definition'. + * @generated + */ + RequirementDefinition createRequirementDefinition(); + + /** + * Returns a new object of class 'Requirement Usage'. + * + * + * @return a new object of class 'Requirement Usage'. + * @generated + */ + RequirementUsage createRequirementUsage(); + + /** + * Returns a new object of class 'Requirement Verification Membership'. + * + * + * @return a new object of class 'Requirement Verification Membership'. + * @generated + */ + RequirementVerificationMembership createRequirementVerificationMembership(); + + /** + * Returns a new object of class 'Result Expression Membership'. + * + * + * @return a new object of class 'Result Expression Membership'. + * @generated + */ + ResultExpressionMembership createResultExpressionMembership(); + + /** + * Returns a new object of class 'Return Parameter Membership'. + * + * + * @return a new object of class 'Return Parameter Membership'. + * @generated + */ + ReturnParameterMembership createReturnParameterMembership(); + + /** + * Returns a new object of class 'Satisfy Requirement Usage'. + * + * + * @return a new object of class 'Satisfy Requirement Usage'. + * @generated + */ + SatisfyRequirementUsage createSatisfyRequirementUsage(); + + /** + * Returns a new object of class 'Select Expression'. + * + * + * @return a new object of class 'Select Expression'. + * @generated + */ + SelectExpression createSelectExpression(); + + /** + * Returns a new object of class 'Send Action Usage'. + * + * + * @return a new object of class 'Send Action Usage'. + * @generated + */ + SendActionUsage createSendActionUsage(); + + /** + * Returns a new object of class 'Specialization'. + * + * + * @return a new object of class 'Specialization'. + * @generated + */ + Specialization createSpecialization(); + + /** + * Returns a new object of class 'Stakeholder Membership'. + * + * + * @return a new object of class 'Stakeholder Membership'. + * @generated + */ + StakeholderMembership createStakeholderMembership(); + + /** + * Returns a new object of class 'State Definition'. + * + * + * @return a new object of class 'State Definition'. + * @generated + */ + StateDefinition createStateDefinition(); + + /** + * Returns a new object of class 'State Subaction Membership'. + * + * + * @return a new object of class 'State Subaction Membership'. + * @generated + */ + StateSubactionMembership createStateSubactionMembership(); + + /** + * Returns a new object of class 'State Usage'. + * + * + * @return a new object of class 'State Usage'. + * @generated + */ + StateUsage createStateUsage(); + + /** + * Returns a new object of class 'Step'. + * + * + * @return a new object of class 'Step'. + * @generated + */ + Step createStep(); + + /** + * Returns a new object of class 'Structure'. + * + * + * @return a new object of class 'Structure'. + * @generated + */ + Structure createStructure(); + + /** + * Returns a new object of class 'Subclassification'. + * + * + * @return a new object of class 'Subclassification'. + * @generated + */ + Subclassification createSubclassification(); + + /** + * Returns a new object of class 'Subject Membership'. + * + * + * @return a new object of class 'Subject Membership'. + * @generated + */ + SubjectMembership createSubjectMembership(); + + /** + * Returns a new object of class 'Subsetting'. + * + * + * @return a new object of class 'Subsetting'. + * @generated + */ + Subsetting createSubsetting(); + + /** + * Returns a new object of class 'Succession'. + * + * + * @return a new object of class 'Succession'. + * @generated + */ + Succession createSuccession(); + + /** + * Returns a new object of class 'Succession As Usage'. + * + * + * @return a new object of class 'Succession As Usage'. + * @generated + */ + SuccessionAsUsage createSuccessionAsUsage(); + + /** + * Returns a new object of class 'Succession Flow'. + * + * + * @return a new object of class 'Succession Flow'. + * @generated + */ + SuccessionFlow createSuccessionFlow(); + + /** + * Returns a new object of class 'Succession Flow Usage'. + * + * + * @return a new object of class 'Succession Flow Usage'. + * @generated + */ + SuccessionFlowUsage createSuccessionFlowUsage(); + + /** + * Returns a new object of class 'Terminate Action Usage'. + * + * + * @return a new object of class 'Terminate Action Usage'. + * @generated + */ + TerminateActionUsage createTerminateActionUsage(); + + /** + * Returns a new object of class 'Textual Representation'. + * + * + * @return a new object of class 'Textual Representation'. + * @generated + */ + TextualRepresentation createTextualRepresentation(); + + /** + * Returns a new object of class 'Transition Feature Membership'. + * + * + * @return a new object of class 'Transition Feature Membership'. + * @generated + */ + TransitionFeatureMembership createTransitionFeatureMembership(); + + /** + * Returns a new object of class 'Transition Usage'. + * + * + * @return a new object of class 'Transition Usage'. + * @generated + */ + TransitionUsage createTransitionUsage(); + + /** + * Returns a new object of class 'Trigger Invocation Expression'. + * + * + * @return a new object of class 'Trigger Invocation Expression'. + * @generated + */ + TriggerInvocationExpression createTriggerInvocationExpression(); + + /** + * Returns a new object of class 'Type'. + * + * + * @return a new object of class 'Type'. + * @generated + */ + Type createType(); + + /** + * Returns a new object of class 'Type Featuring'. + * + * + * @return a new object of class 'Type Featuring'. + * @generated + */ + TypeFeaturing createTypeFeaturing(); + + /** + * Returns a new object of class 'Unioning'. + * + * + * @return a new object of class 'Unioning'. + * @generated + */ + Unioning createUnioning(); + + /** + * Returns a new object of class 'Usage'. + * + * + * @return a new object of class 'Usage'. + * @generated + */ + Usage createUsage(); + + /** + * Returns a new object of class 'Use Case Definition'. + * + * + * @return a new object of class 'Use Case Definition'. + * @generated + */ + UseCaseDefinition createUseCaseDefinition(); + + /** + * Returns a new object of class 'Use Case Usage'. + * + * + * @return a new object of class 'Use Case Usage'. + * @generated + */ + UseCaseUsage createUseCaseUsage(); + + /** + * Returns a new object of class 'Variant Membership'. + * + * + * @return a new object of class 'Variant Membership'. + * @generated + */ + VariantMembership createVariantMembership(); + + /** + * Returns a new object of class 'Verification Case Definition'. + * + * + * @return a new object of class 'Verification Case Definition'. + * @generated + */ + VerificationCaseDefinition createVerificationCaseDefinition(); + + /** + * Returns a new object of class 'Verification Case Usage'. + * + * + * @return a new object of class 'Verification Case Usage'. + * @generated + */ + VerificationCaseUsage createVerificationCaseUsage(); + + /** + * Returns a new object of class 'View Definition'. + * + * + * @return a new object of class 'View Definition'. + * @generated + */ + ViewDefinition createViewDefinition(); + + /** + * Returns a new object of class 'Viewpoint Definition'. + * + * + * @return a new object of class 'Viewpoint Definition'. + * @generated + */ + ViewpointDefinition createViewpointDefinition(); + + /** + * Returns a new object of class 'Viewpoint Usage'. + * + * + * @return a new object of class 'Viewpoint Usage'. + * @generated + */ + ViewpointUsage createViewpointUsage(); + + /** + * Returns a new object of class 'View Rendering Membership'. + * + * + * @return a new object of class 'View Rendering Membership'. + * @generated + */ + ViewRenderingMembership createViewRenderingMembership(); + + /** + * Returns a new object of class 'View Usage'. + * + * + * @return a new object of class 'View Usage'. + * @generated + */ + ViewUsage createViewUsage(); + + /** + * Returns a new object of class 'While Loop Action Usage'. + * + * + * @return a new object of class 'While Loop Action Usage'. + * @generated + */ + WhileLoopActionUsage createWhileLoopActionUsage(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + SysMLPackage getSysMLPackage(); + +} //SysMLFactory diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SysMLPackage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SysMLPackage.java new file mode 100644 index 000000000..7420325c5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/SysMLPackage.java @@ -0,0 +1,186116 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLFactory + * @model kind="package" + * annotation="http://www.eclipse.org/emf/2002/Ecore settingDelegates='http://www.omg.org/spec/SysML' invocationDelegates='http://www.omg.org/spec/SysML'" + * @generated + */ +public interface SysMLPackage extends EPackage { + /** + * The package name. + * + * + * @generated + */ + String eNAME = "sysml"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "https://www.omg.org/spec/SysML/20250201"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "sysml"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + SysMLPackage eINSTANCE = org.omg.sysml.model.sysml.impl.SysMLPackageImpl.init(); + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ElementImpl Element}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ElementImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getElement() + * @generated + */ + int ELEMENT = 49; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ELEMENT__ALIAS_IDS = 0; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT__DECLARED_NAME = 1; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT__DECLARED_SHORT_NAME = 2; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT__ELEMENT_ID = 3; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT__IS_IMPLIED_INCLUDED = 4; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT__IS_LIBRARY_ELEMENT = 5; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT__NAME = 6; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT__QUALIFIED_NAME = 7; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT__SHORT_NAME = 8; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__DOCUMENTATION = 9; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__OWNED_ANNOTATION = 10; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__OWNED_ELEMENT = 11; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__OWNED_RELATIONSHIP = 12; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT__OWNER = 13; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT__OWNING_MEMBERSHIP = 14; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT__OWNING_NAMESPACE = 15; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ELEMENT__OWNING_RELATIONSHIP = 16; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT__TEXTUAL_REPRESENTATION = 17; + + /** + * The number of structural features of the 'Element' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_FEATURE_COUNT = 18; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___EFFECTIVE_NAME = 0; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___EFFECTIVE_SHORT_NAME = 1; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___ESCAPED_NAME = 2; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___LIBRARY_NAMESPACE = 3; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT___PATH = 4; + + /** + * The number of operations of the 'Element' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_OPERATION_COUNT = 5; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.NamespaceImpl Namespace}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.NamespaceImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getNamespace() + * @generated + */ + int NAMESPACE = 107; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__ALIAS_IDS = ELEMENT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__DECLARED_NAME = ELEMENT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__DECLARED_SHORT_NAME = ELEMENT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__ELEMENT_ID = ELEMENT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__IS_IMPLIED_INCLUDED = ELEMENT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__IS_LIBRARY_ELEMENT = ELEMENT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__QUALIFIED_NAME = ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE__SHORT_NAME = ELEMENT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__DOCUMENTATION = ELEMENT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNED_ANNOTATION = ELEMENT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNED_RELATIONSHIP = ELEMENT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNING_MEMBERSHIP = ELEMENT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNING_NAMESPACE = ELEMENT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNING_RELATIONSHIP = ELEMENT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__TEXTUAL_REPRESENTATION = ELEMENT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__IMPORTED_MEMBERSHIP = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__MEMBER = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__MEMBERSHIP = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNED_IMPORT = ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNED_MEMBER = ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE__OWNED_MEMBERSHIP = ELEMENT_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Namespace' class. + * + * + * @generated + * @ordered + */ + int NAMESPACE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 6; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___EFFECTIVE_NAME = ELEMENT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___EFFECTIVE_SHORT_NAME = ELEMENT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___ESCAPED_NAME = ELEMENT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___LIBRARY_NAMESPACE = ELEMENT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___PATH = ELEMENT___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___IMPORTED_MEMBERSHIPS__ELIST = ELEMENT_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ELEMENT_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___NAMES_OF__ELEMENT = ELEMENT_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___QUALIFICATION_OF__STRING = ELEMENT_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___RESOLVE__STRING = ELEMENT_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___RESOLVE_GLOBAL__STRING = ELEMENT_OPERATION_COUNT + 5; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___RESOLVE_LOCAL__STRING = ELEMENT_OPERATION_COUNT + 6; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___RESOLVE_VISIBLE__STRING = ELEMENT_OPERATION_COUNT + 7; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___UNQUALIFIED_NAME_OF__STRING = ELEMENT_OPERATION_COUNT + 8; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___VISIBILITY_OF__MEMBERSHIP = ELEMENT_OPERATION_COUNT + 9; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ELEMENT_OPERATION_COUNT + 10; + + /** + * The number of operations of the 'Namespace' class. + * + * + * @generated + * @ordered + */ + int NAMESPACE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 11; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.TypeImpl Type}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TypeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getType() + * @generated + */ + int TYPE = 160; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int TYPE__ALIAS_IDS = NAMESPACE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__DECLARED_NAME = NAMESPACE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__DECLARED_SHORT_NAME = NAMESPACE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__ELEMENT_ID = NAMESPACE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__IS_IMPLIED_INCLUDED = NAMESPACE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__IS_LIBRARY_ELEMENT = NAMESPACE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__NAME = NAMESPACE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__QUALIFIED_NAME = NAMESPACE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__SHORT_NAME = NAMESPACE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__DOCUMENTATION = NAMESPACE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_ANNOTATION = NAMESPACE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_ELEMENT = NAMESPACE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_RELATIONSHIP = NAMESPACE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TYPE__OWNER = NAMESPACE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int TYPE__OWNING_MEMBERSHIP = NAMESPACE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int TYPE__OWNING_NAMESPACE = NAMESPACE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int TYPE__OWNING_RELATIONSHIP = NAMESPACE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__TEXTUAL_REPRESENTATION = NAMESPACE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__IMPORTED_MEMBERSHIP = NAMESPACE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__MEMBER = NAMESPACE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__MEMBERSHIP = NAMESPACE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_IMPORT = NAMESPACE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_MEMBER = NAMESPACE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_MEMBERSHIP = NAMESPACE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__IS_ABSTRACT = NAMESPACE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__IS_CONJUGATED = NAMESPACE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int TYPE__IS_SUFFICIENT = NAMESPACE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__DIFFERENCING_TYPE = NAMESPACE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__DIRECTED_FEATURE = NAMESPACE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__END_FEATURE = NAMESPACE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__FEATURE = NAMESPACE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__FEATURE_MEMBERSHIP = NAMESPACE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__INHERITED_FEATURE = NAMESPACE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__INHERITED_MEMBERSHIP = NAMESPACE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__INPUT = NAMESPACE_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__INTERSECTING_TYPE = NAMESPACE_FEATURE_COUNT + 11; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int TYPE__MULTIPLICITY = NAMESPACE_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OUTPUT = NAMESPACE_FEATURE_COUNT + 13; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_CONJUGATOR = NAMESPACE_FEATURE_COUNT + 14; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_DIFFERENCING = NAMESPACE_FEATURE_COUNT + 15; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_DISJOINING = NAMESPACE_FEATURE_COUNT + 16; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_END_FEATURE = NAMESPACE_FEATURE_COUNT + 17; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_FEATURE = NAMESPACE_FEATURE_COUNT + 18; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_FEATURE_MEMBERSHIP = NAMESPACE_FEATURE_COUNT + 19; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_INTERSECTING = NAMESPACE_FEATURE_COUNT + 20; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_SPECIALIZATION = NAMESPACE_FEATURE_COUNT + 21; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__OWNED_UNIONING = NAMESPACE_FEATURE_COUNT + 22; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int TYPE__UNIONING_TYPE = NAMESPACE_FEATURE_COUNT + 23; + + /** + * The number of structural features of the 'Type' class. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURE_COUNT = NAMESPACE_FEATURE_COUNT + 24; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int TYPE___EFFECTIVE_NAME = NAMESPACE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int TYPE___EFFECTIVE_SHORT_NAME = NAMESPACE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int TYPE___ESCAPED_NAME = NAMESPACE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int TYPE___LIBRARY_NAMESPACE = NAMESPACE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int TYPE___PATH = NAMESPACE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int TYPE___IMPORTED_MEMBERSHIPS__ELIST = NAMESPACE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int TYPE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = NAMESPACE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int TYPE___NAMES_OF__ELEMENT = NAMESPACE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int TYPE___QUALIFICATION_OF__STRING = NAMESPACE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int TYPE___RESOLVE__STRING = NAMESPACE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int TYPE___RESOLVE_GLOBAL__STRING = NAMESPACE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int TYPE___RESOLVE_LOCAL__STRING = NAMESPACE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int TYPE___RESOLVE_VISIBLE__STRING = NAMESPACE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int TYPE___UNQUALIFIED_NAME_OF__STRING = NAMESPACE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int TYPE___VISIBILITY_OF__MEMBERSHIP = NAMESPACE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int TYPE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = NAMESPACE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int TYPE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = NAMESPACE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int TYPE___ALL_SUPERTYPES = NAMESPACE_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int TYPE___DIRECTION_OF__FEATURE = NAMESPACE_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int TYPE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = NAMESPACE_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int TYPE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = NAMESPACE_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int TYPE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = NAMESPACE_OPERATION_COUNT + 5; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int TYPE___IS_COMPATIBLE_WITH__TYPE = NAMESPACE_OPERATION_COUNT + 6; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int TYPE___MULTIPLICITIES = NAMESPACE_OPERATION_COUNT + 7; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int TYPE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = NAMESPACE_OPERATION_COUNT + 8; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int TYPE___REMOVE_REDEFINED_FEATURES__ELIST = NAMESPACE_OPERATION_COUNT + 9; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int TYPE___SPECIALIZES__TYPE = NAMESPACE_OPERATION_COUNT + 10; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int TYPE___SPECIALIZES_FROM_LIBRARY__STRING = NAMESPACE_OPERATION_COUNT + 11; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int TYPE___SUPERTYPES__BOOLEAN = NAMESPACE_OPERATION_COUNT + 12; + + /** + * The number of operations of the 'Type' class. + * + * + * @generated + * @ordered + */ + int TYPE_OPERATION_COUNT = NAMESPACE_OPERATION_COUNT + 13; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FeatureImpl Feature}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeature() + * @generated + */ + int FEATURE = 58; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FEATURE__ALIAS_IDS = TYPE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__DECLARED_NAME = TYPE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__DECLARED_SHORT_NAME = TYPE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__ELEMENT_ID = TYPE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_IMPLIED_INCLUDED = TYPE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_LIBRARY_ELEMENT = TYPE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__NAME = TYPE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__QUALIFIED_NAME = TYPE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__SHORT_NAME = TYPE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__DOCUMENTATION = TYPE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_ANNOTATION = TYPE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_ELEMENT = TYPE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_RELATIONSHIP = TYPE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNER = TYPE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNING_MEMBERSHIP = TYPE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNING_NAMESPACE = TYPE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNING_RELATIONSHIP = TYPE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__TEXTUAL_REPRESENTATION = TYPE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__IMPORTED_MEMBERSHIP = TYPE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__MEMBER = TYPE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__MEMBERSHIP = TYPE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_IMPORT = TYPE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_MEMBER = TYPE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_MEMBERSHIP = TYPE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_ABSTRACT = TYPE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_CONJUGATED = TYPE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_SUFFICIENT = TYPE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__DIFFERENCING_TYPE = TYPE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__DIRECTED_FEATURE = TYPE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__END_FEATURE = TYPE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__FEATURE = TYPE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__FEATURE_MEMBERSHIP = TYPE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__INHERITED_FEATURE = TYPE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__INHERITED_MEMBERSHIP = TYPE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__INPUT = TYPE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__INTERSECTING_TYPE = TYPE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__MULTIPLICITY = TYPE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OUTPUT = TYPE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_CONJUGATOR = TYPE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_DIFFERENCING = TYPE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_DISJOINING = TYPE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_END_FEATURE = TYPE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_FEATURE = TYPE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_FEATURE_MEMBERSHIP = TYPE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_INTERSECTING = TYPE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_SPECIALIZATION = TYPE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_UNIONING = TYPE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__UNIONING_TYPE = TYPE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__DIRECTION = TYPE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_COMPOSITE = TYPE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_CONSTANT = TYPE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_DERIVED = TYPE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_END = TYPE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_NONUNIQUE = TYPE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_ORDERED = TYPE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_PORTION = TYPE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_UNIQUE = TYPE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE__IS_VARIABLE = TYPE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__CHAINING_FEATURE = TYPE_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__CROSS_FEATURE = TYPE_FEATURE_COUNT + 11; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__END_OWNING_TYPE = TYPE_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__FEATURE_TARGET = TYPE_FEATURE_COUNT + 13; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__FEATURING_TYPE = TYPE_FEATURE_COUNT + 14; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_CROSS_SUBSETTING = TYPE_FEATURE_COUNT + 15; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_FEATURE_CHAINING = TYPE_FEATURE_COUNT + 16; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_FEATURE_INVERTING = TYPE_FEATURE_COUNT + 17; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_REDEFINITION = TYPE_FEATURE_COUNT + 18; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_REFERENCE_SUBSETTING = TYPE_FEATURE_COUNT + 19; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_SUBSETTING = TYPE_FEATURE_COUNT + 20; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_TYPE_FEATURING = TYPE_FEATURE_COUNT + 21; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNED_TYPING = TYPE_FEATURE_COUNT + 22; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNING_FEATURE_MEMBERSHIP = TYPE_FEATURE_COUNT + 23; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FEATURE__OWNING_TYPE = TYPE_FEATURE_COUNT + 24; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE__TYPE = TYPE_FEATURE_COUNT + 25; + + /** + * The number of structural features of the 'Feature' class. + * + * + * @generated + * @ordered + */ + int FEATURE_FEATURE_COUNT = TYPE_FEATURE_COUNT + 26; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___EFFECTIVE_NAME = TYPE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___EFFECTIVE_SHORT_NAME = TYPE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___ESCAPED_NAME = TYPE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___LIBRARY_NAMESPACE = TYPE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___PATH = TYPE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___IMPORTED_MEMBERSHIPS__ELIST = TYPE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = TYPE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___NAMES_OF__ELEMENT = TYPE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___QUALIFICATION_OF__STRING = TYPE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___RESOLVE__STRING = TYPE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___RESOLVE_GLOBAL__STRING = TYPE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___RESOLVE_LOCAL__STRING = TYPE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___RESOLVE_VISIBLE__STRING = TYPE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___UNQUALIFIED_NAME_OF__STRING = TYPE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___VISIBILITY_OF__MEMBERSHIP = TYPE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = TYPE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = TYPE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___ALL_SUPERTYPES = TYPE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___DIRECTION_OF__FEATURE = TYPE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = TYPE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = TYPE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = TYPE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___IS_COMPATIBLE_WITH__TYPE = TYPE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___MULTIPLICITIES = TYPE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = TYPE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___REMOVE_REDEFINED_FEATURES__ELIST = TYPE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___SPECIALIZES__TYPE = TYPE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___SPECIALIZES_FROM_LIBRARY__STRING = TYPE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___SUPERTYPES__BOOLEAN = TYPE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___ALL_REDEFINED_FEATURES = TYPE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___AS_CARTESIAN_PRODUCT = TYPE_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___CAN_ACCESS__FEATURE = TYPE_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___DIRECTION_FOR__TYPE = TYPE_OPERATION_COUNT + 3; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___IS_CARTESIAN_PRODUCT = TYPE_OPERATION_COUNT + 4; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___IS_FEATURED_WITHIN__TYPE = TYPE_OPERATION_COUNT + 5; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___IS_FEATURING_TYPE__TYPE = TYPE_OPERATION_COUNT + 6; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___IS_OWNED_CROSS_FEATURE = TYPE_OPERATION_COUNT + 7; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___NAMING_FEATURE = TYPE_OPERATION_COUNT + 8; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___OWNED_CROSS_FEATURE = TYPE_OPERATION_COUNT + 9; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___REDEFINES__FEATURE = TYPE_OPERATION_COUNT + 10; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___REDEFINES_FROM_LIBRARY__STRING = TYPE_OPERATION_COUNT + 11; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE = TYPE_OPERATION_COUNT + 12; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int FEATURE___TYPING_FEATURES = TYPE_OPERATION_COUNT + 13; + + /** + * The number of operations of the 'Feature' class. + * + * + * @generated + * @ordered + */ + int FEATURE_OPERATION_COUNT = TYPE_OPERATION_COUNT + 14; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.UsageImpl Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.UsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getUsage() + * @generated + */ + int USAGE = 163; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int USAGE__ALIAS_IDS = FEATURE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__DECLARED_NAME = FEATURE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__DECLARED_SHORT_NAME = FEATURE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__ELEMENT_ID = FEATURE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_IMPLIED_INCLUDED = FEATURE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_LIBRARY_ELEMENT = FEATURE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__NAME = FEATURE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__SHORT_NAME = FEATURE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__DOCUMENTATION = FEATURE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_ANNOTATION = FEATURE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_RELATIONSHIP = FEATURE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNER = FEATURE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNING_MEMBERSHIP = FEATURE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNING_NAMESPACE = FEATURE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNING_RELATIONSHIP = FEATURE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__TEXTUAL_REPRESENTATION = FEATURE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__IMPORTED_MEMBERSHIP = FEATURE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__MEMBER = FEATURE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__MEMBERSHIP = FEATURE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_IMPORT = FEATURE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_MEMBER = FEATURE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_MEMBERSHIP = FEATURE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_ABSTRACT = FEATURE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_CONJUGATED = FEATURE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_SUFFICIENT = FEATURE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__DIFFERENCING_TYPE = FEATURE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__DIRECTED_FEATURE = FEATURE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__END_FEATURE = FEATURE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__FEATURE = FEATURE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__FEATURE_MEMBERSHIP = FEATURE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__INHERITED_FEATURE = FEATURE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__INHERITED_MEMBERSHIP = FEATURE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__INPUT = FEATURE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__INTERSECTING_TYPE = FEATURE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int USAGE__MULTIPLICITY = FEATURE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OUTPUT = FEATURE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_CONJUGATOR = FEATURE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_DIFFERENCING = FEATURE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_DISJOINING = FEATURE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_END_FEATURE = FEATURE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_FEATURE = FEATURE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_FEATURE_MEMBERSHIP = FEATURE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_INTERSECTING = FEATURE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_SPECIALIZATION = FEATURE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_UNIONING = FEATURE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__UNIONING_TYPE = FEATURE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__DIRECTION = FEATURE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_COMPOSITE = FEATURE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_CONSTANT = FEATURE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_DERIVED = FEATURE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_END = FEATURE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_NONUNIQUE = FEATURE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_ORDERED = FEATURE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_PORTION = FEATURE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_UNIQUE = FEATURE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_VARIABLE = FEATURE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__CHAINING_FEATURE = FEATURE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int USAGE__CROSS_FEATURE = FEATURE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int USAGE__END_OWNING_TYPE = FEATURE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int USAGE__FEATURE_TARGET = FEATURE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__FEATURING_TYPE = FEATURE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_CROSS_SUBSETTING = FEATURE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_FEATURE_CHAINING = FEATURE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_FEATURE_INVERTING = FEATURE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_REDEFINITION = FEATURE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_REFERENCE_SUBSETTING = FEATURE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_SUBSETTING = FEATURE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_TYPE_FEATURING = FEATURE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__OWNED_TYPING = FEATURE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNING_FEATURE_MEMBERSHIP = FEATURE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNING_TYPE = FEATURE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__TYPE = FEATURE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_REFERENCE = FEATURE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__IS_VARIATION = FEATURE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int USAGE__MAY_TIME_VARY = FEATURE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__DEFINITION = FEATURE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__DIRECTED_USAGE = FEATURE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_ACTION = FEATURE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_ALLOCATION = FEATURE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_ANALYSIS_CASE = FEATURE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_ATTRIBUTE = FEATURE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_CALCULATION = FEATURE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_CASE = FEATURE_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_CONCERN = FEATURE_FEATURE_COUNT + 11; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_CONNECTION = FEATURE_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_CONSTRAINT = FEATURE_FEATURE_COUNT + 13; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_ENUMERATION = FEATURE_FEATURE_COUNT + 14; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_FLOW = FEATURE_FEATURE_COUNT + 15; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_INTERFACE = FEATURE_FEATURE_COUNT + 16; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_ITEM = FEATURE_FEATURE_COUNT + 17; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_METADATA = FEATURE_FEATURE_COUNT + 18; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_OCCURRENCE = FEATURE_FEATURE_COUNT + 19; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_PART = FEATURE_FEATURE_COUNT + 20; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_PORT = FEATURE_FEATURE_COUNT + 21; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_REFERENCE = FEATURE_FEATURE_COUNT + 22; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_RENDERING = FEATURE_FEATURE_COUNT + 23; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_REQUIREMENT = FEATURE_FEATURE_COUNT + 24; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_STATE = FEATURE_FEATURE_COUNT + 25; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_TRANSITION = FEATURE_FEATURE_COUNT + 26; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_USAGE = FEATURE_FEATURE_COUNT + 27; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_USE_CASE = FEATURE_FEATURE_COUNT + 28; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_VERIFICATION_CASE = FEATURE_FEATURE_COUNT + 29; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_VIEW = FEATURE_FEATURE_COUNT + 30; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__NESTED_VIEWPOINT = FEATURE_FEATURE_COUNT + 31; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNING_DEFINITION = FEATURE_FEATURE_COUNT + 32; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int USAGE__OWNING_USAGE = FEATURE_FEATURE_COUNT + 33; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__USAGE = FEATURE_FEATURE_COUNT + 34; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__VARIANT = FEATURE_FEATURE_COUNT + 35; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int USAGE__VARIANT_MEMBERSHIP = FEATURE_FEATURE_COUNT + 36; + + /** + * The number of structural features of the 'Usage' class. + * + * + * @generated + * @ordered + */ + int USAGE_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 37; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int USAGE___EFFECTIVE_NAME = FEATURE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int USAGE___EFFECTIVE_SHORT_NAME = FEATURE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int USAGE___ESCAPED_NAME = FEATURE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int USAGE___LIBRARY_NAMESPACE = FEATURE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int USAGE___PATH = FEATURE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int USAGE___IMPORTED_MEMBERSHIPS__ELIST = FEATURE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = FEATURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int USAGE___NAMES_OF__ELEMENT = FEATURE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int USAGE___QUALIFICATION_OF__STRING = FEATURE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int USAGE___RESOLVE__STRING = FEATURE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int USAGE___RESOLVE_GLOBAL__STRING = FEATURE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int USAGE___RESOLVE_LOCAL__STRING = FEATURE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int USAGE___RESOLVE_VISIBLE__STRING = FEATURE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int USAGE___UNQUALIFIED_NAME_OF__STRING = FEATURE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int USAGE___VISIBILITY_OF__MEMBERSHIP = FEATURE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = FEATURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = FEATURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int USAGE___ALL_SUPERTYPES = FEATURE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int USAGE___DIRECTION_OF__FEATURE = FEATURE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = FEATURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int USAGE___IS_COMPATIBLE_WITH__TYPE = FEATURE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int USAGE___MULTIPLICITIES = FEATURE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int USAGE___REMOVE_REDEFINED_FEATURES__ELIST = FEATURE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int USAGE___SPECIALIZES__TYPE = FEATURE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int USAGE___SPECIALIZES_FROM_LIBRARY__STRING = FEATURE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int USAGE___SUPERTYPES__BOOLEAN = FEATURE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int USAGE___ALL_REDEFINED_FEATURES = FEATURE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int USAGE___AS_CARTESIAN_PRODUCT = FEATURE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int USAGE___CAN_ACCESS__FEATURE = FEATURE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int USAGE___DIRECTION_FOR__TYPE = FEATURE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int USAGE___IS_CARTESIAN_PRODUCT = FEATURE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int USAGE___IS_FEATURED_WITHIN__TYPE = FEATURE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int USAGE___IS_FEATURING_TYPE__TYPE = FEATURE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int USAGE___IS_OWNED_CROSS_FEATURE = FEATURE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int USAGE___NAMING_FEATURE = FEATURE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int USAGE___OWNED_CROSS_FEATURE = FEATURE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int USAGE___REDEFINES__FEATURE = FEATURE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int USAGE___REDEFINES_FROM_LIBRARY__STRING = FEATURE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int USAGE___TYPING_FEATURES = FEATURE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int USAGE___REFERENCED_FEATURE_TARGET = FEATURE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Usage' class. + * + * + * @generated + * @ordered + */ + int USAGE_OPERATION_COUNT = FEATURE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.OccurrenceUsageImpl Occurrence Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.OccurrenceUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getOccurrenceUsage() + * @generated + */ + int OCCURRENCE_USAGE = 113; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__ALIAS_IDS = USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__DECLARED_NAME = USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__DECLARED_SHORT_NAME = USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__ELEMENT_ID = USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_IMPLIED_INCLUDED = USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_LIBRARY_ELEMENT = USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NAME = USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__QUALIFIED_NAME = USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__SHORT_NAME = USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__DOCUMENTATION = USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_ANNOTATION = USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_ELEMENT = USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_RELATIONSHIP = USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNER = USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNING_MEMBERSHIP = USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNING_NAMESPACE = USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNING_RELATIONSHIP = USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__TEXTUAL_REPRESENTATION = USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IMPORTED_MEMBERSHIP = USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__MEMBER = USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__MEMBERSHIP = USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_IMPORT = USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_MEMBER = USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_MEMBERSHIP = USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_ABSTRACT = USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_CONJUGATED = USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_SUFFICIENT = USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__DIFFERENCING_TYPE = USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__DIRECTED_FEATURE = USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__END_FEATURE = USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__FEATURE = USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__FEATURE_MEMBERSHIP = USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__INHERITED_FEATURE = USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__INHERITED_MEMBERSHIP = USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__INPUT = USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__INTERSECTING_TYPE = USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__MULTIPLICITY = USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OUTPUT = USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_CONJUGATOR = USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_DIFFERENCING = USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_DISJOINING = USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_END_FEATURE = USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_FEATURE = USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_FEATURE_MEMBERSHIP = USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_INTERSECTING = USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_SPECIALIZATION = USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_UNIONING = USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__UNIONING_TYPE = USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__DIRECTION = USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_COMPOSITE = USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_CONSTANT = USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_DERIVED = USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_END = USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_NONUNIQUE = USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_ORDERED = USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_PORTION = USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_UNIQUE = USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_VARIABLE = USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__CHAINING_FEATURE = USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__CROSS_FEATURE = USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__END_OWNING_TYPE = USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__FEATURE_TARGET = USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__FEATURING_TYPE = USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_CROSS_SUBSETTING = USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_FEATURE_CHAINING = USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_FEATURE_INVERTING = USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_REDEFINITION = USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_REFERENCE_SUBSETTING = USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_SUBSETTING = USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_TYPE_FEATURING = USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNED_TYPING = USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNING_FEATURE_MEMBERSHIP = USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNING_TYPE = USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__TYPE = USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_REFERENCE = USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_VARIATION = USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__MAY_TIME_VARY = USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__DEFINITION = USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__DIRECTED_USAGE = USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_ACTION = USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_ALLOCATION = USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_ANALYSIS_CASE = USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_ATTRIBUTE = USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_CALCULATION = USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_CASE = USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_CONCERN = USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_CONNECTION = USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_CONSTRAINT = USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_ENUMERATION = USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_FLOW = USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_INTERFACE = USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_ITEM = USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_METADATA = USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_OCCURRENCE = USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_PART = USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_PORT = USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_REFERENCE = USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_RENDERING = USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_REQUIREMENT = USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_STATE = USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_TRANSITION = USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_USAGE = USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_USE_CASE = USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_VERIFICATION_CASE = USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_VIEW = USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__NESTED_VIEWPOINT = USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNING_DEFINITION = USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OWNING_USAGE = USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__USAGE = USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__VARIANT = USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__VARIANT_MEMBERSHIP = USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__IS_INDIVIDUAL = USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__PORTION_KIND = USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION = USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE__OCCURRENCE_DEFINITION = USAGE_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Occurrence Usage' class. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE_FEATURE_COUNT = USAGE_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___EFFECTIVE_NAME = USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___EFFECTIVE_SHORT_NAME = USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___ESCAPED_NAME = USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___LIBRARY_NAMESPACE = USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___PATH = USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___NAMES_OF__ELEMENT = USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___QUALIFICATION_OF__STRING = USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___RESOLVE__STRING = USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___RESOLVE_GLOBAL__STRING = USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___RESOLVE_LOCAL__STRING = USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___RESOLVE_VISIBLE__STRING = USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___UNQUALIFIED_NAME_OF__STRING = USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___VISIBILITY_OF__MEMBERSHIP = USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___ALL_SUPERTYPES = USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___DIRECTION_OF__FEATURE = USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___IS_COMPATIBLE_WITH__TYPE = USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___MULTIPLICITIES = USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___SPECIALIZES__TYPE = USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___SUPERTYPES__BOOLEAN = USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES = USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___AS_CARTESIAN_PRODUCT = USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___CAN_ACCESS__FEATURE = USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___DIRECTION_FOR__TYPE = USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___IS_CARTESIAN_PRODUCT = USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___IS_FEATURED_WITHIN__TYPE = USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___IS_FEATURING_TYPE__TYPE = USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___IS_OWNED_CROSS_FEATURE = USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___NAMING_FEATURE = USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___OWNED_CROSS_FEATURE = USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___REDEFINES__FEATURE = USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___REDEFINES_FROM_LIBRARY__STRING = USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___TYPING_FEATURES = USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE___REFERENCED_FEATURE_TARGET = USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Occurrence Usage' class. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_USAGE_OPERATION_COUNT = USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ActionUsageImpl Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getActionUsage() + * @generated + */ + int ACTION_USAGE = 2; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__ALIAS_IDS = OCCURRENCE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__DECLARED_NAME = OCCURRENCE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__DECLARED_SHORT_NAME = OCCURRENCE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__ELEMENT_ID = OCCURRENCE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_IMPLIED_INCLUDED = OCCURRENCE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_LIBRARY_ELEMENT = OCCURRENCE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NAME = OCCURRENCE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__QUALIFIED_NAME = OCCURRENCE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__SHORT_NAME = OCCURRENCE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__DOCUMENTATION = OCCURRENCE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_ANNOTATION = OCCURRENCE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_ELEMENT = OCCURRENCE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_RELATIONSHIP = OCCURRENCE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNER = OCCURRENCE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNING_MEMBERSHIP = OCCURRENCE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNING_NAMESPACE = OCCURRENCE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNING_RELATIONSHIP = OCCURRENCE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__TEXTUAL_REPRESENTATION = OCCURRENCE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IMPORTED_MEMBERSHIP = OCCURRENCE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__MEMBER = OCCURRENCE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__MEMBERSHIP = OCCURRENCE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_IMPORT = OCCURRENCE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_MEMBER = OCCURRENCE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_MEMBERSHIP = OCCURRENCE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_ABSTRACT = OCCURRENCE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_CONJUGATED = OCCURRENCE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_SUFFICIENT = OCCURRENCE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__DIFFERENCING_TYPE = OCCURRENCE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__DIRECTED_FEATURE = OCCURRENCE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__END_FEATURE = OCCURRENCE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__FEATURE = OCCURRENCE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__INHERITED_FEATURE = OCCURRENCE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__INHERITED_MEMBERSHIP = OCCURRENCE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__INPUT = OCCURRENCE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__INTERSECTING_TYPE = OCCURRENCE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__MULTIPLICITY = OCCURRENCE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OUTPUT = OCCURRENCE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_CONJUGATOR = OCCURRENCE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_DIFFERENCING = OCCURRENCE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_DISJOINING = OCCURRENCE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_END_FEATURE = OCCURRENCE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_FEATURE = OCCURRENCE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_INTERSECTING = OCCURRENCE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_SPECIALIZATION = OCCURRENCE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_UNIONING = OCCURRENCE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__UNIONING_TYPE = OCCURRENCE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__DIRECTION = OCCURRENCE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_COMPOSITE = OCCURRENCE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_CONSTANT = OCCURRENCE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_DERIVED = OCCURRENCE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_END = OCCURRENCE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_NONUNIQUE = OCCURRENCE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_ORDERED = OCCURRENCE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_PORTION = OCCURRENCE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_UNIQUE = OCCURRENCE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_VARIABLE = OCCURRENCE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__CHAINING_FEATURE = OCCURRENCE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__CROSS_FEATURE = OCCURRENCE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__END_OWNING_TYPE = OCCURRENCE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__FEATURE_TARGET = OCCURRENCE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__FEATURING_TYPE = OCCURRENCE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_CROSS_SUBSETTING = OCCURRENCE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_FEATURE_CHAINING = OCCURRENCE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_FEATURE_INVERTING = OCCURRENCE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_REDEFINITION = OCCURRENCE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_REFERENCE_SUBSETTING = OCCURRENCE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_SUBSETTING = OCCURRENCE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_TYPE_FEATURING = OCCURRENCE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNED_TYPING = OCCURRENCE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNING_TYPE = OCCURRENCE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__TYPE = OCCURRENCE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_REFERENCE = OCCURRENCE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_VARIATION = OCCURRENCE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__MAY_TIME_VARY = OCCURRENCE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__DEFINITION = OCCURRENCE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__DIRECTED_USAGE = OCCURRENCE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_ACTION = OCCURRENCE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_ALLOCATION = OCCURRENCE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_ANALYSIS_CASE = OCCURRENCE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_ATTRIBUTE = OCCURRENCE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_CALCULATION = OCCURRENCE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_CASE = OCCURRENCE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_CONCERN = OCCURRENCE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_CONNECTION = OCCURRENCE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_CONSTRAINT = OCCURRENCE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_ENUMERATION = OCCURRENCE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_FLOW = OCCURRENCE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_INTERFACE = OCCURRENCE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_ITEM = OCCURRENCE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_METADATA = OCCURRENCE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_OCCURRENCE = OCCURRENCE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_PART = OCCURRENCE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_PORT = OCCURRENCE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_REFERENCE = OCCURRENCE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_RENDERING = OCCURRENCE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_REQUIREMENT = OCCURRENCE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_STATE = OCCURRENCE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_TRANSITION = OCCURRENCE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_USAGE = OCCURRENCE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_USE_CASE = OCCURRENCE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_VERIFICATION_CASE = OCCURRENCE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_VIEW = OCCURRENCE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__NESTED_VIEWPOINT = OCCURRENCE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNING_DEFINITION = OCCURRENCE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OWNING_USAGE = OCCURRENCE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__USAGE = OCCURRENCE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__VARIANT = OCCURRENCE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__VARIANT_MEMBERSHIP = OCCURRENCE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__IS_INDIVIDUAL = OCCURRENCE_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__PORTION_KIND = OCCURRENCE_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__INDIVIDUAL_DEFINITION = OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__OCCURRENCE_DEFINITION = OCCURRENCE_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__BEHAVIOR = OCCURRENCE_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__PARAMETER = OCCURRENCE_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE__ACTION_DEFINITION = OCCURRENCE_USAGE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Action Usage' class. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE_FEATURE_COUNT = OCCURRENCE_USAGE_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___EFFECTIVE_NAME = OCCURRENCE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___EFFECTIVE_SHORT_NAME = OCCURRENCE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___ESCAPED_NAME = OCCURRENCE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___LIBRARY_NAMESPACE = OCCURRENCE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___PATH = OCCURRENCE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = OCCURRENCE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OCCURRENCE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___NAMES_OF__ELEMENT = OCCURRENCE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___QUALIFICATION_OF__STRING = OCCURRENCE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___RESOLVE__STRING = OCCURRENCE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___RESOLVE_GLOBAL__STRING = OCCURRENCE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___RESOLVE_LOCAL__STRING = OCCURRENCE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___RESOLVE_VISIBLE__STRING = OCCURRENCE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING = OCCURRENCE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP = OCCURRENCE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OCCURRENCE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___ALL_SUPERTYPES = OCCURRENCE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___DIRECTION_OF__FEATURE = OCCURRENCE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OCCURRENCE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE = OCCURRENCE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___MULTIPLICITIES = OCCURRENCE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = OCCURRENCE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___SPECIALIZES__TYPE = OCCURRENCE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = OCCURRENCE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___SUPERTYPES__BOOLEAN = OCCURRENCE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___ALL_REDEFINED_FEATURES = OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___AS_CARTESIAN_PRODUCT = OCCURRENCE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___CAN_ACCESS__FEATURE = OCCURRENCE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___DIRECTION_FOR__TYPE = OCCURRENCE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___IS_CARTESIAN_PRODUCT = OCCURRENCE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___IS_FEATURED_WITHIN__TYPE = OCCURRENCE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___IS_FEATURING_TYPE__TYPE = OCCURRENCE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___IS_OWNED_CROSS_FEATURE = OCCURRENCE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___NAMING_FEATURE = OCCURRENCE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___OWNED_CROSS_FEATURE = OCCURRENCE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___REDEFINES__FEATURE = OCCURRENCE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = OCCURRENCE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = OCCURRENCE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___TYPING_FEATURES = OCCURRENCE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___REFERENCED_FEATURE_TARGET = OCCURRENCE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___ARGUMENT__INT = OCCURRENCE_USAGE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___INPUT_PARAMETER__INT = OCCURRENCE_USAGE_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___INPUT_PARAMETERS = OCCURRENCE_USAGE_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE___IS_SUBACTION_USAGE = OCCURRENCE_USAGE_OPERATION_COUNT + 3; + + /** + * The number of operations of the 'Action Usage' class. + * + * + * @generated + * @ordered + */ + int ACTION_USAGE_OPERATION_COUNT = OCCURRENCE_USAGE_OPERATION_COUNT + 4; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AcceptActionUsageImpl Accept Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AcceptActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAcceptActionUsage() + * @generated + */ + int ACCEPT_ACTION_USAGE = 0; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Payload Argument' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__PAYLOAD_ARGUMENT = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Payload Parameter' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__PAYLOAD_PARAMETER = ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Receiver Argument' reference. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE__RECEIVER_ARGUMENT = ACTION_USAGE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Accept Action Usage' class. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Is Trigger Action' operation. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE___IS_TRIGGER_ACTION = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Accept Action Usage' class. + * + * + * @generated + * @ordered + */ + int ACCEPT_ACTION_USAGE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ClassifierImpl Classifier}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ClassifierImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getClassifier() + * @generated + */ + int CLASSIFIER = 25; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__ALIAS_IDS = TYPE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__DECLARED_NAME = TYPE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__DECLARED_SHORT_NAME = TYPE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__ELEMENT_ID = TYPE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__IS_IMPLIED_INCLUDED = TYPE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__IS_LIBRARY_ELEMENT = TYPE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__NAME = TYPE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__QUALIFIED_NAME = TYPE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__SHORT_NAME = TYPE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__DOCUMENTATION = TYPE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_ANNOTATION = TYPE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_ELEMENT = TYPE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_RELATIONSHIP = TYPE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNER = TYPE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNING_MEMBERSHIP = TYPE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNING_NAMESPACE = TYPE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNING_RELATIONSHIP = TYPE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__TEXTUAL_REPRESENTATION = TYPE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__IMPORTED_MEMBERSHIP = TYPE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__MEMBER = TYPE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__MEMBERSHIP = TYPE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_IMPORT = TYPE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_MEMBER = TYPE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_MEMBERSHIP = TYPE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__IS_ABSTRACT = TYPE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__IS_CONJUGATED = TYPE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__IS_SUFFICIENT = TYPE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__DIFFERENCING_TYPE = TYPE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__DIRECTED_FEATURE = TYPE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__END_FEATURE = TYPE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__FEATURE = TYPE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__FEATURE_MEMBERSHIP = TYPE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__INHERITED_FEATURE = TYPE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__INHERITED_MEMBERSHIP = TYPE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__INPUT = TYPE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__INTERSECTING_TYPE = TYPE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__MULTIPLICITY = TYPE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OUTPUT = TYPE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_CONJUGATOR = TYPE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_DIFFERENCING = TYPE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_DISJOINING = TYPE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_END_FEATURE = TYPE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_FEATURE = TYPE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_FEATURE_MEMBERSHIP = TYPE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_INTERSECTING = TYPE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_SPECIALIZATION = TYPE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_UNIONING = TYPE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__UNIONING_TYPE = TYPE__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int CLASSIFIER__OWNED_SUBCLASSIFICATION = TYPE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Classifier' class. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_FEATURE_COUNT = TYPE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___EFFECTIVE_NAME = TYPE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___EFFECTIVE_SHORT_NAME = TYPE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___ESCAPED_NAME = TYPE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___LIBRARY_NAMESPACE = TYPE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___PATH = TYPE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___IMPORTED_MEMBERSHIPS__ELIST = TYPE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = TYPE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___NAMES_OF__ELEMENT = TYPE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___QUALIFICATION_OF__STRING = TYPE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___RESOLVE__STRING = TYPE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___RESOLVE_GLOBAL__STRING = TYPE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___RESOLVE_LOCAL__STRING = TYPE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___RESOLVE_VISIBLE__STRING = TYPE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___UNQUALIFIED_NAME_OF__STRING = TYPE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___VISIBILITY_OF__MEMBERSHIP = TYPE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = TYPE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = TYPE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___ALL_SUPERTYPES = TYPE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___DIRECTION_OF__FEATURE = TYPE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = TYPE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = TYPE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = TYPE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___IS_COMPATIBLE_WITH__TYPE = TYPE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___MULTIPLICITIES = TYPE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = TYPE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___REMOVE_REDEFINED_FEATURES__ELIST = TYPE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___SPECIALIZES__TYPE = TYPE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___SPECIALIZES_FROM_LIBRARY__STRING = TYPE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CLASSIFIER___SUPERTYPES__BOOLEAN = TYPE___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Classifier' class. + * + * + * @generated + * @ordered + */ + int CLASSIFIER_OPERATION_COUNT = TYPE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.DefinitionImpl Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDefinition() + * @generated + */ + int DEFINITION = 44; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int DEFINITION__ALIAS_IDS = CLASSIFIER__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__DECLARED_NAME = CLASSIFIER__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__DECLARED_SHORT_NAME = CLASSIFIER__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__ELEMENT_ID = CLASSIFIER__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__IS_IMPLIED_INCLUDED = CLASSIFIER__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__IS_LIBRARY_ELEMENT = CLASSIFIER__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__SHORT_NAME = CLASSIFIER__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__DOCUMENTATION = CLASSIFIER__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_ANNOTATION = CLASSIFIER__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_RELATIONSHIP = CLASSIFIER__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNING_MEMBERSHIP = CLASSIFIER__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNING_NAMESPACE = CLASSIFIER__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNING_RELATIONSHIP = CLASSIFIER__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__TEXTUAL_REPRESENTATION = CLASSIFIER__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__IMPORTED_MEMBERSHIP = CLASSIFIER__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__MEMBERSHIP = CLASSIFIER__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_IMPORT = CLASSIFIER__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_MEMBERSHIP = CLASSIFIER__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__IS_CONJUGATED = CLASSIFIER__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__IS_SUFFICIENT = CLASSIFIER__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__DIFFERENCING_TYPE = CLASSIFIER__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__DIRECTED_FEATURE = CLASSIFIER__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__END_FEATURE = CLASSIFIER__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__FEATURE_MEMBERSHIP = CLASSIFIER__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__INHERITED_FEATURE = CLASSIFIER__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__INHERITED_MEMBERSHIP = CLASSIFIER__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__INPUT = CLASSIFIER__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__INTERSECTING_TYPE = CLASSIFIER__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int DEFINITION__MULTIPLICITY = CLASSIFIER__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OUTPUT = CLASSIFIER__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_CONJUGATOR = CLASSIFIER__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_DIFFERENCING = CLASSIFIER__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_DISJOINING = CLASSIFIER__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_END_FEATURE = CLASSIFIER__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_FEATURE = CLASSIFIER__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_FEATURE_MEMBERSHIP = CLASSIFIER__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_INTERSECTING = CLASSIFIER__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_SPECIALIZATION = CLASSIFIER__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_UNIONING = CLASSIFIER__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__UNIONING_TYPE = CLASSIFIER__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_SUBCLASSIFICATION = CLASSIFIER__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int DEFINITION__IS_VARIATION = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__DIRECTED_USAGE = CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_ACTION = CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_ALLOCATION = CLASSIFIER_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_ANALYSIS_CASE = CLASSIFIER_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_ATTRIBUTE = CLASSIFIER_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_CALCULATION = CLASSIFIER_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_CASE = CLASSIFIER_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_CONCERN = CLASSIFIER_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_CONNECTION = CLASSIFIER_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_CONSTRAINT = CLASSIFIER_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_ENUMERATION = CLASSIFIER_FEATURE_COUNT + 11; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_FLOW = CLASSIFIER_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_INTERFACE = CLASSIFIER_FEATURE_COUNT + 13; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_ITEM = CLASSIFIER_FEATURE_COUNT + 14; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_METADATA = CLASSIFIER_FEATURE_COUNT + 15; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_OCCURRENCE = CLASSIFIER_FEATURE_COUNT + 16; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_PART = CLASSIFIER_FEATURE_COUNT + 17; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_PORT = CLASSIFIER_FEATURE_COUNT + 18; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_REFERENCE = CLASSIFIER_FEATURE_COUNT + 19; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_RENDERING = CLASSIFIER_FEATURE_COUNT + 20; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_REQUIREMENT = CLASSIFIER_FEATURE_COUNT + 21; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_STATE = CLASSIFIER_FEATURE_COUNT + 22; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_TRANSITION = CLASSIFIER_FEATURE_COUNT + 23; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_USAGE = CLASSIFIER_FEATURE_COUNT + 24; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_USE_CASE = CLASSIFIER_FEATURE_COUNT + 25; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_VERIFICATION_CASE = CLASSIFIER_FEATURE_COUNT + 26; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_VIEW = CLASSIFIER_FEATURE_COUNT + 27; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__OWNED_VIEWPOINT = CLASSIFIER_FEATURE_COUNT + 28; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__USAGE = CLASSIFIER_FEATURE_COUNT + 29; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__VARIANT = CLASSIFIER_FEATURE_COUNT + 30; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int DEFINITION__VARIANT_MEMBERSHIP = CLASSIFIER_FEATURE_COUNT + 31; + + /** + * The number of structural features of the 'Definition' class. + * + * + * @generated + * @ordered + */ + int DEFINITION_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 32; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___EFFECTIVE_NAME = CLASSIFIER___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___EFFECTIVE_SHORT_NAME = CLASSIFIER___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___ESCAPED_NAME = CLASSIFIER___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___LIBRARY_NAMESPACE = CLASSIFIER___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___PATH = CLASSIFIER___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = CLASSIFIER___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CLASSIFIER___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___NAMES_OF__ELEMENT = CLASSIFIER___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___QUALIFICATION_OF__STRING = CLASSIFIER___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___RESOLVE__STRING = CLASSIFIER___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___RESOLVE_GLOBAL__STRING = CLASSIFIER___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___RESOLVE_LOCAL__STRING = CLASSIFIER___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___RESOLVE_VISIBLE__STRING = CLASSIFIER___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___UNQUALIFIED_NAME_OF__STRING = CLASSIFIER___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___VISIBILITY_OF__MEMBERSHIP = CLASSIFIER___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CLASSIFIER___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CLASSIFIER___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___ALL_SUPERTYPES = CLASSIFIER___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___DIRECTION_OF__FEATURE = CLASSIFIER___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CLASSIFIER___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___IS_COMPATIBLE_WITH__TYPE = CLASSIFIER___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___MULTIPLICITIES = CLASSIFIER___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = CLASSIFIER___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___SPECIALIZES__TYPE = CLASSIFIER___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = CLASSIFIER___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int DEFINITION___SUPERTYPES__BOOLEAN = CLASSIFIER___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Definition' class. + * + * + * @generated + * @ordered + */ + int DEFINITION_OPERATION_COUNT = CLASSIFIER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.OccurrenceDefinitionImpl Occurrence Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.OccurrenceDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getOccurrenceDefinition() + * @generated + */ + int OCCURRENCE_DEFINITION = 112; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__ALIAS_IDS = DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__DECLARED_NAME = DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__DECLARED_SHORT_NAME = DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__ELEMENT_ID = DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__IS_IMPLIED_INCLUDED = DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__IS_LIBRARY_ELEMENT = DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__NAME = DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__QUALIFIED_NAME = DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__SHORT_NAME = DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__DOCUMENTATION = DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_ANNOTATION = DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_ELEMENT = DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_RELATIONSHIP = DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNER = DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNING_MEMBERSHIP = DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNING_NAMESPACE = DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNING_RELATIONSHIP = DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__TEXTUAL_REPRESENTATION = DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__IMPORTED_MEMBERSHIP = DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__MEMBER = DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__MEMBERSHIP = DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_IMPORT = DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_MEMBER = DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_MEMBERSHIP = DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__IS_ABSTRACT = DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__IS_CONJUGATED = DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__IS_SUFFICIENT = DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__DIFFERENCING_TYPE = DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__DIRECTED_FEATURE = DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__END_FEATURE = DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__FEATURE = DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__FEATURE_MEMBERSHIP = DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__INHERITED_FEATURE = DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__INHERITED_MEMBERSHIP = DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__INPUT = DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__INTERSECTING_TYPE = DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__MULTIPLICITY = DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OUTPUT = DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_CONJUGATOR = DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_DIFFERENCING = DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_DISJOINING = DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_END_FEATURE = DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_FEATURE = DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_FEATURE_MEMBERSHIP = DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_INTERSECTING = DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_SPECIALIZATION = DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_UNIONING = DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__UNIONING_TYPE = DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_SUBCLASSIFICATION = DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__IS_VARIATION = DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__DIRECTED_USAGE = DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_ACTION = DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_ALLOCATION = DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_ANALYSIS_CASE = DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_ATTRIBUTE = DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_CALCULATION = DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_CASE = DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_CONCERN = DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_CONNECTION = DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_CONSTRAINT = DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_ENUMERATION = DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_FLOW = DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_INTERFACE = DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_ITEM = DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_METADATA = DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_OCCURRENCE = DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_PART = DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_PORT = DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_REFERENCE = DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_RENDERING = DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_REQUIREMENT = DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_STATE = DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_TRANSITION = DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_USAGE = DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_USE_CASE = DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_VERIFICATION_CASE = DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_VIEW = DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__OWNED_VIEWPOINT = DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__USAGE = DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__VARIANT = DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__VARIANT_MEMBERSHIP = DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION__IS_INDIVIDUAL = DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Occurrence Definition' class. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION_FEATURE_COUNT = DEFINITION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___EFFECTIVE_NAME = DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___EFFECTIVE_SHORT_NAME = DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___ESCAPED_NAME = DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___LIBRARY_NAMESPACE = DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___PATH = DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___NAMES_OF__ELEMENT = DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___QUALIFICATION_OF__STRING = DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___RESOLVE__STRING = DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___RESOLVE_GLOBAL__STRING = DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___RESOLVE_LOCAL__STRING = DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___RESOLVE_VISIBLE__STRING = DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___UNQUALIFIED_NAME_OF__STRING = DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___VISIBILITY_OF__MEMBERSHIP = DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___ALL_SUPERTYPES = DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___DIRECTION_OF__FEATURE = DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___IS_COMPATIBLE_WITH__TYPE = DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___MULTIPLICITIES = DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___SPECIALIZES__TYPE = DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION___SUPERTYPES__BOOLEAN = DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Occurrence Definition' class. + * + * + * @generated + * @ordered + */ + int OCCURRENCE_DEFINITION_OPERATION_COUNT = DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ActionDefinitionImpl Action Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ActionDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getActionDefinition() + * @generated + */ + int ACTION_DEFINITION = 1; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__ALIAS_IDS = OCCURRENCE_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__DECLARED_NAME = OCCURRENCE_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__DECLARED_SHORT_NAME = OCCURRENCE_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__ELEMENT_ID = OCCURRENCE_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__IS_IMPLIED_INCLUDED = OCCURRENCE_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__IS_LIBRARY_ELEMENT = OCCURRENCE_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__NAME = OCCURRENCE_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__QUALIFIED_NAME = OCCURRENCE_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__SHORT_NAME = OCCURRENCE_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__DOCUMENTATION = OCCURRENCE_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_ANNOTATION = OCCURRENCE_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_ELEMENT = OCCURRENCE_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_RELATIONSHIP = OCCURRENCE_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNER = OCCURRENCE_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNING_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNING_NAMESPACE = OCCURRENCE_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNING_RELATIONSHIP = OCCURRENCE_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__TEXTUAL_REPRESENTATION = OCCURRENCE_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__IMPORTED_MEMBERSHIP = OCCURRENCE_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__MEMBER = OCCURRENCE_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__MEMBERSHIP = OCCURRENCE_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_IMPORT = OCCURRENCE_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_MEMBER = OCCURRENCE_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__IS_ABSTRACT = OCCURRENCE_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__IS_CONJUGATED = OCCURRENCE_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__IS_SUFFICIENT = OCCURRENCE_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__DIFFERENCING_TYPE = OCCURRENCE_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__DIRECTED_FEATURE = OCCURRENCE_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__END_FEATURE = OCCURRENCE_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__FEATURE = OCCURRENCE_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__FEATURE_MEMBERSHIP = OCCURRENCE_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__INHERITED_FEATURE = OCCURRENCE_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__INHERITED_MEMBERSHIP = OCCURRENCE_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__INPUT = OCCURRENCE_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__INTERSECTING_TYPE = OCCURRENCE_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__MULTIPLICITY = OCCURRENCE_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OUTPUT = OCCURRENCE_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_CONJUGATOR = OCCURRENCE_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_DIFFERENCING = OCCURRENCE_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_DISJOINING = OCCURRENCE_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_END_FEATURE = OCCURRENCE_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_FEATURE = OCCURRENCE_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_FEATURE_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_INTERSECTING = OCCURRENCE_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_SPECIALIZATION = OCCURRENCE_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_UNIONING = OCCURRENCE_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__UNIONING_TYPE = OCCURRENCE_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_SUBCLASSIFICATION = OCCURRENCE_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__IS_VARIATION = OCCURRENCE_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__DIRECTED_USAGE = OCCURRENCE_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_ACTION = OCCURRENCE_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_ALLOCATION = OCCURRENCE_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_ANALYSIS_CASE = OCCURRENCE_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_ATTRIBUTE = OCCURRENCE_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_CALCULATION = OCCURRENCE_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_CASE = OCCURRENCE_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_CONCERN = OCCURRENCE_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_CONNECTION = OCCURRENCE_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_CONSTRAINT = OCCURRENCE_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_ENUMERATION = OCCURRENCE_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_FLOW = OCCURRENCE_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_INTERFACE = OCCURRENCE_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_ITEM = OCCURRENCE_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_METADATA = OCCURRENCE_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_OCCURRENCE = OCCURRENCE_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_PART = OCCURRENCE_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_PORT = OCCURRENCE_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_REFERENCE = OCCURRENCE_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_RENDERING = OCCURRENCE_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_REQUIREMENT = OCCURRENCE_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_STATE = OCCURRENCE_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_TRANSITION = OCCURRENCE_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_USAGE = OCCURRENCE_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_USE_CASE = OCCURRENCE_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_VERIFICATION_CASE = OCCURRENCE_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_VIEW = OCCURRENCE_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__OWNED_VIEWPOINT = OCCURRENCE_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__USAGE = OCCURRENCE_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__VARIANT = OCCURRENCE_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__VARIANT_MEMBERSHIP = OCCURRENCE_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__IS_INDIVIDUAL = OCCURRENCE_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__PARAMETER = OCCURRENCE_DEFINITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__STEP = OCCURRENCE_DEFINITION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Action' reference list. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION__ACTION = OCCURRENCE_DEFINITION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Action Definition' class. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION_FEATURE_COUNT = OCCURRENCE_DEFINITION_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___EFFECTIVE_NAME = OCCURRENCE_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___EFFECTIVE_SHORT_NAME = OCCURRENCE_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___ESCAPED_NAME = OCCURRENCE_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___LIBRARY_NAMESPACE = OCCURRENCE_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___PATH = OCCURRENCE_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = OCCURRENCE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OCCURRENCE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___NAMES_OF__ELEMENT = OCCURRENCE_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___QUALIFICATION_OF__STRING = OCCURRENCE_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___RESOLVE__STRING = OCCURRENCE_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___RESOLVE_GLOBAL__STRING = OCCURRENCE_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___RESOLVE_LOCAL__STRING = OCCURRENCE_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___RESOLVE_VISIBLE__STRING = OCCURRENCE_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___UNQUALIFIED_NAME_OF__STRING = OCCURRENCE_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___VISIBILITY_OF__MEMBERSHIP = OCCURRENCE_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OCCURRENCE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OCCURRENCE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___ALL_SUPERTYPES = OCCURRENCE_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___DIRECTION_OF__FEATURE = OCCURRENCE_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OCCURRENCE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___IS_COMPATIBLE_WITH__TYPE = OCCURRENCE_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___MULTIPLICITIES = OCCURRENCE_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = OCCURRENCE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___SPECIALIZES__TYPE = OCCURRENCE_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = OCCURRENCE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION___SUPERTYPES__BOOLEAN = OCCURRENCE_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Action Definition' class. + * + * + * @generated + * @ordered + */ + int ACTION_DEFINITION_OPERATION_COUNT = OCCURRENCE_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.RelationshipImpl Relationship}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RelationshipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRelationship() + * @generated + */ + int RELATIONSHIP = 129; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__ALIAS_IDS = ELEMENT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__DECLARED_NAME = ELEMENT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__DECLARED_SHORT_NAME = ELEMENT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__ELEMENT_ID = ELEMENT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__IS_IMPLIED_INCLUDED = ELEMENT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__IS_LIBRARY_ELEMENT = ELEMENT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__QUALIFIED_NAME = ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__SHORT_NAME = ELEMENT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__DOCUMENTATION = ELEMENT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNED_ANNOTATION = ELEMENT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNED_RELATIONSHIP = ELEMENT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNING_MEMBERSHIP = ELEMENT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNING_NAMESPACE = ELEMENT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNING_RELATIONSHIP = ELEMENT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__TEXTUAL_REPRESENTATION = ELEMENT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__IS_IMPLIED = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNED_RELATED_ELEMENT = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__OWNING_RELATED_ELEMENT = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__RELATED_ELEMENT = ELEMENT_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__SOURCE = ELEMENT_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP__TARGET = ELEMENT_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Relationship' class. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 6; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP___EFFECTIVE_NAME = ELEMENT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP___EFFECTIVE_SHORT_NAME = ELEMENT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP___ESCAPED_NAME = ELEMENT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP___LIBRARY_NAMESPACE = ELEMENT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP___PATH = ELEMENT___PATH; + + /** + * The number of operations of the 'Relationship' class. + * + * + * @generated + * @ordered + */ + int RELATIONSHIP_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MembershipImpl Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMembership() + * @generated + */ + int MEMBERSHIP = 96; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__MEMBER_ELEMENT_ID = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__MEMBER_NAME = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__MEMBER_SHORT_NAME = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__VISIBILITY = RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__MEMBER_ELEMENT = RELATIONSHIP_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = RELATIONSHIP_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Membership' class. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 6; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP___PATH = RELATIONSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Membership' class. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.OwningMembershipImpl Owning Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.OwningMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getOwningMembership() + * @generated + */ + int OWNING_MEMBERSHIP = 115; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__ALIAS_IDS = MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__DECLARED_NAME = MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__DECLARED_SHORT_NAME = MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__ELEMENT_ID = MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__IS_IMPLIED_INCLUDED = MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__IS_LIBRARY_ELEMENT = MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__NAME = MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__QUALIFIED_NAME = MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__SHORT_NAME = MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__DOCUMENTATION = MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNED_ANNOTATION = MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNED_ELEMENT = MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNED_RELATIONSHIP = MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNER = MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNING_MEMBERSHIP = MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNING_NAMESPACE = MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNING_RELATIONSHIP = MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__TEXTUAL_REPRESENTATION = MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__IS_IMPLIED = MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNED_RELATED_ELEMENT = MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNING_RELATED_ELEMENT = MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__RELATED_ELEMENT = MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__SOURCE = MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__TARGET = MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__MEMBER_ELEMENT_ID = MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__MEMBER_NAME = MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__MEMBER_SHORT_NAME = MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__VISIBILITY = MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__MEMBER_ELEMENT = MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNED_MEMBER_NAME = MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = MEMBERSHIP_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT = MEMBERSHIP_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Owning Membership' class. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP_FEATURE_COUNT = MEMBERSHIP_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP___EFFECTIVE_NAME = MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP___EFFECTIVE_SHORT_NAME = MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP___ESCAPED_NAME = MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP___LIBRARY_NAMESPACE = MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP___PATH = MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Owning Membership' class. + * + * + * @generated + * @ordered + */ + int OWNING_MEMBERSHIP_OPERATION_COUNT = MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FeatureMembershipImpl Feature Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureMembership() + * @generated + */ + int FEATURE_MEMBERSHIP = 62; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__ALIAS_IDS = OWNING_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__DECLARED_NAME = OWNING_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME = OWNING_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__ELEMENT_ID = OWNING_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED = OWNING_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT = OWNING_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__NAME = OWNING_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__QUALIFIED_NAME = OWNING_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__SHORT_NAME = OWNING_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__DOCUMENTATION = OWNING_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNED_ANNOTATION = OWNING_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNED_ELEMENT = OWNING_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP = OWNING_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNER = OWNING_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP = OWNING_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNING_NAMESPACE = OWNING_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP = OWNING_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION = OWNING_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__IS_IMPLIED = OWNING_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT = OWNING_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT = OWNING_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__RELATED_ELEMENT = OWNING_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__SOURCE = OWNING_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__TARGET = OWNING_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID = OWNING_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__MEMBER_NAME = OWNING_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME = OWNING_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__VISIBILITY = OWNING_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__MEMBER_ELEMENT = OWNING_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = OWNING_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME = OWNING_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = OWNING_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT = OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE = OWNING_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP__OWNING_TYPE = OWNING_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Feature Membership' class. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP_FEATURE_COUNT = OWNING_MEMBERSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP___EFFECTIVE_NAME = OWNING_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME = OWNING_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP___ESCAPED_NAME = OWNING_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE = OWNING_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP___PATH = OWNING_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = OWNING_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Feature Membership' class. + * + * + * @generated + * @ordered + */ + int FEATURE_MEMBERSHIP_OPERATION_COUNT = OWNING_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ParameterMembershipImpl Parameter Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ParameterMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getParameterMembership() + * @generated + */ + int PARAMETER_MEMBERSHIP = 117; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__ALIAS_IDS = FEATURE_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__DECLARED_NAME = FEATURE_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__DECLARED_SHORT_NAME = FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__ELEMENT_ID = FEATURE_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__IS_IMPLIED_INCLUDED = FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__IS_LIBRARY_ELEMENT = FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__NAME = FEATURE_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__QUALIFIED_NAME = FEATURE_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__SHORT_NAME = FEATURE_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__DOCUMENTATION = FEATURE_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNED_ANNOTATION = FEATURE_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNED_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNER = FEATURE_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNING_MEMBERSHIP = FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNING_NAMESPACE = FEATURE_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNING_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__TEXTUAL_REPRESENTATION = FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__IS_IMPLIED = FEATURE_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNED_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNING_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__RELATED_ELEMENT = FEATURE_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__SOURCE = FEATURE_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__TARGET = FEATURE_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__MEMBER_NAME = FEATURE_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__VISIBILITY = FEATURE_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__MEMBER_ELEMENT = FEATURE_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNED_MEMBER_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNED_MEMBER_FEATURE = FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNING_TYPE = FEATURE_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Owned Member Parameter' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP__OWNED_MEMBER_PARAMETER = FEATURE_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Parameter Membership' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP_FEATURE_COUNT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP___EFFECTIVE_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP___EFFECTIVE_SHORT_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP___ESCAPED_NAME = FEATURE_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP___LIBRARY_NAMESPACE = FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP___PATH = FEATURE_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The operation id for the 'Parameter Direction' operation. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP___PARAMETER_DIRECTION = FEATURE_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Parameter Membership' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_MEMBERSHIP_OPERATION_COUNT = FEATURE_MEMBERSHIP_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ActorMembershipImpl Actor Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ActorMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getActorMembership() + * @generated + */ + int ACTOR_MEMBERSHIP = 3; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__ALIAS_IDS = PARAMETER_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__DECLARED_NAME = PARAMETER_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__DECLARED_SHORT_NAME = PARAMETER_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__ELEMENT_ID = PARAMETER_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__IS_IMPLIED_INCLUDED = PARAMETER_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__IS_LIBRARY_ELEMENT = PARAMETER_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__NAME = PARAMETER_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__QUALIFIED_NAME = PARAMETER_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__SHORT_NAME = PARAMETER_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__DOCUMENTATION = PARAMETER_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_ANNOTATION = PARAMETER_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_RELATIONSHIP = PARAMETER_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNER = PARAMETER_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNING_MEMBERSHIP = PARAMETER_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNING_NAMESPACE = PARAMETER_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNING_RELATIONSHIP = PARAMETER_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__TEXTUAL_REPRESENTATION = PARAMETER_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__IS_IMPLIED = PARAMETER_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_RELATED_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNING_RELATED_ELEMENT = PARAMETER_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__RELATED_ELEMENT = PARAMETER_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__SOURCE = PARAMETER_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__TARGET = PARAMETER_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__MEMBER_ELEMENT_ID = PARAMETER_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__MEMBER_NAME = PARAMETER_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__MEMBER_SHORT_NAME = PARAMETER_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__VISIBILITY = PARAMETER_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__MEMBER_ELEMENT = PARAMETER_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = PARAMETER_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_MEMBER_NAME = PARAMETER_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = PARAMETER_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_MEMBER_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_MEMBER_FEATURE = PARAMETER_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNING_TYPE = PARAMETER_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Owned Member Parameter' reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_MEMBER_PARAMETER = PARAMETER_MEMBERSHIP__OWNED_MEMBER_PARAMETER; + + /** + * The feature id for the 'Owned Actor Parameter' reference. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP__OWNED_ACTOR_PARAMETER = PARAMETER_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Actor Membership' class. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP_FEATURE_COUNT = PARAMETER_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP___EFFECTIVE_NAME = PARAMETER_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP___EFFECTIVE_SHORT_NAME = PARAMETER_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP___ESCAPED_NAME = PARAMETER_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP___LIBRARY_NAMESPACE = PARAMETER_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP___PATH = PARAMETER_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = PARAMETER_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The operation id for the 'Parameter Direction' operation. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP___PARAMETER_DIRECTION = PARAMETER_MEMBERSHIP___PARAMETER_DIRECTION; + + /** + * The number of operations of the 'Actor Membership' class. + * + * + * @generated + * @ordered + */ + int ACTOR_MEMBERSHIP_OPERATION_COUNT = PARAMETER_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ItemDefinitionImpl Item Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ItemDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getItemDefinition() + * @generated + */ + int ITEM_DEFINITION = 85; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__ALIAS_IDS = OCCURRENCE_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__DECLARED_NAME = OCCURRENCE_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__DECLARED_SHORT_NAME = OCCURRENCE_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__ELEMENT_ID = OCCURRENCE_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__IS_IMPLIED_INCLUDED = OCCURRENCE_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__IS_LIBRARY_ELEMENT = OCCURRENCE_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__NAME = OCCURRENCE_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__QUALIFIED_NAME = OCCURRENCE_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__SHORT_NAME = OCCURRENCE_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__DOCUMENTATION = OCCURRENCE_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_ANNOTATION = OCCURRENCE_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_ELEMENT = OCCURRENCE_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_RELATIONSHIP = OCCURRENCE_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNER = OCCURRENCE_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNING_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNING_NAMESPACE = OCCURRENCE_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNING_RELATIONSHIP = OCCURRENCE_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__TEXTUAL_REPRESENTATION = OCCURRENCE_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__IMPORTED_MEMBERSHIP = OCCURRENCE_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__MEMBER = OCCURRENCE_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__MEMBERSHIP = OCCURRENCE_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_IMPORT = OCCURRENCE_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_MEMBER = OCCURRENCE_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__IS_ABSTRACT = OCCURRENCE_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__IS_CONJUGATED = OCCURRENCE_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__IS_SUFFICIENT = OCCURRENCE_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__DIFFERENCING_TYPE = OCCURRENCE_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__DIRECTED_FEATURE = OCCURRENCE_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__END_FEATURE = OCCURRENCE_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__FEATURE = OCCURRENCE_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__FEATURE_MEMBERSHIP = OCCURRENCE_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__INHERITED_FEATURE = OCCURRENCE_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__INHERITED_MEMBERSHIP = OCCURRENCE_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__INPUT = OCCURRENCE_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__INTERSECTING_TYPE = OCCURRENCE_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__MULTIPLICITY = OCCURRENCE_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OUTPUT = OCCURRENCE_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_CONJUGATOR = OCCURRENCE_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_DIFFERENCING = OCCURRENCE_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_DISJOINING = OCCURRENCE_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_END_FEATURE = OCCURRENCE_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_FEATURE = OCCURRENCE_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_FEATURE_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_INTERSECTING = OCCURRENCE_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_SPECIALIZATION = OCCURRENCE_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_UNIONING = OCCURRENCE_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__UNIONING_TYPE = OCCURRENCE_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_SUBCLASSIFICATION = OCCURRENCE_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__IS_VARIATION = OCCURRENCE_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__DIRECTED_USAGE = OCCURRENCE_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_ACTION = OCCURRENCE_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_ALLOCATION = OCCURRENCE_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_ANALYSIS_CASE = OCCURRENCE_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_ATTRIBUTE = OCCURRENCE_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_CALCULATION = OCCURRENCE_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_CASE = OCCURRENCE_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_CONCERN = OCCURRENCE_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_CONNECTION = OCCURRENCE_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_CONSTRAINT = OCCURRENCE_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_ENUMERATION = OCCURRENCE_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_FLOW = OCCURRENCE_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_INTERFACE = OCCURRENCE_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_ITEM = OCCURRENCE_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_METADATA = OCCURRENCE_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_OCCURRENCE = OCCURRENCE_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_PART = OCCURRENCE_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_PORT = OCCURRENCE_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_REFERENCE = OCCURRENCE_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_RENDERING = OCCURRENCE_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_REQUIREMENT = OCCURRENCE_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_STATE = OCCURRENCE_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_TRANSITION = OCCURRENCE_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_USAGE = OCCURRENCE_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_USE_CASE = OCCURRENCE_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_VERIFICATION_CASE = OCCURRENCE_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_VIEW = OCCURRENCE_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__OWNED_VIEWPOINT = OCCURRENCE_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__USAGE = OCCURRENCE_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__VARIANT = OCCURRENCE_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__VARIANT_MEMBERSHIP = OCCURRENCE_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION__IS_INDIVIDUAL = OCCURRENCE_DEFINITION__IS_INDIVIDUAL; + + /** + * The number of structural features of the 'Item Definition' class. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION_FEATURE_COUNT = OCCURRENCE_DEFINITION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___EFFECTIVE_NAME = OCCURRENCE_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___EFFECTIVE_SHORT_NAME = OCCURRENCE_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___ESCAPED_NAME = OCCURRENCE_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___LIBRARY_NAMESPACE = OCCURRENCE_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___PATH = OCCURRENCE_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = OCCURRENCE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OCCURRENCE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___NAMES_OF__ELEMENT = OCCURRENCE_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___QUALIFICATION_OF__STRING = OCCURRENCE_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___RESOLVE__STRING = OCCURRENCE_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___RESOLVE_GLOBAL__STRING = OCCURRENCE_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___RESOLVE_LOCAL__STRING = OCCURRENCE_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___RESOLVE_VISIBLE__STRING = OCCURRENCE_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___UNQUALIFIED_NAME_OF__STRING = OCCURRENCE_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___VISIBILITY_OF__MEMBERSHIP = OCCURRENCE_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OCCURRENCE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OCCURRENCE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___ALL_SUPERTYPES = OCCURRENCE_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___DIRECTION_OF__FEATURE = OCCURRENCE_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OCCURRENCE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___IS_COMPATIBLE_WITH__TYPE = OCCURRENCE_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___MULTIPLICITIES = OCCURRENCE_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = OCCURRENCE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___SPECIALIZES__TYPE = OCCURRENCE_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = OCCURRENCE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION___SUPERTYPES__BOOLEAN = OCCURRENCE_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Item Definition' class. + * + * + * @generated + * @ordered + */ + int ITEM_DEFINITION_OPERATION_COUNT = OCCURRENCE_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.PartDefinitionImpl Part Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PartDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPartDefinition() + * @generated + */ + int PART_DEFINITION = 118; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__ALIAS_IDS = ITEM_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__DECLARED_NAME = ITEM_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__DECLARED_SHORT_NAME = ITEM_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__ELEMENT_ID = ITEM_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__IS_IMPLIED_INCLUDED = ITEM_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__IS_LIBRARY_ELEMENT = ITEM_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__NAME = ITEM_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__QUALIFIED_NAME = ITEM_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__SHORT_NAME = ITEM_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__DOCUMENTATION = ITEM_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_ANNOTATION = ITEM_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_ELEMENT = ITEM_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_RELATIONSHIP = ITEM_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNER = ITEM_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNING_MEMBERSHIP = ITEM_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNING_NAMESPACE = ITEM_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNING_RELATIONSHIP = ITEM_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__TEXTUAL_REPRESENTATION = ITEM_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__IMPORTED_MEMBERSHIP = ITEM_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__MEMBER = ITEM_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__MEMBERSHIP = ITEM_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_IMPORT = ITEM_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_MEMBER = ITEM_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_MEMBERSHIP = ITEM_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__IS_ABSTRACT = ITEM_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__IS_CONJUGATED = ITEM_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__IS_SUFFICIENT = ITEM_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__DIFFERENCING_TYPE = ITEM_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__DIRECTED_FEATURE = ITEM_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__END_FEATURE = ITEM_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__FEATURE = ITEM_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__FEATURE_MEMBERSHIP = ITEM_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__INHERITED_FEATURE = ITEM_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__INHERITED_MEMBERSHIP = ITEM_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__INPUT = ITEM_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__INTERSECTING_TYPE = ITEM_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__MULTIPLICITY = ITEM_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OUTPUT = ITEM_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_CONJUGATOR = ITEM_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_DIFFERENCING = ITEM_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_DISJOINING = ITEM_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_END_FEATURE = ITEM_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_FEATURE = ITEM_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_FEATURE_MEMBERSHIP = ITEM_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_INTERSECTING = ITEM_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_SPECIALIZATION = ITEM_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_UNIONING = ITEM_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__UNIONING_TYPE = ITEM_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_SUBCLASSIFICATION = ITEM_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__IS_VARIATION = ITEM_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__DIRECTED_USAGE = ITEM_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_ACTION = ITEM_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_ALLOCATION = ITEM_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_ANALYSIS_CASE = ITEM_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_ATTRIBUTE = ITEM_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_CALCULATION = ITEM_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_CASE = ITEM_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_CONCERN = ITEM_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_CONNECTION = ITEM_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_CONSTRAINT = ITEM_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_ENUMERATION = ITEM_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_FLOW = ITEM_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_INTERFACE = ITEM_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_ITEM = ITEM_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_METADATA = ITEM_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_OCCURRENCE = ITEM_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_PART = ITEM_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_PORT = ITEM_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_REFERENCE = ITEM_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_RENDERING = ITEM_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_REQUIREMENT = ITEM_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_STATE = ITEM_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_TRANSITION = ITEM_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_USAGE = ITEM_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_USE_CASE = ITEM_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_VERIFICATION_CASE = ITEM_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_VIEW = ITEM_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__OWNED_VIEWPOINT = ITEM_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__USAGE = ITEM_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__VARIANT = ITEM_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__VARIANT_MEMBERSHIP = ITEM_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION__IS_INDIVIDUAL = ITEM_DEFINITION__IS_INDIVIDUAL; + + /** + * The number of structural features of the 'Part Definition' class. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION_FEATURE_COUNT = ITEM_DEFINITION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___EFFECTIVE_NAME = ITEM_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___EFFECTIVE_SHORT_NAME = ITEM_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___ESCAPED_NAME = ITEM_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___LIBRARY_NAMESPACE = ITEM_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___PATH = ITEM_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = ITEM_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ITEM_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___NAMES_OF__ELEMENT = ITEM_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___QUALIFICATION_OF__STRING = ITEM_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___RESOLVE__STRING = ITEM_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___RESOLVE_GLOBAL__STRING = ITEM_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___RESOLVE_LOCAL__STRING = ITEM_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___RESOLVE_VISIBLE__STRING = ITEM_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___UNQUALIFIED_NAME_OF__STRING = ITEM_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___VISIBILITY_OF__MEMBERSHIP = ITEM_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ITEM_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ITEM_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___ALL_SUPERTYPES = ITEM_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___DIRECTION_OF__FEATURE = ITEM_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ITEM_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___IS_COMPATIBLE_WITH__TYPE = ITEM_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___MULTIPLICITIES = ITEM_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = ITEM_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___SPECIALIZES__TYPE = ITEM_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = ITEM_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION___SUPERTYPES__BOOLEAN = ITEM_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Part Definition' class. + * + * + * @generated + * @ordered + */ + int PART_DEFINITION_OPERATION_COUNT = ITEM_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl Connection Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConnectionDefinition() + * @generated + */ + int CONNECTION_DEFINITION = 33; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__ALIAS_IDS = PART_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__DECLARED_NAME = PART_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__DECLARED_SHORT_NAME = PART_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__ELEMENT_ID = PART_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__IS_IMPLIED_INCLUDED = PART_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__IS_LIBRARY_ELEMENT = PART_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__NAME = PART_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__QUALIFIED_NAME = PART_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__SHORT_NAME = PART_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__DOCUMENTATION = PART_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_ANNOTATION = PART_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_ELEMENT = PART_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_RELATIONSHIP = PART_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNER = PART_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNING_MEMBERSHIP = PART_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNING_NAMESPACE = PART_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNING_RELATIONSHIP = PART_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__TEXTUAL_REPRESENTATION = PART_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__IMPORTED_MEMBERSHIP = PART_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__MEMBER = PART_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__MEMBERSHIP = PART_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_IMPORT = PART_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_MEMBER = PART_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_MEMBERSHIP = PART_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__IS_ABSTRACT = PART_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__IS_CONJUGATED = PART_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__IS_SUFFICIENT = PART_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__DIFFERENCING_TYPE = PART_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__DIRECTED_FEATURE = PART_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__END_FEATURE = PART_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__FEATURE = PART_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__FEATURE_MEMBERSHIP = PART_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__INHERITED_FEATURE = PART_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__INHERITED_MEMBERSHIP = PART_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__INPUT = PART_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__INTERSECTING_TYPE = PART_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__MULTIPLICITY = PART_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OUTPUT = PART_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_CONJUGATOR = PART_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_DIFFERENCING = PART_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_DISJOINING = PART_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_END_FEATURE = PART_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_FEATURE = PART_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_FEATURE_MEMBERSHIP = PART_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_INTERSECTING = PART_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_SPECIALIZATION = PART_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_UNIONING = PART_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__UNIONING_TYPE = PART_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_SUBCLASSIFICATION = PART_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__IS_VARIATION = PART_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__DIRECTED_USAGE = PART_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_ACTION = PART_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_ALLOCATION = PART_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_ANALYSIS_CASE = PART_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_ATTRIBUTE = PART_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_CALCULATION = PART_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_CASE = PART_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_CONCERN = PART_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_CONNECTION = PART_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_CONSTRAINT = PART_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_ENUMERATION = PART_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_FLOW = PART_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_INTERFACE = PART_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_ITEM = PART_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_METADATA = PART_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_OCCURRENCE = PART_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_PART = PART_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_PORT = PART_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_REFERENCE = PART_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_RENDERING = PART_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_REQUIREMENT = PART_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_STATE = PART_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_TRANSITION = PART_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_USAGE = PART_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_USE_CASE = PART_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_VERIFICATION_CASE = PART_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_VIEW = PART_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_VIEWPOINT = PART_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__USAGE = PART_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__VARIANT = PART_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__VARIANT_MEMBERSHIP = PART_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__IS_INDIVIDUAL = PART_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__IS_IMPLIED = PART_DEFINITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNED_RELATED_ELEMENT = PART_DEFINITION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__OWNING_RELATED_ELEMENT = PART_DEFINITION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__RELATED_ELEMENT = PART_DEFINITION_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__SOURCE = PART_DEFINITION_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__TARGET = PART_DEFINITION_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Association End' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__ASSOCIATION_END = PART_DEFINITION_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Related Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__RELATED_TYPE = PART_DEFINITION_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Source Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__SOURCE_TYPE = PART_DEFINITION_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Target Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__TARGET_TYPE = PART_DEFINITION_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Connection End' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION__CONNECTION_END = PART_DEFINITION_FEATURE_COUNT + 10; + + /** + * The number of structural features of the 'Connection Definition' class. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION_FEATURE_COUNT = PART_DEFINITION_FEATURE_COUNT + 11; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___EFFECTIVE_NAME = PART_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___EFFECTIVE_SHORT_NAME = PART_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___ESCAPED_NAME = PART_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___LIBRARY_NAMESPACE = PART_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___PATH = PART_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = PART_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = PART_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___NAMES_OF__ELEMENT = PART_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___QUALIFICATION_OF__STRING = PART_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___RESOLVE__STRING = PART_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___RESOLVE_GLOBAL__STRING = PART_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___RESOLVE_LOCAL__STRING = PART_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___RESOLVE_VISIBLE__STRING = PART_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___UNQUALIFIED_NAME_OF__STRING = PART_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___VISIBILITY_OF__MEMBERSHIP = PART_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = PART_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = PART_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___ALL_SUPERTYPES = PART_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___DIRECTION_OF__FEATURE = PART_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = PART_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___IS_COMPATIBLE_WITH__TYPE = PART_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___MULTIPLICITIES = PART_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = PART_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___SPECIALIZES__TYPE = PART_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = PART_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION___SUPERTYPES__BOOLEAN = PART_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Connection Definition' class. + * + * + * @generated + * @ordered + */ + int CONNECTION_DEFINITION_OPERATION_COUNT = PART_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AllocationDefinitionImpl Allocation Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AllocationDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAllocationDefinition() + * @generated + */ + int ALLOCATION_DEFINITION = 4; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__ALIAS_IDS = CONNECTION_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__DECLARED_NAME = CONNECTION_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__DECLARED_SHORT_NAME = CONNECTION_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__ELEMENT_ID = CONNECTION_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__IS_IMPLIED_INCLUDED = CONNECTION_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__IS_LIBRARY_ELEMENT = CONNECTION_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__NAME = CONNECTION_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__QUALIFIED_NAME = CONNECTION_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__SHORT_NAME = CONNECTION_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__DOCUMENTATION = CONNECTION_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_ANNOTATION = CONNECTION_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_ELEMENT = CONNECTION_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_RELATIONSHIP = CONNECTION_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNER = CONNECTION_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNING_MEMBERSHIP = CONNECTION_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNING_NAMESPACE = CONNECTION_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNING_RELATIONSHIP = CONNECTION_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__TEXTUAL_REPRESENTATION = CONNECTION_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__IMPORTED_MEMBERSHIP = CONNECTION_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__MEMBER = CONNECTION_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__MEMBERSHIP = CONNECTION_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_IMPORT = CONNECTION_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_MEMBER = CONNECTION_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_MEMBERSHIP = CONNECTION_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__IS_ABSTRACT = CONNECTION_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__IS_CONJUGATED = CONNECTION_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__IS_SUFFICIENT = CONNECTION_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__DIFFERENCING_TYPE = CONNECTION_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__DIRECTED_FEATURE = CONNECTION_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__END_FEATURE = CONNECTION_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__FEATURE = CONNECTION_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__FEATURE_MEMBERSHIP = CONNECTION_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__INHERITED_FEATURE = CONNECTION_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__INHERITED_MEMBERSHIP = CONNECTION_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__INPUT = CONNECTION_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__INTERSECTING_TYPE = CONNECTION_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__MULTIPLICITY = CONNECTION_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OUTPUT = CONNECTION_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_CONJUGATOR = CONNECTION_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_DIFFERENCING = CONNECTION_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_DISJOINING = CONNECTION_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_END_FEATURE = CONNECTION_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_FEATURE = CONNECTION_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_FEATURE_MEMBERSHIP = CONNECTION_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_INTERSECTING = CONNECTION_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_SPECIALIZATION = CONNECTION_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_UNIONING = CONNECTION_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__UNIONING_TYPE = CONNECTION_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_SUBCLASSIFICATION = CONNECTION_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__IS_VARIATION = CONNECTION_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__DIRECTED_USAGE = CONNECTION_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_ACTION = CONNECTION_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_ALLOCATION = CONNECTION_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_ANALYSIS_CASE = CONNECTION_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_ATTRIBUTE = CONNECTION_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_CALCULATION = CONNECTION_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_CASE = CONNECTION_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_CONCERN = CONNECTION_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_CONNECTION = CONNECTION_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_CONSTRAINT = CONNECTION_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_ENUMERATION = CONNECTION_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_FLOW = CONNECTION_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_INTERFACE = CONNECTION_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_ITEM = CONNECTION_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_METADATA = CONNECTION_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_OCCURRENCE = CONNECTION_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_PART = CONNECTION_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_PORT = CONNECTION_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_REFERENCE = CONNECTION_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_RENDERING = CONNECTION_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_REQUIREMENT = CONNECTION_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_STATE = CONNECTION_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_TRANSITION = CONNECTION_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_USAGE = CONNECTION_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_USE_CASE = CONNECTION_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_VERIFICATION_CASE = CONNECTION_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_VIEW = CONNECTION_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_VIEWPOINT = CONNECTION_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__USAGE = CONNECTION_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__VARIANT = CONNECTION_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__VARIANT_MEMBERSHIP = CONNECTION_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__IS_INDIVIDUAL = CONNECTION_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__IS_IMPLIED = CONNECTION_DEFINITION__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNED_RELATED_ELEMENT = CONNECTION_DEFINITION__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__OWNING_RELATED_ELEMENT = CONNECTION_DEFINITION__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__RELATED_ELEMENT = CONNECTION_DEFINITION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__SOURCE = CONNECTION_DEFINITION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__TARGET = CONNECTION_DEFINITION__TARGET; + + /** + * The feature id for the 'Association End' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__ASSOCIATION_END = CONNECTION_DEFINITION__ASSOCIATION_END; + + /** + * The feature id for the 'Related Type' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__RELATED_TYPE = CONNECTION_DEFINITION__RELATED_TYPE; + + /** + * The feature id for the 'Source Type' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__SOURCE_TYPE = CONNECTION_DEFINITION__SOURCE_TYPE; + + /** + * The feature id for the 'Target Type' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__TARGET_TYPE = CONNECTION_DEFINITION__TARGET_TYPE; + + /** + * The feature id for the 'Connection End' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__CONNECTION_END = CONNECTION_DEFINITION__CONNECTION_END; + + /** + * The feature id for the 'Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION__ALLOCATION = CONNECTION_DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Allocation Definition' class. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION_FEATURE_COUNT = CONNECTION_DEFINITION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___EFFECTIVE_NAME = CONNECTION_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___EFFECTIVE_SHORT_NAME = CONNECTION_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___ESCAPED_NAME = CONNECTION_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___LIBRARY_NAMESPACE = CONNECTION_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___PATH = CONNECTION_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = CONNECTION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___NAMES_OF__ELEMENT = CONNECTION_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___QUALIFICATION_OF__STRING = CONNECTION_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___RESOLVE__STRING = CONNECTION_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___RESOLVE_GLOBAL__STRING = CONNECTION_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___RESOLVE_LOCAL__STRING = CONNECTION_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___RESOLVE_VISIBLE__STRING = CONNECTION_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___UNQUALIFIED_NAME_OF__STRING = CONNECTION_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___VISIBILITY_OF__MEMBERSHIP = CONNECTION_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___ALL_SUPERTYPES = CONNECTION_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___DIRECTION_OF__FEATURE = CONNECTION_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___IS_COMPATIBLE_WITH__TYPE = CONNECTION_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___MULTIPLICITIES = CONNECTION_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___SPECIALIZES__TYPE = CONNECTION_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION___SUPERTYPES__BOOLEAN = CONNECTION_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Allocation Definition' class. + * + * + * @generated + * @ordered + */ + int ALLOCATION_DEFINITION_OPERATION_COUNT = CONNECTION_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl Connector As Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConnectorAsUsage() + * @generated + */ + int CONNECTOR_AS_USAGE = 36; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__ALIAS_IDS = USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__DECLARED_NAME = USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__DECLARED_SHORT_NAME = USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__ELEMENT_ID = USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_IMPLIED_INCLUDED = USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_LIBRARY_ELEMENT = USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NAME = USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__QUALIFIED_NAME = USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__SHORT_NAME = USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__DOCUMENTATION = USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_ANNOTATION = USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_ELEMENT = USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_RELATIONSHIP = USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNER = USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNING_MEMBERSHIP = USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNING_NAMESPACE = USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNING_RELATIONSHIP = USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__TEXTUAL_REPRESENTATION = USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IMPORTED_MEMBERSHIP = USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__MEMBER = USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__MEMBERSHIP = USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_IMPORT = USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_MEMBER = USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_MEMBERSHIP = USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_ABSTRACT = USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_CONJUGATED = USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_SUFFICIENT = USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__DIFFERENCING_TYPE = USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__DIRECTED_FEATURE = USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__END_FEATURE = USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__FEATURE = USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__FEATURE_MEMBERSHIP = USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__INHERITED_FEATURE = USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__INHERITED_MEMBERSHIP = USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__INPUT = USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__INTERSECTING_TYPE = USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__MULTIPLICITY = USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OUTPUT = USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_CONJUGATOR = USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_DIFFERENCING = USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_DISJOINING = USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_END_FEATURE = USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_FEATURE = USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_FEATURE_MEMBERSHIP = USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_INTERSECTING = USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_SPECIALIZATION = USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_UNIONING = USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__UNIONING_TYPE = USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__DIRECTION = USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_COMPOSITE = USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_CONSTANT = USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_DERIVED = USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_END = USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_NONUNIQUE = USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_ORDERED = USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_PORTION = USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_UNIQUE = USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_VARIABLE = USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__CHAINING_FEATURE = USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__CROSS_FEATURE = USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__END_OWNING_TYPE = USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__FEATURE_TARGET = USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__FEATURING_TYPE = USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_CROSS_SUBSETTING = USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_FEATURE_CHAINING = USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_FEATURE_INVERTING = USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_REDEFINITION = USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_REFERENCE_SUBSETTING = USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_SUBSETTING = USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_TYPE_FEATURING = USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_TYPING = USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNING_FEATURE_MEMBERSHIP = USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNING_TYPE = USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__TYPE = USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_REFERENCE = USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_VARIATION = USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__MAY_TIME_VARY = USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__DEFINITION = USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__DIRECTED_USAGE = USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_ACTION = USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_ALLOCATION = USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_ANALYSIS_CASE = USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_ATTRIBUTE = USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_CALCULATION = USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_CASE = USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_CONCERN = USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_CONNECTION = USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_CONSTRAINT = USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_ENUMERATION = USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_FLOW = USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_INTERFACE = USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_ITEM = USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_METADATA = USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_OCCURRENCE = USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_PART = USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_PORT = USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_REFERENCE = USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_RENDERING = USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_REQUIREMENT = USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_STATE = USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_TRANSITION = USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_USAGE = USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_USE_CASE = USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_VERIFICATION_CASE = USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_VIEW = USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__NESTED_VIEWPOINT = USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNING_DEFINITION = USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNING_USAGE = USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__USAGE = USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__VARIANT = USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__VARIANT_MEMBERSHIP = USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__IS_IMPLIED = USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNED_RELATED_ELEMENT = USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__OWNING_RELATED_ELEMENT = USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__RELATED_ELEMENT = USAGE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__SOURCE = USAGE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__TARGET = USAGE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__ASSOCIATION = USAGE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__CONNECTOR_END = USAGE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__DEFAULT_FEATURING_TYPE = USAGE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__RELATED_FEATURE = USAGE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__SOURCE_FEATURE = USAGE_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE__TARGET_FEATURE = USAGE_FEATURE_COUNT + 11; + + /** + * The number of structural features of the 'Connector As Usage' class. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE_FEATURE_COUNT = USAGE_FEATURE_COUNT + 12; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___EFFECTIVE_NAME = USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___EFFECTIVE_SHORT_NAME = USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___ESCAPED_NAME = USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___LIBRARY_NAMESPACE = USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___PATH = USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___IMPORTED_MEMBERSHIPS__ELIST = USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___NAMES_OF__ELEMENT = USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___QUALIFICATION_OF__STRING = USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___RESOLVE__STRING = USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___RESOLVE_GLOBAL__STRING = USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___RESOLVE_LOCAL__STRING = USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___RESOLVE_VISIBLE__STRING = USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___UNQUALIFIED_NAME_OF__STRING = USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___VISIBILITY_OF__MEMBERSHIP = USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___ALL_SUPERTYPES = USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___DIRECTION_OF__FEATURE = USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___IS_COMPATIBLE_WITH__TYPE = USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___MULTIPLICITIES = USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___SPECIALIZES__TYPE = USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___SUPERTYPES__BOOLEAN = USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES = USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___AS_CARTESIAN_PRODUCT = USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___CAN_ACCESS__FEATURE = USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___DIRECTION_FOR__TYPE = USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___IS_CARTESIAN_PRODUCT = USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___IS_FEATURED_WITHIN__TYPE = USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___IS_FEATURING_TYPE__TYPE = USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___IS_OWNED_CROSS_FEATURE = USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___NAMING_FEATURE = USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___OWNED_CROSS_FEATURE = USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___REDEFINES__FEATURE = USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___REDEFINES_FROM_LIBRARY__STRING = USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___TYPING_FEATURES = USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE___REFERENCED_FEATURE_TARGET = USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Connector As Usage' class. + * + * + * @generated + * @ordered + */ + int CONNECTOR_AS_USAGE_OPERATION_COUNT = USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConnectionUsageImpl Connection Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConnectionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConnectionUsage() + * @generated + */ + int CONNECTION_USAGE = 34; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__ALIAS_IDS = CONNECTOR_AS_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__DECLARED_NAME = CONNECTOR_AS_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__DECLARED_SHORT_NAME = CONNECTOR_AS_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__ELEMENT_ID = CONNECTOR_AS_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_IMPLIED_INCLUDED = CONNECTOR_AS_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_LIBRARY_ELEMENT = CONNECTOR_AS_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NAME = CONNECTOR_AS_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__QUALIFIED_NAME = CONNECTOR_AS_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__SHORT_NAME = CONNECTOR_AS_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__DOCUMENTATION = CONNECTOR_AS_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_ANNOTATION = CONNECTOR_AS_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_ELEMENT = CONNECTOR_AS_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_RELATIONSHIP = CONNECTOR_AS_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNER = CONNECTOR_AS_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNING_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNING_NAMESPACE = CONNECTOR_AS_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNING_RELATIONSHIP = CONNECTOR_AS_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__TEXTUAL_REPRESENTATION = CONNECTOR_AS_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IMPORTED_MEMBERSHIP = CONNECTOR_AS_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__MEMBER = CONNECTOR_AS_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__MEMBERSHIP = CONNECTOR_AS_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_IMPORT = CONNECTOR_AS_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_MEMBER = CONNECTOR_AS_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_ABSTRACT = CONNECTOR_AS_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_CONJUGATED = CONNECTOR_AS_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_SUFFICIENT = CONNECTOR_AS_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__DIFFERENCING_TYPE = CONNECTOR_AS_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__DIRECTED_FEATURE = CONNECTOR_AS_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__END_FEATURE = CONNECTOR_AS_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__FEATURE = CONNECTOR_AS_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__INHERITED_FEATURE = CONNECTOR_AS_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__INHERITED_MEMBERSHIP = CONNECTOR_AS_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__INPUT = CONNECTOR_AS_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__INTERSECTING_TYPE = CONNECTOR_AS_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__MULTIPLICITY = CONNECTOR_AS_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OUTPUT = CONNECTOR_AS_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_CONJUGATOR = CONNECTOR_AS_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_DIFFERENCING = CONNECTOR_AS_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_DISJOINING = CONNECTOR_AS_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_END_FEATURE = CONNECTOR_AS_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_FEATURE = CONNECTOR_AS_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_INTERSECTING = CONNECTOR_AS_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_SPECIALIZATION = CONNECTOR_AS_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_UNIONING = CONNECTOR_AS_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__UNIONING_TYPE = CONNECTOR_AS_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__DIRECTION = CONNECTOR_AS_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_COMPOSITE = CONNECTOR_AS_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_CONSTANT = CONNECTOR_AS_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_DERIVED = CONNECTOR_AS_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_END = CONNECTOR_AS_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_NONUNIQUE = CONNECTOR_AS_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_ORDERED = CONNECTOR_AS_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_PORTION = CONNECTOR_AS_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_UNIQUE = CONNECTOR_AS_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_VARIABLE = CONNECTOR_AS_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__CHAINING_FEATURE = CONNECTOR_AS_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__CROSS_FEATURE = CONNECTOR_AS_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__END_OWNING_TYPE = CONNECTOR_AS_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__FEATURE_TARGET = CONNECTOR_AS_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__FEATURING_TYPE = CONNECTOR_AS_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_CROSS_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_FEATURE_CHAINING = CONNECTOR_AS_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_FEATURE_INVERTING = CONNECTOR_AS_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_REDEFINITION = CONNECTOR_AS_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_REFERENCE_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_TYPE_FEATURING = CONNECTOR_AS_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_TYPING = CONNECTOR_AS_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNING_FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNING_TYPE = CONNECTOR_AS_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__TYPE = CONNECTOR_AS_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_REFERENCE = CONNECTOR_AS_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_VARIATION = CONNECTOR_AS_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__MAY_TIME_VARY = CONNECTOR_AS_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__DEFINITION = CONNECTOR_AS_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__DIRECTED_USAGE = CONNECTOR_AS_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_ACTION = CONNECTOR_AS_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_ALLOCATION = CONNECTOR_AS_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_ANALYSIS_CASE = CONNECTOR_AS_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_ATTRIBUTE = CONNECTOR_AS_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_CALCULATION = CONNECTOR_AS_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_CASE = CONNECTOR_AS_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_CONCERN = CONNECTOR_AS_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_CONNECTION = CONNECTOR_AS_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_CONSTRAINT = CONNECTOR_AS_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_ENUMERATION = CONNECTOR_AS_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_FLOW = CONNECTOR_AS_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_INTERFACE = CONNECTOR_AS_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_ITEM = CONNECTOR_AS_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_METADATA = CONNECTOR_AS_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_OCCURRENCE = CONNECTOR_AS_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_PART = CONNECTOR_AS_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_PORT = CONNECTOR_AS_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_REFERENCE = CONNECTOR_AS_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_RENDERING = CONNECTOR_AS_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_REQUIREMENT = CONNECTOR_AS_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_STATE = CONNECTOR_AS_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_TRANSITION = CONNECTOR_AS_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_USAGE = CONNECTOR_AS_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_USE_CASE = CONNECTOR_AS_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_VERIFICATION_CASE = CONNECTOR_AS_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_VIEW = CONNECTOR_AS_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__NESTED_VIEWPOINT = CONNECTOR_AS_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNING_DEFINITION = CONNECTOR_AS_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNING_USAGE = CONNECTOR_AS_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__USAGE = CONNECTOR_AS_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__VARIANT = CONNECTOR_AS_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__VARIANT_MEMBERSHIP = CONNECTOR_AS_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_IMPLIED = CONNECTOR_AS_USAGE__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNED_RELATED_ELEMENT = CONNECTOR_AS_USAGE__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OWNING_RELATED_ELEMENT = CONNECTOR_AS_USAGE__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__RELATED_ELEMENT = CONNECTOR_AS_USAGE__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__SOURCE = CONNECTOR_AS_USAGE__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__TARGET = CONNECTOR_AS_USAGE__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__ASSOCIATION = CONNECTOR_AS_USAGE__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__CONNECTOR_END = CONNECTOR_AS_USAGE__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__DEFAULT_FEATURING_TYPE = CONNECTOR_AS_USAGE__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__RELATED_FEATURE = CONNECTOR_AS_USAGE__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__SOURCE_FEATURE = CONNECTOR_AS_USAGE__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__TARGET_FEATURE = CONNECTOR_AS_USAGE__TARGET_FEATURE; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__IS_INDIVIDUAL = CONNECTOR_AS_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__PORTION_KIND = CONNECTOR_AS_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__INDIVIDUAL_DEFINITION = CONNECTOR_AS_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__OCCURRENCE_DEFINITION = CONNECTOR_AS_USAGE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Item Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__ITEM_DEFINITION = CONNECTOR_AS_USAGE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Part Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__PART_DEFINITION = CONNECTOR_AS_USAGE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Connection Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE__CONNECTION_DEFINITION = CONNECTOR_AS_USAGE_FEATURE_COUNT + 6; + + /** + * The number of structural features of the 'Connection Usage' class. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE_FEATURE_COUNT = CONNECTOR_AS_USAGE_FEATURE_COUNT + 7; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___EFFECTIVE_NAME = CONNECTOR_AS_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___EFFECTIVE_SHORT_NAME = CONNECTOR_AS_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___ESCAPED_NAME = CONNECTOR_AS_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___LIBRARY_NAMESPACE = CONNECTOR_AS_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___PATH = CONNECTOR_AS_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CONNECTOR_AS_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTOR_AS_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___NAMES_OF__ELEMENT = CONNECTOR_AS_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___QUALIFICATION_OF__STRING = CONNECTOR_AS_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___RESOLVE__STRING = CONNECTOR_AS_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___RESOLVE_GLOBAL__STRING = CONNECTOR_AS_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___RESOLVE_LOCAL__STRING = CONNECTOR_AS_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___RESOLVE_VISIBLE__STRING = CONNECTOR_AS_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___UNQUALIFIED_NAME_OF__STRING = CONNECTOR_AS_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___VISIBILITY_OF__MEMBERSHIP = CONNECTOR_AS_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTOR_AS_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___ALL_SUPERTYPES = CONNECTOR_AS_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___DIRECTION_OF__FEATURE = CONNECTOR_AS_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTOR_AS_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___IS_COMPATIBLE_WITH__TYPE = CONNECTOR_AS_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___MULTIPLICITIES = CONNECTOR_AS_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTOR_AS_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___SPECIALIZES__TYPE = CONNECTOR_AS_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTOR_AS_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___SUPERTYPES__BOOLEAN = CONNECTOR_AS_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___ALL_REDEFINED_FEATURES = CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___AS_CARTESIAN_PRODUCT = CONNECTOR_AS_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___CAN_ACCESS__FEATURE = CONNECTOR_AS_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___DIRECTION_FOR__TYPE = CONNECTOR_AS_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___IS_CARTESIAN_PRODUCT = CONNECTOR_AS_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___IS_FEATURED_WITHIN__TYPE = CONNECTOR_AS_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___IS_FEATURING_TYPE__TYPE = CONNECTOR_AS_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___IS_OWNED_CROSS_FEATURE = CONNECTOR_AS_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___NAMING_FEATURE = CONNECTOR_AS_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___OWNED_CROSS_FEATURE = CONNECTOR_AS_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___REDEFINES__FEATURE = CONNECTOR_AS_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = CONNECTOR_AS_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CONNECTOR_AS_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___TYPING_FEATURES = CONNECTOR_AS_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE___REFERENCED_FEATURE_TARGET = CONNECTOR_AS_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Connection Usage' class. + * + * + * @generated + * @ordered + */ + int CONNECTION_USAGE_OPERATION_COUNT = CONNECTOR_AS_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AllocationUsageImpl Allocation Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AllocationUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAllocationUsage() + * @generated + */ + int ALLOCATION_USAGE = 5; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__ALIAS_IDS = CONNECTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__DECLARED_NAME = CONNECTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__DECLARED_SHORT_NAME = CONNECTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__ELEMENT_ID = CONNECTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_IMPLIED_INCLUDED = CONNECTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_LIBRARY_ELEMENT = CONNECTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NAME = CONNECTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__QUALIFIED_NAME = CONNECTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__SHORT_NAME = CONNECTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__DOCUMENTATION = CONNECTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_ANNOTATION = CONNECTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_ELEMENT = CONNECTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_RELATIONSHIP = CONNECTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNER = CONNECTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNING_MEMBERSHIP = CONNECTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNING_NAMESPACE = CONNECTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNING_RELATIONSHIP = CONNECTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__TEXTUAL_REPRESENTATION = CONNECTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IMPORTED_MEMBERSHIP = CONNECTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__MEMBER = CONNECTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__MEMBERSHIP = CONNECTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_IMPORT = CONNECTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_MEMBER = CONNECTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_MEMBERSHIP = CONNECTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_ABSTRACT = CONNECTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_CONJUGATED = CONNECTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_SUFFICIENT = CONNECTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__DIFFERENCING_TYPE = CONNECTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__DIRECTED_FEATURE = CONNECTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__END_FEATURE = CONNECTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__FEATURE = CONNECTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__FEATURE_MEMBERSHIP = CONNECTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__INHERITED_FEATURE = CONNECTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__INHERITED_MEMBERSHIP = CONNECTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__INPUT = CONNECTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__INTERSECTING_TYPE = CONNECTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__MULTIPLICITY = CONNECTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OUTPUT = CONNECTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_CONJUGATOR = CONNECTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_DIFFERENCING = CONNECTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_DISJOINING = CONNECTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_END_FEATURE = CONNECTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_FEATURE = CONNECTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_FEATURE_MEMBERSHIP = CONNECTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_INTERSECTING = CONNECTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_SPECIALIZATION = CONNECTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_UNIONING = CONNECTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__UNIONING_TYPE = CONNECTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__DIRECTION = CONNECTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_COMPOSITE = CONNECTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_CONSTANT = CONNECTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_DERIVED = CONNECTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_END = CONNECTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_NONUNIQUE = CONNECTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_ORDERED = CONNECTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_PORTION = CONNECTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_UNIQUE = CONNECTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_VARIABLE = CONNECTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__CHAINING_FEATURE = CONNECTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__CROSS_FEATURE = CONNECTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__END_OWNING_TYPE = CONNECTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__FEATURE_TARGET = CONNECTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__FEATURING_TYPE = CONNECTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_CROSS_SUBSETTING = CONNECTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_FEATURE_CHAINING = CONNECTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_FEATURE_INVERTING = CONNECTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_REDEFINITION = CONNECTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_REFERENCE_SUBSETTING = CONNECTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_SUBSETTING = CONNECTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_TYPE_FEATURING = CONNECTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_TYPING = CONNECTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNING_FEATURE_MEMBERSHIP = CONNECTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNING_TYPE = CONNECTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__TYPE = CONNECTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_REFERENCE = CONNECTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_VARIATION = CONNECTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__MAY_TIME_VARY = CONNECTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__DEFINITION = CONNECTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__DIRECTED_USAGE = CONNECTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_ACTION = CONNECTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_ALLOCATION = CONNECTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_ANALYSIS_CASE = CONNECTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_ATTRIBUTE = CONNECTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_CALCULATION = CONNECTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_CASE = CONNECTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_CONCERN = CONNECTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_CONNECTION = CONNECTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_CONSTRAINT = CONNECTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_ENUMERATION = CONNECTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_FLOW = CONNECTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_INTERFACE = CONNECTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_ITEM = CONNECTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_METADATA = CONNECTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_OCCURRENCE = CONNECTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_PART = CONNECTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_PORT = CONNECTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_REFERENCE = CONNECTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_RENDERING = CONNECTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_REQUIREMENT = CONNECTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_STATE = CONNECTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_TRANSITION = CONNECTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_USAGE = CONNECTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_USE_CASE = CONNECTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_VERIFICATION_CASE = CONNECTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_VIEW = CONNECTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__NESTED_VIEWPOINT = CONNECTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNING_DEFINITION = CONNECTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNING_USAGE = CONNECTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__USAGE = CONNECTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__VARIANT = CONNECTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__VARIANT_MEMBERSHIP = CONNECTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_IMPLIED = CONNECTION_USAGE__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNED_RELATED_ELEMENT = CONNECTION_USAGE__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OWNING_RELATED_ELEMENT = CONNECTION_USAGE__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__RELATED_ELEMENT = CONNECTION_USAGE__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__SOURCE = CONNECTION_USAGE__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__TARGET = CONNECTION_USAGE__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__ASSOCIATION = CONNECTION_USAGE__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__CONNECTOR_END = CONNECTION_USAGE__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__DEFAULT_FEATURING_TYPE = CONNECTION_USAGE__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__RELATED_FEATURE = CONNECTION_USAGE__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__SOURCE_FEATURE = CONNECTION_USAGE__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__TARGET_FEATURE = CONNECTION_USAGE__TARGET_FEATURE; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__IS_INDIVIDUAL = CONNECTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__PORTION_KIND = CONNECTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__INDIVIDUAL_DEFINITION = CONNECTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__OCCURRENCE_DEFINITION = CONNECTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Item Definition' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__ITEM_DEFINITION = CONNECTION_USAGE__ITEM_DEFINITION; + + /** + * The feature id for the 'Part Definition' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__PART_DEFINITION = CONNECTION_USAGE__PART_DEFINITION; + + /** + * The feature id for the 'Connection Definition' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__CONNECTION_DEFINITION = CONNECTION_USAGE__CONNECTION_DEFINITION; + + /** + * The feature id for the 'Allocation Definition' reference list. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE__ALLOCATION_DEFINITION = CONNECTION_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Allocation Usage' class. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE_FEATURE_COUNT = CONNECTION_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___EFFECTIVE_NAME = CONNECTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___EFFECTIVE_SHORT_NAME = CONNECTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___ESCAPED_NAME = CONNECTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___LIBRARY_NAMESPACE = CONNECTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___PATH = CONNECTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CONNECTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___NAMES_OF__ELEMENT = CONNECTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___QUALIFICATION_OF__STRING = CONNECTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___RESOLVE__STRING = CONNECTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___RESOLVE_GLOBAL__STRING = CONNECTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___RESOLVE_LOCAL__STRING = CONNECTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___RESOLVE_VISIBLE__STRING = CONNECTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___UNQUALIFIED_NAME_OF__STRING = CONNECTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___VISIBILITY_OF__MEMBERSHIP = CONNECTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___ALL_SUPERTYPES = CONNECTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___DIRECTION_OF__FEATURE = CONNECTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___IS_COMPATIBLE_WITH__TYPE = CONNECTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___MULTIPLICITIES = CONNECTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___SPECIALIZES__TYPE = CONNECTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___SUPERTYPES__BOOLEAN = CONNECTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___ALL_REDEFINED_FEATURES = CONNECTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___AS_CARTESIAN_PRODUCT = CONNECTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___CAN_ACCESS__FEATURE = CONNECTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___DIRECTION_FOR__TYPE = CONNECTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___IS_CARTESIAN_PRODUCT = CONNECTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___IS_FEATURED_WITHIN__TYPE = CONNECTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___IS_FEATURING_TYPE__TYPE = CONNECTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___IS_OWNED_CROSS_FEATURE = CONNECTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___NAMING_FEATURE = CONNECTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___OWNED_CROSS_FEATURE = CONNECTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___REDEFINES__FEATURE = CONNECTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___REDEFINES_FROM_LIBRARY__STRING = CONNECTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CONNECTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___TYPING_FEATURES = CONNECTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE___REFERENCED_FEATURE_TARGET = CONNECTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Allocation Usage' class. + * + * + * @generated + * @ordered + */ + int ALLOCATION_USAGE_OPERATION_COUNT = CONNECTION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.CalculationDefinitionImpl Calculation Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CalculationDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCalculationDefinition() + * @generated + */ + int CALCULATION_DEFINITION = 20; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__ALIAS_IDS = ACTION_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__DECLARED_NAME = ACTION_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__DECLARED_SHORT_NAME = ACTION_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__ELEMENT_ID = ACTION_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__IS_IMPLIED_INCLUDED = ACTION_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__IS_LIBRARY_ELEMENT = ACTION_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__NAME = ACTION_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__QUALIFIED_NAME = ACTION_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__SHORT_NAME = ACTION_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__DOCUMENTATION = ACTION_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_ANNOTATION = ACTION_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_ELEMENT = ACTION_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_RELATIONSHIP = ACTION_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNER = ACTION_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNING_MEMBERSHIP = ACTION_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNING_NAMESPACE = ACTION_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNING_RELATIONSHIP = ACTION_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__TEXTUAL_REPRESENTATION = ACTION_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__IMPORTED_MEMBERSHIP = ACTION_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__MEMBER = ACTION_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__MEMBERSHIP = ACTION_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_IMPORT = ACTION_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_MEMBER = ACTION_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_MEMBERSHIP = ACTION_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__IS_ABSTRACT = ACTION_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__IS_CONJUGATED = ACTION_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__IS_SUFFICIENT = ACTION_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__DIFFERENCING_TYPE = ACTION_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__DIRECTED_FEATURE = ACTION_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__END_FEATURE = ACTION_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__FEATURE = ACTION_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__FEATURE_MEMBERSHIP = ACTION_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__INHERITED_FEATURE = ACTION_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__INHERITED_MEMBERSHIP = ACTION_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__INPUT = ACTION_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__INTERSECTING_TYPE = ACTION_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__MULTIPLICITY = ACTION_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OUTPUT = ACTION_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_CONJUGATOR = ACTION_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_DIFFERENCING = ACTION_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_DISJOINING = ACTION_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_END_FEATURE = ACTION_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_FEATURE = ACTION_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_FEATURE_MEMBERSHIP = ACTION_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_INTERSECTING = ACTION_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_SPECIALIZATION = ACTION_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_UNIONING = ACTION_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__UNIONING_TYPE = ACTION_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_SUBCLASSIFICATION = ACTION_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__IS_VARIATION = ACTION_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__DIRECTED_USAGE = ACTION_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_ACTION = ACTION_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_ALLOCATION = ACTION_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_ANALYSIS_CASE = ACTION_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_ATTRIBUTE = ACTION_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_CALCULATION = ACTION_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_CASE = ACTION_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_CONCERN = ACTION_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_CONNECTION = ACTION_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_CONSTRAINT = ACTION_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_ENUMERATION = ACTION_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_FLOW = ACTION_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_INTERFACE = ACTION_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_ITEM = ACTION_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_METADATA = ACTION_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_OCCURRENCE = ACTION_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_PART = ACTION_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_PORT = ACTION_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_REFERENCE = ACTION_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_RENDERING = ACTION_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_REQUIREMENT = ACTION_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_STATE = ACTION_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_TRANSITION = ACTION_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_USAGE = ACTION_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_USE_CASE = ACTION_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_VERIFICATION_CASE = ACTION_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_VIEW = ACTION_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__OWNED_VIEWPOINT = ACTION_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__USAGE = ACTION_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__VARIANT = ACTION_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__VARIANT_MEMBERSHIP = ACTION_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__IS_INDIVIDUAL = ACTION_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__PARAMETER = ACTION_DEFINITION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__STEP = ACTION_DEFINITION__STEP; + + /** + * The feature id for the 'Action' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__ACTION = ACTION_DEFINITION__ACTION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__IS_MODEL_LEVEL_EVALUABLE = ACTION_DEFINITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__EXPRESSION = ACTION_DEFINITION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__RESULT = ACTION_DEFINITION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION__CALCULATION = ACTION_DEFINITION_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Calculation Definition' class. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION_FEATURE_COUNT = ACTION_DEFINITION_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___EFFECTIVE_NAME = ACTION_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___EFFECTIVE_SHORT_NAME = ACTION_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___ESCAPED_NAME = ACTION_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___LIBRARY_NAMESPACE = ACTION_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___PATH = ACTION_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = ACTION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___NAMES_OF__ELEMENT = ACTION_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___QUALIFICATION_OF__STRING = ACTION_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___RESOLVE__STRING = ACTION_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___RESOLVE_GLOBAL__STRING = ACTION_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___RESOLVE_LOCAL__STRING = ACTION_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___RESOLVE_VISIBLE__STRING = ACTION_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___UNQUALIFIED_NAME_OF__STRING = ACTION_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___VISIBILITY_OF__MEMBERSHIP = ACTION_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___ALL_SUPERTYPES = ACTION_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___DIRECTION_OF__FEATURE = ACTION_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___IS_COMPATIBLE_WITH__TYPE = ACTION_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___MULTIPLICITIES = ACTION_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___SPECIALIZES__TYPE = ACTION_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION___SUPERTYPES__BOOLEAN = ACTION_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Calculation Definition' class. + * + * + * @generated + * @ordered + */ + int CALCULATION_DEFINITION_OPERATION_COUNT = ACTION_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.CaseDefinitionImpl Case Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CaseDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCaseDefinition() + * @generated + */ + int CASE_DEFINITION = 22; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__ALIAS_IDS = CALCULATION_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__DECLARED_NAME = CALCULATION_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__DECLARED_SHORT_NAME = CALCULATION_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__ELEMENT_ID = CALCULATION_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__IS_IMPLIED_INCLUDED = CALCULATION_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__IS_LIBRARY_ELEMENT = CALCULATION_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__NAME = CALCULATION_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__QUALIFIED_NAME = CALCULATION_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__SHORT_NAME = CALCULATION_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__DOCUMENTATION = CALCULATION_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_ANNOTATION = CALCULATION_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_ELEMENT = CALCULATION_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_RELATIONSHIP = CALCULATION_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNER = CALCULATION_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNING_MEMBERSHIP = CALCULATION_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNING_NAMESPACE = CALCULATION_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNING_RELATIONSHIP = CALCULATION_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__TEXTUAL_REPRESENTATION = CALCULATION_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__IMPORTED_MEMBERSHIP = CALCULATION_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__MEMBER = CALCULATION_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__MEMBERSHIP = CALCULATION_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_IMPORT = CALCULATION_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_MEMBER = CALCULATION_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_MEMBERSHIP = CALCULATION_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__IS_ABSTRACT = CALCULATION_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__IS_CONJUGATED = CALCULATION_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__IS_SUFFICIENT = CALCULATION_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__DIFFERENCING_TYPE = CALCULATION_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__DIRECTED_FEATURE = CALCULATION_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__END_FEATURE = CALCULATION_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__FEATURE = CALCULATION_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__FEATURE_MEMBERSHIP = CALCULATION_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__INHERITED_FEATURE = CALCULATION_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__INHERITED_MEMBERSHIP = CALCULATION_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__INPUT = CALCULATION_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__INTERSECTING_TYPE = CALCULATION_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__MULTIPLICITY = CALCULATION_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OUTPUT = CALCULATION_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_CONJUGATOR = CALCULATION_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_DIFFERENCING = CALCULATION_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_DISJOINING = CALCULATION_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_END_FEATURE = CALCULATION_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_FEATURE = CALCULATION_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_FEATURE_MEMBERSHIP = CALCULATION_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_INTERSECTING = CALCULATION_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_SPECIALIZATION = CALCULATION_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_UNIONING = CALCULATION_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__UNIONING_TYPE = CALCULATION_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_SUBCLASSIFICATION = CALCULATION_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__IS_VARIATION = CALCULATION_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__DIRECTED_USAGE = CALCULATION_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_ACTION = CALCULATION_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_ALLOCATION = CALCULATION_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_ANALYSIS_CASE = CALCULATION_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_ATTRIBUTE = CALCULATION_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_CALCULATION = CALCULATION_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_CASE = CALCULATION_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_CONCERN = CALCULATION_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_CONNECTION = CALCULATION_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_CONSTRAINT = CALCULATION_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_ENUMERATION = CALCULATION_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_FLOW = CALCULATION_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_INTERFACE = CALCULATION_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_ITEM = CALCULATION_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_METADATA = CALCULATION_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_OCCURRENCE = CALCULATION_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_PART = CALCULATION_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_PORT = CALCULATION_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_REFERENCE = CALCULATION_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_RENDERING = CALCULATION_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_REQUIREMENT = CALCULATION_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_STATE = CALCULATION_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_TRANSITION = CALCULATION_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_USAGE = CALCULATION_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_USE_CASE = CALCULATION_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_VERIFICATION_CASE = CALCULATION_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_VIEW = CALCULATION_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OWNED_VIEWPOINT = CALCULATION_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__USAGE = CALCULATION_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__VARIANT = CALCULATION_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__VARIANT_MEMBERSHIP = CALCULATION_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__IS_INDIVIDUAL = CALCULATION_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__PARAMETER = CALCULATION_DEFINITION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__STEP = CALCULATION_DEFINITION__STEP; + + /** + * The feature id for the 'Action' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__ACTION = CALCULATION_DEFINITION__ACTION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__IS_MODEL_LEVEL_EVALUABLE = CALCULATION_DEFINITION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__EXPRESSION = CALCULATION_DEFINITION__EXPRESSION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__RESULT = CALCULATION_DEFINITION__RESULT; + + /** + * The feature id for the 'Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__CALCULATION = CALCULATION_DEFINITION__CALCULATION; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__ACTOR_PARAMETER = CALCULATION_DEFINITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Objective Requirement' reference. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__OBJECTIVE_REQUIREMENT = CALCULATION_DEFINITION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION__SUBJECT_PARAMETER = CALCULATION_DEFINITION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Case Definition' class. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION_FEATURE_COUNT = CALCULATION_DEFINITION_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___EFFECTIVE_NAME = CALCULATION_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___EFFECTIVE_SHORT_NAME = CALCULATION_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___ESCAPED_NAME = CALCULATION_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___LIBRARY_NAMESPACE = CALCULATION_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___PATH = CALCULATION_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = CALCULATION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CALCULATION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___NAMES_OF__ELEMENT = CALCULATION_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___QUALIFICATION_OF__STRING = CALCULATION_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___RESOLVE__STRING = CALCULATION_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___RESOLVE_GLOBAL__STRING = CALCULATION_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___RESOLVE_LOCAL__STRING = CALCULATION_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___RESOLVE_VISIBLE__STRING = CALCULATION_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___UNQUALIFIED_NAME_OF__STRING = CALCULATION_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___VISIBILITY_OF__MEMBERSHIP = CALCULATION_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CALCULATION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CALCULATION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___ALL_SUPERTYPES = CALCULATION_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___DIRECTION_OF__FEATURE = CALCULATION_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CALCULATION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CALCULATION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CALCULATION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___IS_COMPATIBLE_WITH__TYPE = CALCULATION_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___MULTIPLICITIES = CALCULATION_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CALCULATION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = CALCULATION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___SPECIALIZES__TYPE = CALCULATION_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = CALCULATION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION___SUPERTYPES__BOOLEAN = CALCULATION_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Case Definition' class. + * + * + * @generated + * @ordered + */ + int CASE_DEFINITION_OPERATION_COUNT = CALCULATION_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AnalysisCaseDefinitionImpl Analysis Case Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AnalysisCaseDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAnalysisCaseDefinition() + * @generated + */ + int ANALYSIS_CASE_DEFINITION = 6; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__ALIAS_IDS = CASE_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__DECLARED_NAME = CASE_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__DECLARED_SHORT_NAME = CASE_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__ELEMENT_ID = CASE_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__IS_IMPLIED_INCLUDED = CASE_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__IS_LIBRARY_ELEMENT = CASE_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__NAME = CASE_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__QUALIFIED_NAME = CASE_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__SHORT_NAME = CASE_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__DOCUMENTATION = CASE_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_ANNOTATION = CASE_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_ELEMENT = CASE_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_RELATIONSHIP = CASE_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNER = CASE_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNING_MEMBERSHIP = CASE_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNING_NAMESPACE = CASE_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNING_RELATIONSHIP = CASE_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__TEXTUAL_REPRESENTATION = CASE_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__IMPORTED_MEMBERSHIP = CASE_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__MEMBER = CASE_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__MEMBERSHIP = CASE_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_IMPORT = CASE_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_MEMBER = CASE_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_MEMBERSHIP = CASE_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__IS_ABSTRACT = CASE_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__IS_CONJUGATED = CASE_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__IS_SUFFICIENT = CASE_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__DIFFERENCING_TYPE = CASE_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__DIRECTED_FEATURE = CASE_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__END_FEATURE = CASE_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__FEATURE = CASE_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__FEATURE_MEMBERSHIP = CASE_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__INHERITED_FEATURE = CASE_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__INHERITED_MEMBERSHIP = CASE_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__INPUT = CASE_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__INTERSECTING_TYPE = CASE_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__MULTIPLICITY = CASE_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OUTPUT = CASE_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_CONJUGATOR = CASE_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_DIFFERENCING = CASE_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_DISJOINING = CASE_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_END_FEATURE = CASE_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_FEATURE = CASE_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_FEATURE_MEMBERSHIP = CASE_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_INTERSECTING = CASE_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_SPECIALIZATION = CASE_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_UNIONING = CASE_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__UNIONING_TYPE = CASE_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_SUBCLASSIFICATION = CASE_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__IS_VARIATION = CASE_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__DIRECTED_USAGE = CASE_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_ACTION = CASE_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_ALLOCATION = CASE_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_ANALYSIS_CASE = CASE_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_ATTRIBUTE = CASE_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_CALCULATION = CASE_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_CASE = CASE_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_CONCERN = CASE_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_CONNECTION = CASE_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_CONSTRAINT = CASE_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_ENUMERATION = CASE_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_FLOW = CASE_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_INTERFACE = CASE_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_ITEM = CASE_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_METADATA = CASE_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_OCCURRENCE = CASE_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_PART = CASE_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_PORT = CASE_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_REFERENCE = CASE_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_RENDERING = CASE_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_REQUIREMENT = CASE_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_STATE = CASE_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_TRANSITION = CASE_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_USAGE = CASE_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_USE_CASE = CASE_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_VERIFICATION_CASE = CASE_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_VIEW = CASE_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OWNED_VIEWPOINT = CASE_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__USAGE = CASE_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__VARIANT = CASE_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__VARIANT_MEMBERSHIP = CASE_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__IS_INDIVIDUAL = CASE_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__PARAMETER = CASE_DEFINITION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__STEP = CASE_DEFINITION__STEP; + + /** + * The feature id for the 'Action' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__ACTION = CASE_DEFINITION__ACTION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__IS_MODEL_LEVEL_EVALUABLE = CASE_DEFINITION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__EXPRESSION = CASE_DEFINITION__EXPRESSION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__RESULT = CASE_DEFINITION__RESULT; + + /** + * The feature id for the 'Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__CALCULATION = CASE_DEFINITION__CALCULATION; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__ACTOR_PARAMETER = CASE_DEFINITION__ACTOR_PARAMETER; + + /** + * The feature id for the 'Objective Requirement' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__OBJECTIVE_REQUIREMENT = CASE_DEFINITION__OBJECTIVE_REQUIREMENT; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__SUBJECT_PARAMETER = CASE_DEFINITION__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Result Expression' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION__RESULT_EXPRESSION = CASE_DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Analysis Case Definition' class. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION_FEATURE_COUNT = CASE_DEFINITION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___EFFECTIVE_NAME = CASE_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___EFFECTIVE_SHORT_NAME = CASE_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___ESCAPED_NAME = CASE_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___LIBRARY_NAMESPACE = CASE_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___PATH = CASE_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = CASE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CASE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___NAMES_OF__ELEMENT = CASE_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___QUALIFICATION_OF__STRING = CASE_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___RESOLVE__STRING = CASE_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___RESOLVE_GLOBAL__STRING = CASE_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___RESOLVE_LOCAL__STRING = CASE_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___RESOLVE_VISIBLE__STRING = CASE_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___UNQUALIFIED_NAME_OF__STRING = CASE_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___VISIBILITY_OF__MEMBERSHIP = CASE_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CASE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CASE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___ALL_SUPERTYPES = CASE_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___DIRECTION_OF__FEATURE = CASE_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CASE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___IS_COMPATIBLE_WITH__TYPE = CASE_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___MULTIPLICITIES = CASE_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = CASE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___SPECIALIZES__TYPE = CASE_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = CASE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION___SUPERTYPES__BOOLEAN = CASE_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Analysis Case Definition' class. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_DEFINITION_OPERATION_COUNT = CASE_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.CalculationUsageImpl Calculation Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CalculationUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCalculationUsage() + * @generated + */ + int CALCULATION_USAGE = 21; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__IS_MODEL_LEVEL_EVALUABLE = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__FUNCTION = ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__RESULT = ACTION_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Calculation Definition' reference. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE__CALCULATION_DEFINITION = ACTION_USAGE_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Calculation Usage' class. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___CHECK_CONDITION__ELEMENT = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___EVALUATE__ELEMENT = ACTION_USAGE_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = ACTION_USAGE_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Calculation Usage' class. + * + * + * @generated + * @ordered + */ + int CALCULATION_USAGE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.CaseUsageImpl Case Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CaseUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCaseUsage() + * @generated + */ + int CASE_USAGE = 23; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__ALIAS_IDS = CALCULATION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__DECLARED_NAME = CALCULATION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__DECLARED_SHORT_NAME = CALCULATION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__ELEMENT_ID = CALCULATION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_IMPLIED_INCLUDED = CALCULATION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_LIBRARY_ELEMENT = CALCULATION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NAME = CALCULATION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__QUALIFIED_NAME = CALCULATION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__SHORT_NAME = CALCULATION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__DOCUMENTATION = CALCULATION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_ANNOTATION = CALCULATION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_ELEMENT = CALCULATION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_RELATIONSHIP = CALCULATION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNER = CALCULATION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNING_MEMBERSHIP = CALCULATION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNING_NAMESPACE = CALCULATION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNING_RELATIONSHIP = CALCULATION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__TEXTUAL_REPRESENTATION = CALCULATION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IMPORTED_MEMBERSHIP = CALCULATION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__MEMBER = CALCULATION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__MEMBERSHIP = CALCULATION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_IMPORT = CALCULATION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_MEMBER = CALCULATION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_MEMBERSHIP = CALCULATION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_ABSTRACT = CALCULATION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_CONJUGATED = CALCULATION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_SUFFICIENT = CALCULATION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__DIFFERENCING_TYPE = CALCULATION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__DIRECTED_FEATURE = CALCULATION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__END_FEATURE = CALCULATION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__FEATURE = CALCULATION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__FEATURE_MEMBERSHIP = CALCULATION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__INHERITED_FEATURE = CALCULATION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__INHERITED_MEMBERSHIP = CALCULATION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__INPUT = CALCULATION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__INTERSECTING_TYPE = CALCULATION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__MULTIPLICITY = CALCULATION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OUTPUT = CALCULATION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_CONJUGATOR = CALCULATION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_DIFFERENCING = CALCULATION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_DISJOINING = CALCULATION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_END_FEATURE = CALCULATION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_FEATURE = CALCULATION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_FEATURE_MEMBERSHIP = CALCULATION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_INTERSECTING = CALCULATION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_SPECIALIZATION = CALCULATION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_UNIONING = CALCULATION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__UNIONING_TYPE = CALCULATION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__DIRECTION = CALCULATION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_COMPOSITE = CALCULATION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_CONSTANT = CALCULATION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_DERIVED = CALCULATION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_END = CALCULATION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_NONUNIQUE = CALCULATION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_ORDERED = CALCULATION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_PORTION = CALCULATION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_UNIQUE = CALCULATION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_VARIABLE = CALCULATION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__CHAINING_FEATURE = CALCULATION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__CROSS_FEATURE = CALCULATION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__END_OWNING_TYPE = CALCULATION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__FEATURE_TARGET = CALCULATION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__FEATURING_TYPE = CALCULATION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_CROSS_SUBSETTING = CALCULATION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_FEATURE_CHAINING = CALCULATION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_FEATURE_INVERTING = CALCULATION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_REDEFINITION = CALCULATION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_REFERENCE_SUBSETTING = CALCULATION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_SUBSETTING = CALCULATION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_TYPE_FEATURING = CALCULATION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNED_TYPING = CALCULATION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNING_FEATURE_MEMBERSHIP = CALCULATION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNING_TYPE = CALCULATION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__TYPE = CALCULATION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_REFERENCE = CALCULATION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_VARIATION = CALCULATION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__MAY_TIME_VARY = CALCULATION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__DEFINITION = CALCULATION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__DIRECTED_USAGE = CALCULATION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_ACTION = CALCULATION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_ALLOCATION = CALCULATION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_ANALYSIS_CASE = CALCULATION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_ATTRIBUTE = CALCULATION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_CALCULATION = CALCULATION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_CASE = CALCULATION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_CONCERN = CALCULATION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_CONNECTION = CALCULATION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_CONSTRAINT = CALCULATION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_ENUMERATION = CALCULATION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_FLOW = CALCULATION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_INTERFACE = CALCULATION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_ITEM = CALCULATION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_METADATA = CALCULATION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_OCCURRENCE = CALCULATION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_PART = CALCULATION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_PORT = CALCULATION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_REFERENCE = CALCULATION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_RENDERING = CALCULATION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_REQUIREMENT = CALCULATION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_STATE = CALCULATION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_TRANSITION = CALCULATION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_USAGE = CALCULATION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_USE_CASE = CALCULATION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_VERIFICATION_CASE = CALCULATION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_VIEW = CALCULATION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__NESTED_VIEWPOINT = CALCULATION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNING_DEFINITION = CALCULATION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OWNING_USAGE = CALCULATION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__USAGE = CALCULATION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__VARIANT = CALCULATION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__VARIANT_MEMBERSHIP = CALCULATION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_INDIVIDUAL = CALCULATION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__PORTION_KIND = CALCULATION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__INDIVIDUAL_DEFINITION = CALCULATION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OCCURRENCE_DEFINITION = CALCULATION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__BEHAVIOR = CALCULATION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__PARAMETER = CALCULATION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__ACTION_DEFINITION = CALCULATION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__IS_MODEL_LEVEL_EVALUABLE = CALCULATION_USAGE__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__FUNCTION = CALCULATION_USAGE__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__RESULT = CALCULATION_USAGE__RESULT; + + /** + * The feature id for the 'Calculation Definition' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__CALCULATION_DEFINITION = CALCULATION_USAGE__CALCULATION_DEFINITION; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__ACTOR_PARAMETER = CALCULATION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Case Definition' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__CASE_DEFINITION = CALCULATION_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Objective Requirement' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__OBJECTIVE_REQUIREMENT = CALCULATION_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int CASE_USAGE__SUBJECT_PARAMETER = CALCULATION_USAGE_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Case Usage' class. + * + * + * @generated + * @ordered + */ + int CASE_USAGE_FEATURE_COUNT = CALCULATION_USAGE_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___EFFECTIVE_NAME = CALCULATION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___EFFECTIVE_SHORT_NAME = CALCULATION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___ESCAPED_NAME = CALCULATION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___LIBRARY_NAMESPACE = CALCULATION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___PATH = CALCULATION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CALCULATION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CALCULATION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___NAMES_OF__ELEMENT = CALCULATION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___QUALIFICATION_OF__STRING = CALCULATION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___RESOLVE__STRING = CALCULATION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___RESOLVE_GLOBAL__STRING = CALCULATION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___RESOLVE_LOCAL__STRING = CALCULATION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___RESOLVE_VISIBLE__STRING = CALCULATION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___UNQUALIFIED_NAME_OF__STRING = CALCULATION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___VISIBILITY_OF__MEMBERSHIP = CALCULATION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CALCULATION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CALCULATION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___ALL_SUPERTYPES = CALCULATION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___DIRECTION_OF__FEATURE = CALCULATION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CALCULATION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CALCULATION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CALCULATION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___IS_COMPATIBLE_WITH__TYPE = CALCULATION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___MULTIPLICITIES = CALCULATION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CALCULATION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CALCULATION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___SPECIALIZES__TYPE = CALCULATION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CALCULATION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___SUPERTYPES__BOOLEAN = CALCULATION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___ALL_REDEFINED_FEATURES = CALCULATION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___AS_CARTESIAN_PRODUCT = CALCULATION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___CAN_ACCESS__FEATURE = CALCULATION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___DIRECTION_FOR__TYPE = CALCULATION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___IS_CARTESIAN_PRODUCT = CALCULATION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___IS_FEATURED_WITHIN__TYPE = CALCULATION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___IS_FEATURING_TYPE__TYPE = CALCULATION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___IS_OWNED_CROSS_FEATURE = CALCULATION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___NAMING_FEATURE = CALCULATION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___OWNED_CROSS_FEATURE = CALCULATION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___REDEFINES__FEATURE = CALCULATION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___REDEFINES_FROM_LIBRARY__STRING = CALCULATION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CALCULATION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___TYPING_FEATURES = CALCULATION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___REFERENCED_FEATURE_TARGET = CALCULATION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___ARGUMENT__INT = CALCULATION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___INPUT_PARAMETER__INT = CALCULATION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___INPUT_PARAMETERS = CALCULATION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___IS_SUBACTION_USAGE = CALCULATION_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___CHECK_CONDITION__ELEMENT = CALCULATION_USAGE___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___EVALUATE__ELEMENT = CALCULATION_USAGE___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int CASE_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = CALCULATION_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Case Usage' class. + * + * + * @generated + * @ordered + */ + int CASE_USAGE_OPERATION_COUNT = CALCULATION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AnalysisCaseUsageImpl Analysis Case Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AnalysisCaseUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAnalysisCaseUsage() + * @generated + */ + int ANALYSIS_CASE_USAGE = 7; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__ALIAS_IDS = CASE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__DECLARED_NAME = CASE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__DECLARED_SHORT_NAME = CASE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__ELEMENT_ID = CASE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_IMPLIED_INCLUDED = CASE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_LIBRARY_ELEMENT = CASE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NAME = CASE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__QUALIFIED_NAME = CASE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__SHORT_NAME = CASE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__DOCUMENTATION = CASE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_ANNOTATION = CASE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_ELEMENT = CASE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_RELATIONSHIP = CASE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNER = CASE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNING_MEMBERSHIP = CASE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNING_NAMESPACE = CASE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNING_RELATIONSHIP = CASE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__TEXTUAL_REPRESENTATION = CASE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IMPORTED_MEMBERSHIP = CASE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__MEMBER = CASE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__MEMBERSHIP = CASE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_IMPORT = CASE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_MEMBER = CASE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_MEMBERSHIP = CASE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_ABSTRACT = CASE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_CONJUGATED = CASE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_SUFFICIENT = CASE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__DIFFERENCING_TYPE = CASE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__DIRECTED_FEATURE = CASE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__END_FEATURE = CASE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__FEATURE = CASE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__FEATURE_MEMBERSHIP = CASE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__INHERITED_FEATURE = CASE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__INHERITED_MEMBERSHIP = CASE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__INPUT = CASE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__INTERSECTING_TYPE = CASE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__MULTIPLICITY = CASE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OUTPUT = CASE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_CONJUGATOR = CASE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_DIFFERENCING = CASE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_DISJOINING = CASE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_END_FEATURE = CASE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_FEATURE = CASE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_FEATURE_MEMBERSHIP = CASE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_INTERSECTING = CASE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_SPECIALIZATION = CASE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_UNIONING = CASE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__UNIONING_TYPE = CASE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__DIRECTION = CASE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_COMPOSITE = CASE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_CONSTANT = CASE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_DERIVED = CASE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_END = CASE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_NONUNIQUE = CASE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_ORDERED = CASE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_PORTION = CASE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_UNIQUE = CASE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_VARIABLE = CASE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__CHAINING_FEATURE = CASE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__CROSS_FEATURE = CASE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__END_OWNING_TYPE = CASE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__FEATURE_TARGET = CASE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__FEATURING_TYPE = CASE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_CROSS_SUBSETTING = CASE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_FEATURE_CHAINING = CASE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_FEATURE_INVERTING = CASE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_REDEFINITION = CASE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_REFERENCE_SUBSETTING = CASE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_SUBSETTING = CASE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_TYPE_FEATURING = CASE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNED_TYPING = CASE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNING_FEATURE_MEMBERSHIP = CASE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNING_TYPE = CASE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__TYPE = CASE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_REFERENCE = CASE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_VARIATION = CASE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__MAY_TIME_VARY = CASE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__DEFINITION = CASE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__DIRECTED_USAGE = CASE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_ACTION = CASE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_ALLOCATION = CASE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_ANALYSIS_CASE = CASE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_ATTRIBUTE = CASE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_CALCULATION = CASE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_CASE = CASE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_CONCERN = CASE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_CONNECTION = CASE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_CONSTRAINT = CASE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_ENUMERATION = CASE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_FLOW = CASE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_INTERFACE = CASE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_ITEM = CASE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_METADATA = CASE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_OCCURRENCE = CASE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_PART = CASE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_PORT = CASE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_REFERENCE = CASE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_RENDERING = CASE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_REQUIREMENT = CASE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_STATE = CASE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_TRANSITION = CASE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_USAGE = CASE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_USE_CASE = CASE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_VERIFICATION_CASE = CASE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_VIEW = CASE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__NESTED_VIEWPOINT = CASE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNING_DEFINITION = CASE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OWNING_USAGE = CASE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__USAGE = CASE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__VARIANT = CASE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__VARIANT_MEMBERSHIP = CASE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_INDIVIDUAL = CASE_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__PORTION_KIND = CASE_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__INDIVIDUAL_DEFINITION = CASE_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OCCURRENCE_DEFINITION = CASE_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__BEHAVIOR = CASE_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__PARAMETER = CASE_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__ACTION_DEFINITION = CASE_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__IS_MODEL_LEVEL_EVALUABLE = CASE_USAGE__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__FUNCTION = CASE_USAGE__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__RESULT = CASE_USAGE__RESULT; + + /** + * The feature id for the 'Calculation Definition' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__CALCULATION_DEFINITION = CASE_USAGE__CALCULATION_DEFINITION; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__ACTOR_PARAMETER = CASE_USAGE__ACTOR_PARAMETER; + + /** + * The feature id for the 'Case Definition' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__CASE_DEFINITION = CASE_USAGE__CASE_DEFINITION; + + /** + * The feature id for the 'Objective Requirement' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__OBJECTIVE_REQUIREMENT = CASE_USAGE__OBJECTIVE_REQUIREMENT; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__SUBJECT_PARAMETER = CASE_USAGE__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Analysis Case Definition' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__ANALYSIS_CASE_DEFINITION = CASE_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Result Expression' reference. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE__RESULT_EXPRESSION = CASE_USAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Analysis Case Usage' class. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE_FEATURE_COUNT = CASE_USAGE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___EFFECTIVE_NAME = CASE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___EFFECTIVE_SHORT_NAME = CASE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___ESCAPED_NAME = CASE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___LIBRARY_NAMESPACE = CASE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___PATH = CASE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CASE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CASE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___NAMES_OF__ELEMENT = CASE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___QUALIFICATION_OF__STRING = CASE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___RESOLVE__STRING = CASE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___RESOLVE_GLOBAL__STRING = CASE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___RESOLVE_LOCAL__STRING = CASE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___RESOLVE_VISIBLE__STRING = CASE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___UNQUALIFIED_NAME_OF__STRING = CASE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___VISIBILITY_OF__MEMBERSHIP = CASE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CASE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CASE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___ALL_SUPERTYPES = CASE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___DIRECTION_OF__FEATURE = CASE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CASE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___IS_COMPATIBLE_WITH__TYPE = CASE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___MULTIPLICITIES = CASE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CASE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___SPECIALIZES__TYPE = CASE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CASE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___SUPERTYPES__BOOLEAN = CASE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___ALL_REDEFINED_FEATURES = CASE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___AS_CARTESIAN_PRODUCT = CASE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___CAN_ACCESS__FEATURE = CASE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___DIRECTION_FOR__TYPE = CASE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___IS_CARTESIAN_PRODUCT = CASE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___IS_FEATURED_WITHIN__TYPE = CASE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___IS_FEATURING_TYPE__TYPE = CASE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___IS_OWNED_CROSS_FEATURE = CASE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___NAMING_FEATURE = CASE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___OWNED_CROSS_FEATURE = CASE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___REDEFINES__FEATURE = CASE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___REDEFINES_FROM_LIBRARY__STRING = CASE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CASE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___TYPING_FEATURES = CASE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___REFERENCED_FEATURE_TARGET = CASE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___ARGUMENT__INT = CASE_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___INPUT_PARAMETER__INT = CASE_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___INPUT_PARAMETERS = CASE_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___IS_SUBACTION_USAGE = CASE_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___CHECK_CONDITION__ELEMENT = CASE_USAGE___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___EVALUATE__ELEMENT = CASE_USAGE___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = CASE_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Analysis Case Usage' class. + * + * + * @generated + * @ordered + */ + int ANALYSIS_CASE_USAGE_OPERATION_COUNT = CASE_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AnnotatingElementImpl Annotating Element}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AnnotatingElementImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAnnotatingElement() + * @generated + */ + int ANNOTATING_ELEMENT = 8; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__ALIAS_IDS = ELEMENT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__DECLARED_NAME = ELEMENT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__DECLARED_SHORT_NAME = ELEMENT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__ELEMENT_ID = ELEMENT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__IS_IMPLIED_INCLUDED = ELEMENT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__IS_LIBRARY_ELEMENT = ELEMENT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__NAME = ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__QUALIFIED_NAME = ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__SHORT_NAME = ELEMENT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__DOCUMENTATION = ELEMENT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__OWNED_ANNOTATION = ELEMENT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__OWNED_ELEMENT = ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__OWNED_RELATIONSHIP = ELEMENT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__OWNER = ELEMENT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__OWNING_MEMBERSHIP = ELEMENT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__OWNING_NAMESPACE = ELEMENT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__OWNING_RELATIONSHIP = ELEMENT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__TEXTUAL_REPRESENTATION = ELEMENT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Annotated Element' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__ANNOTATED_ELEMENT = ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__ANNOTATION = ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Annotating Relationship' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP = ELEMENT_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owning Annotating Relationship' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP = ELEMENT_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Annotating Element' class. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT___EFFECTIVE_NAME = ELEMENT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT___EFFECTIVE_SHORT_NAME = ELEMENT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT___ESCAPED_NAME = ELEMENT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT___LIBRARY_NAMESPACE = ELEMENT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT___PATH = ELEMENT___PATH; + + /** + * The number of operations of the 'Annotating Element' class. + * + * + * @generated + * @ordered + */ + int ANNOTATING_ELEMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AnnotationImpl Annotation}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AnnotationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAnnotation() + * @generated + */ + int ANNOTATION = 9; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int ANNOTATION__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ANNOTATION__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Annotated Element' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__ANNOTATED_ELEMENT = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Annotating Element' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__ANNOTATING_ELEMENT = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Annotating Element' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNED_ANNOTATING_ELEMENT = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owning Annotated Element' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNING_ANNOTATED_ELEMENT = RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Owning Annotating Element' reference. + * + * + * @generated + * @ordered + */ + int ANNOTATION__OWNING_ANNOTATING_ELEMENT = RELATIONSHIP_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Annotation' class. + * + * + * @generated + * @ordered + */ + int ANNOTATION_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 5; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ANNOTATION___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Annotation' class. + * + * + * @generated + * @ordered + */ + int ANNOTATION_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConstraintUsageImpl Constraint Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConstraintUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConstraintUsage() + * @generated + */ + int CONSTRAINT_USAGE = 38; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__ALIAS_IDS = OCCURRENCE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__DECLARED_NAME = OCCURRENCE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__DECLARED_SHORT_NAME = OCCURRENCE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__ELEMENT_ID = OCCURRENCE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_IMPLIED_INCLUDED = OCCURRENCE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_LIBRARY_ELEMENT = OCCURRENCE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NAME = OCCURRENCE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__QUALIFIED_NAME = OCCURRENCE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__SHORT_NAME = OCCURRENCE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__DOCUMENTATION = OCCURRENCE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_ANNOTATION = OCCURRENCE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_ELEMENT = OCCURRENCE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_RELATIONSHIP = OCCURRENCE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNER = OCCURRENCE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNING_MEMBERSHIP = OCCURRENCE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNING_NAMESPACE = OCCURRENCE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNING_RELATIONSHIP = OCCURRENCE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__TEXTUAL_REPRESENTATION = OCCURRENCE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IMPORTED_MEMBERSHIP = OCCURRENCE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__MEMBER = OCCURRENCE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__MEMBERSHIP = OCCURRENCE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_IMPORT = OCCURRENCE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_MEMBER = OCCURRENCE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_MEMBERSHIP = OCCURRENCE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_ABSTRACT = OCCURRENCE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_CONJUGATED = OCCURRENCE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_SUFFICIENT = OCCURRENCE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__DIFFERENCING_TYPE = OCCURRENCE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__DIRECTED_FEATURE = OCCURRENCE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__END_FEATURE = OCCURRENCE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__FEATURE = OCCURRENCE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__INHERITED_FEATURE = OCCURRENCE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__INHERITED_MEMBERSHIP = OCCURRENCE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__INPUT = OCCURRENCE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__INTERSECTING_TYPE = OCCURRENCE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__MULTIPLICITY = OCCURRENCE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OUTPUT = OCCURRENCE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_CONJUGATOR = OCCURRENCE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_DIFFERENCING = OCCURRENCE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_DISJOINING = OCCURRENCE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_END_FEATURE = OCCURRENCE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_FEATURE = OCCURRENCE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_INTERSECTING = OCCURRENCE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_SPECIALIZATION = OCCURRENCE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_UNIONING = OCCURRENCE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__UNIONING_TYPE = OCCURRENCE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__DIRECTION = OCCURRENCE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_COMPOSITE = OCCURRENCE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_CONSTANT = OCCURRENCE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_DERIVED = OCCURRENCE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_END = OCCURRENCE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_NONUNIQUE = OCCURRENCE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_ORDERED = OCCURRENCE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_PORTION = OCCURRENCE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_UNIQUE = OCCURRENCE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_VARIABLE = OCCURRENCE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__CHAINING_FEATURE = OCCURRENCE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__CROSS_FEATURE = OCCURRENCE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__END_OWNING_TYPE = OCCURRENCE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__FEATURE_TARGET = OCCURRENCE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__FEATURING_TYPE = OCCURRENCE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_CROSS_SUBSETTING = OCCURRENCE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_FEATURE_CHAINING = OCCURRENCE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_FEATURE_INVERTING = OCCURRENCE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_REDEFINITION = OCCURRENCE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_REFERENCE_SUBSETTING = OCCURRENCE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_SUBSETTING = OCCURRENCE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_TYPE_FEATURING = OCCURRENCE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNED_TYPING = OCCURRENCE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNING_FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNING_TYPE = OCCURRENCE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__TYPE = OCCURRENCE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_REFERENCE = OCCURRENCE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_VARIATION = OCCURRENCE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__MAY_TIME_VARY = OCCURRENCE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__DEFINITION = OCCURRENCE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__DIRECTED_USAGE = OCCURRENCE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_ACTION = OCCURRENCE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_ALLOCATION = OCCURRENCE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_ANALYSIS_CASE = OCCURRENCE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_ATTRIBUTE = OCCURRENCE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_CALCULATION = OCCURRENCE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_CASE = OCCURRENCE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_CONCERN = OCCURRENCE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_CONNECTION = OCCURRENCE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_CONSTRAINT = OCCURRENCE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_ENUMERATION = OCCURRENCE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_FLOW = OCCURRENCE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_INTERFACE = OCCURRENCE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_ITEM = OCCURRENCE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_METADATA = OCCURRENCE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_OCCURRENCE = OCCURRENCE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_PART = OCCURRENCE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_PORT = OCCURRENCE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_REFERENCE = OCCURRENCE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_RENDERING = OCCURRENCE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_REQUIREMENT = OCCURRENCE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_STATE = OCCURRENCE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_TRANSITION = OCCURRENCE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_USAGE = OCCURRENCE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_USE_CASE = OCCURRENCE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_VERIFICATION_CASE = OCCURRENCE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_VIEW = OCCURRENCE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__NESTED_VIEWPOINT = OCCURRENCE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNING_DEFINITION = OCCURRENCE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OWNING_USAGE = OCCURRENCE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__USAGE = OCCURRENCE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__VARIANT = OCCURRENCE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__VARIANT_MEMBERSHIP = OCCURRENCE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_INDIVIDUAL = OCCURRENCE_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__PORTION_KIND = OCCURRENCE_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__INDIVIDUAL_DEFINITION = OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__OCCURRENCE_DEFINITION = OCCURRENCE_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__BEHAVIOR = OCCURRENCE_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__PARAMETER = OCCURRENCE_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__IS_MODEL_LEVEL_EVALUABLE = OCCURRENCE_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__FUNCTION = OCCURRENCE_USAGE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__RESULT = OCCURRENCE_USAGE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Predicate' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__PREDICATE = OCCURRENCE_USAGE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Constraint Definition' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE__CONSTRAINT_DEFINITION = OCCURRENCE_USAGE_FEATURE_COUNT + 6; + + /** + * The number of structural features of the 'Constraint Usage' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE_FEATURE_COUNT = OCCURRENCE_USAGE_FEATURE_COUNT + 7; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___EFFECTIVE_NAME = OCCURRENCE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___EFFECTIVE_SHORT_NAME = OCCURRENCE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___ESCAPED_NAME = OCCURRENCE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___LIBRARY_NAMESPACE = OCCURRENCE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___PATH = OCCURRENCE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___IMPORTED_MEMBERSHIPS__ELIST = OCCURRENCE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OCCURRENCE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___NAMES_OF__ELEMENT = OCCURRENCE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___QUALIFICATION_OF__STRING = OCCURRENCE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___RESOLVE__STRING = OCCURRENCE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___RESOLVE_GLOBAL__STRING = OCCURRENCE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___RESOLVE_LOCAL__STRING = OCCURRENCE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___RESOLVE_VISIBLE__STRING = OCCURRENCE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___UNQUALIFIED_NAME_OF__STRING = OCCURRENCE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___VISIBILITY_OF__MEMBERSHIP = OCCURRENCE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OCCURRENCE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___ALL_SUPERTYPES = OCCURRENCE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___DIRECTION_OF__FEATURE = OCCURRENCE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OCCURRENCE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___IS_COMPATIBLE_WITH__TYPE = OCCURRENCE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___MULTIPLICITIES = OCCURRENCE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = OCCURRENCE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___SPECIALIZES__TYPE = OCCURRENCE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = OCCURRENCE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___SUPERTYPES__BOOLEAN = OCCURRENCE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___ALL_REDEFINED_FEATURES = OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___AS_CARTESIAN_PRODUCT = OCCURRENCE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___CAN_ACCESS__FEATURE = OCCURRENCE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___DIRECTION_FOR__TYPE = OCCURRENCE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___IS_CARTESIAN_PRODUCT = OCCURRENCE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___IS_FEATURED_WITHIN__TYPE = OCCURRENCE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___IS_FEATURING_TYPE__TYPE = OCCURRENCE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___IS_OWNED_CROSS_FEATURE = OCCURRENCE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___NAMING_FEATURE = OCCURRENCE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___OWNED_CROSS_FEATURE = OCCURRENCE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___REDEFINES__FEATURE = OCCURRENCE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___REDEFINES_FROM_LIBRARY__STRING = OCCURRENCE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = OCCURRENCE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___TYPING_FEATURES = OCCURRENCE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___REFERENCED_FEATURE_TARGET = OCCURRENCE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___CHECK_CONDITION__ELEMENT = OCCURRENCE_USAGE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___EVALUATE__ELEMENT = OCCURRENCE_USAGE_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = OCCURRENCE_USAGE_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Constraint Usage' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_USAGE_OPERATION_COUNT = OCCURRENCE_USAGE_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AssertConstraintUsageImpl Assert Constraint Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AssertConstraintUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAssertConstraintUsage() + * @generated + */ + int ASSERT_CONSTRAINT_USAGE = 10; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__ALIAS_IDS = CONSTRAINT_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__DECLARED_NAME = CONSTRAINT_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__DECLARED_SHORT_NAME = CONSTRAINT_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__ELEMENT_ID = CONSTRAINT_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_IMPLIED_INCLUDED = CONSTRAINT_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_LIBRARY_ELEMENT = CONSTRAINT_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NAME = CONSTRAINT_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__QUALIFIED_NAME = CONSTRAINT_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__SHORT_NAME = CONSTRAINT_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__DOCUMENTATION = CONSTRAINT_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_ANNOTATION = CONSTRAINT_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_ELEMENT = CONSTRAINT_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_RELATIONSHIP = CONSTRAINT_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNER = CONSTRAINT_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNING_MEMBERSHIP = CONSTRAINT_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNING_NAMESPACE = CONSTRAINT_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNING_RELATIONSHIP = CONSTRAINT_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__TEXTUAL_REPRESENTATION = CONSTRAINT_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IMPORTED_MEMBERSHIP = CONSTRAINT_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__MEMBER = CONSTRAINT_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__MEMBERSHIP = CONSTRAINT_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_IMPORT = CONSTRAINT_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_MEMBER = CONSTRAINT_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_MEMBERSHIP = CONSTRAINT_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_ABSTRACT = CONSTRAINT_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_CONJUGATED = CONSTRAINT_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_SUFFICIENT = CONSTRAINT_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__DIFFERENCING_TYPE = CONSTRAINT_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__DIRECTED_FEATURE = CONSTRAINT_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__END_FEATURE = CONSTRAINT_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__FEATURE = CONSTRAINT_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__FEATURE_MEMBERSHIP = CONSTRAINT_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__INHERITED_FEATURE = CONSTRAINT_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__INHERITED_MEMBERSHIP = CONSTRAINT_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__INPUT = CONSTRAINT_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__INTERSECTING_TYPE = CONSTRAINT_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__MULTIPLICITY = CONSTRAINT_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OUTPUT = CONSTRAINT_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_CONJUGATOR = CONSTRAINT_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_DIFFERENCING = CONSTRAINT_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_DISJOINING = CONSTRAINT_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_END_FEATURE = CONSTRAINT_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_FEATURE = CONSTRAINT_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_FEATURE_MEMBERSHIP = CONSTRAINT_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_INTERSECTING = CONSTRAINT_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_SPECIALIZATION = CONSTRAINT_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_UNIONING = CONSTRAINT_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__UNIONING_TYPE = CONSTRAINT_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__DIRECTION = CONSTRAINT_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_COMPOSITE = CONSTRAINT_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_CONSTANT = CONSTRAINT_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_DERIVED = CONSTRAINT_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_END = CONSTRAINT_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_NONUNIQUE = CONSTRAINT_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_ORDERED = CONSTRAINT_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_PORTION = CONSTRAINT_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_UNIQUE = CONSTRAINT_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_VARIABLE = CONSTRAINT_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__CHAINING_FEATURE = CONSTRAINT_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__CROSS_FEATURE = CONSTRAINT_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__END_OWNING_TYPE = CONSTRAINT_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__FEATURE_TARGET = CONSTRAINT_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__FEATURING_TYPE = CONSTRAINT_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_CROSS_SUBSETTING = CONSTRAINT_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_FEATURE_CHAINING = CONSTRAINT_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_FEATURE_INVERTING = CONSTRAINT_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_REDEFINITION = CONSTRAINT_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_REFERENCE_SUBSETTING = CONSTRAINT_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_SUBSETTING = CONSTRAINT_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_TYPE_FEATURING = CONSTRAINT_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNED_TYPING = CONSTRAINT_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNING_FEATURE_MEMBERSHIP = CONSTRAINT_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNING_TYPE = CONSTRAINT_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__TYPE = CONSTRAINT_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_REFERENCE = CONSTRAINT_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_VARIATION = CONSTRAINT_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__MAY_TIME_VARY = CONSTRAINT_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__DEFINITION = CONSTRAINT_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__DIRECTED_USAGE = CONSTRAINT_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_ACTION = CONSTRAINT_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_ALLOCATION = CONSTRAINT_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_ANALYSIS_CASE = CONSTRAINT_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_ATTRIBUTE = CONSTRAINT_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_CALCULATION = CONSTRAINT_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_CASE = CONSTRAINT_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_CONCERN = CONSTRAINT_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_CONNECTION = CONSTRAINT_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_CONSTRAINT = CONSTRAINT_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_ENUMERATION = CONSTRAINT_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_FLOW = CONSTRAINT_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_INTERFACE = CONSTRAINT_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_ITEM = CONSTRAINT_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_METADATA = CONSTRAINT_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_OCCURRENCE = CONSTRAINT_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_PART = CONSTRAINT_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_PORT = CONSTRAINT_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_REFERENCE = CONSTRAINT_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_RENDERING = CONSTRAINT_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_REQUIREMENT = CONSTRAINT_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_STATE = CONSTRAINT_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_TRANSITION = CONSTRAINT_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_USAGE = CONSTRAINT_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_USE_CASE = CONSTRAINT_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_VERIFICATION_CASE = CONSTRAINT_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_VIEW = CONSTRAINT_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__NESTED_VIEWPOINT = CONSTRAINT_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNING_DEFINITION = CONSTRAINT_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OWNING_USAGE = CONSTRAINT_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__USAGE = CONSTRAINT_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__VARIANT = CONSTRAINT_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__VARIANT_MEMBERSHIP = CONSTRAINT_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_INDIVIDUAL = CONSTRAINT_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__PORTION_KIND = CONSTRAINT_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__INDIVIDUAL_DEFINITION = CONSTRAINT_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__OCCURRENCE_DEFINITION = CONSTRAINT_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__BEHAVIOR = CONSTRAINT_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__PARAMETER = CONSTRAINT_USAGE__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_MODEL_LEVEL_EVALUABLE = CONSTRAINT_USAGE__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__FUNCTION = CONSTRAINT_USAGE__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__RESULT = CONSTRAINT_USAGE__RESULT; + + /** + * The feature id for the 'Predicate' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__PREDICATE = CONSTRAINT_USAGE__PREDICATE; + + /** + * The feature id for the 'Constraint Definition' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__CONSTRAINT_DEFINITION = CONSTRAINT_USAGE__CONSTRAINT_DEFINITION; + + /** + * The feature id for the 'Is Negated' attribute. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__IS_NEGATED = CONSTRAINT_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Asserted Constraint' reference. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE__ASSERTED_CONSTRAINT = CONSTRAINT_USAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Assert Constraint Usage' class. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE_FEATURE_COUNT = CONSTRAINT_USAGE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___EFFECTIVE_NAME = CONSTRAINT_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___EFFECTIVE_SHORT_NAME = CONSTRAINT_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___ESCAPED_NAME = CONSTRAINT_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___LIBRARY_NAMESPACE = CONSTRAINT_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___PATH = CONSTRAINT_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CONSTRAINT_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONSTRAINT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___NAMES_OF__ELEMENT = CONSTRAINT_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___QUALIFICATION_OF__STRING = CONSTRAINT_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___RESOLVE__STRING = CONSTRAINT_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___RESOLVE_GLOBAL__STRING = CONSTRAINT_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___RESOLVE_LOCAL__STRING = CONSTRAINT_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___RESOLVE_VISIBLE__STRING = CONSTRAINT_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___UNQUALIFIED_NAME_OF__STRING = CONSTRAINT_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___VISIBILITY_OF__MEMBERSHIP = CONSTRAINT_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONSTRAINT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONSTRAINT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___ALL_SUPERTYPES = CONSTRAINT_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___DIRECTION_OF__FEATURE = CONSTRAINT_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONSTRAINT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONSTRAINT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONSTRAINT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___IS_COMPATIBLE_WITH__TYPE = CONSTRAINT_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___MULTIPLICITIES = CONSTRAINT_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONSTRAINT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CONSTRAINT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___SPECIALIZES__TYPE = CONSTRAINT_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CONSTRAINT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___SUPERTYPES__BOOLEAN = CONSTRAINT_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___ALL_REDEFINED_FEATURES = CONSTRAINT_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___AS_CARTESIAN_PRODUCT = CONSTRAINT_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___CAN_ACCESS__FEATURE = CONSTRAINT_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___DIRECTION_FOR__TYPE = CONSTRAINT_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___IS_CARTESIAN_PRODUCT = CONSTRAINT_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___IS_FEATURED_WITHIN__TYPE = CONSTRAINT_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___IS_FEATURING_TYPE__TYPE = CONSTRAINT_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___IS_OWNED_CROSS_FEATURE = CONSTRAINT_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___NAMING_FEATURE = CONSTRAINT_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___OWNED_CROSS_FEATURE = CONSTRAINT_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___REDEFINES__FEATURE = CONSTRAINT_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___REDEFINES_FROM_LIBRARY__STRING = CONSTRAINT_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CONSTRAINT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___TYPING_FEATURES = CONSTRAINT_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___REFERENCED_FEATURE_TARGET = CONSTRAINT_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___CHECK_CONDITION__ELEMENT = CONSTRAINT_USAGE___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___EVALUATE__ELEMENT = CONSTRAINT_USAGE___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = CONSTRAINT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Assert Constraint Usage' class. + * + * + * @generated + * @ordered + */ + int ASSERT_CONSTRAINT_USAGE_OPERATION_COUNT = CONSTRAINT_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AssignmentActionUsageImpl Assignment Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AssignmentActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAssignmentActionUsage() + * @generated + */ + int ASSIGNMENT_ACTION_USAGE = 11; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Referent' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__REFERENT = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Target Argument' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__TARGET_ARGUMENT = ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Value Expression' reference. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE__VALUE_EXPRESSION = ACTION_USAGE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Assignment Action Usage' class. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The number of operations of the 'Assignment Action Usage' class. + * + * + * @generated + * @ordered + */ + int ASSIGNMENT_ACTION_USAGE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AssociationImpl Association}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AssociationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAssociation() + * @generated + */ + int ASSOCIATION = 12; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__ALIAS_IDS = CLASSIFIER__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__DECLARED_NAME = CLASSIFIER__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__DECLARED_SHORT_NAME = CLASSIFIER__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__ELEMENT_ID = CLASSIFIER__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IS_IMPLIED_INCLUDED = CLASSIFIER__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IS_LIBRARY_ELEMENT = CLASSIFIER__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__SHORT_NAME = CLASSIFIER__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__DOCUMENTATION = CLASSIFIER__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_ANNOTATION = CLASSIFIER__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_RELATIONSHIP = CLASSIFIER__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNING_MEMBERSHIP = CLASSIFIER__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNING_NAMESPACE = CLASSIFIER__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNING_RELATIONSHIP = CLASSIFIER__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__TEXTUAL_REPRESENTATION = CLASSIFIER__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IMPORTED_MEMBERSHIP = CLASSIFIER__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__MEMBERSHIP = CLASSIFIER__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_IMPORT = CLASSIFIER__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_MEMBERSHIP = CLASSIFIER__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IS_CONJUGATED = CLASSIFIER__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IS_SUFFICIENT = CLASSIFIER__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__DIFFERENCING_TYPE = CLASSIFIER__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__DIRECTED_FEATURE = CLASSIFIER__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__END_FEATURE = CLASSIFIER__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__FEATURE_MEMBERSHIP = CLASSIFIER__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__INHERITED_FEATURE = CLASSIFIER__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__INHERITED_MEMBERSHIP = CLASSIFIER__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__INPUT = CLASSIFIER__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__INTERSECTING_TYPE = CLASSIFIER__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__MULTIPLICITY = CLASSIFIER__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OUTPUT = CLASSIFIER__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_CONJUGATOR = CLASSIFIER__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_DIFFERENCING = CLASSIFIER__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_DISJOINING = CLASSIFIER__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_END_FEATURE = CLASSIFIER__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_FEATURE = CLASSIFIER__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_FEATURE_MEMBERSHIP = CLASSIFIER__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_INTERSECTING = CLASSIFIER__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_SPECIALIZATION = CLASSIFIER__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_UNIONING = CLASSIFIER__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__UNIONING_TYPE = CLASSIFIER__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_SUBCLASSIFICATION = CLASSIFIER__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__IS_IMPLIED = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNED_RELATED_ELEMENT = CLASSIFIER_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__OWNING_RELATED_ELEMENT = CLASSIFIER_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__RELATED_ELEMENT = CLASSIFIER_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__SOURCE = CLASSIFIER_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__TARGET = CLASSIFIER_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Association End' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__ASSOCIATION_END = CLASSIFIER_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Related Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__RELATED_TYPE = CLASSIFIER_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Source Type' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__SOURCE_TYPE = CLASSIFIER_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Target Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION__TARGET_TYPE = CLASSIFIER_FEATURE_COUNT + 9; + + /** + * The number of structural features of the 'Association' class. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 10; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___EFFECTIVE_NAME = CLASSIFIER___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___EFFECTIVE_SHORT_NAME = CLASSIFIER___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___ESCAPED_NAME = CLASSIFIER___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___LIBRARY_NAMESPACE = CLASSIFIER___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___PATH = CLASSIFIER___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___IMPORTED_MEMBERSHIPS__ELIST = CLASSIFIER___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CLASSIFIER___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___NAMES_OF__ELEMENT = CLASSIFIER___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___QUALIFICATION_OF__STRING = CLASSIFIER___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___RESOLVE__STRING = CLASSIFIER___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___RESOLVE_GLOBAL__STRING = CLASSIFIER___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___RESOLVE_LOCAL__STRING = CLASSIFIER___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___RESOLVE_VISIBLE__STRING = CLASSIFIER___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___UNQUALIFIED_NAME_OF__STRING = CLASSIFIER___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___VISIBILITY_OF__MEMBERSHIP = CLASSIFIER___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CLASSIFIER___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CLASSIFIER___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___ALL_SUPERTYPES = CLASSIFIER___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___DIRECTION_OF__FEATURE = CLASSIFIER___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CLASSIFIER___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___IS_COMPATIBLE_WITH__TYPE = CLASSIFIER___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___MULTIPLICITIES = CLASSIFIER___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___REMOVE_REDEFINED_FEATURES__ELIST = CLASSIFIER___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___SPECIALIZES__TYPE = CLASSIFIER___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___SPECIALIZES_FROM_LIBRARY__STRING = CLASSIFIER___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION___SUPERTYPES__BOOLEAN = CLASSIFIER___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Association' class. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_OPERATION_COUNT = CLASSIFIER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AssociationStructureImpl Association Structure}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AssociationStructureImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAssociationStructure() + * @generated + */ + int ASSOCIATION_STRUCTURE = 13; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__ALIAS_IDS = ASSOCIATION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__DECLARED_NAME = ASSOCIATION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__DECLARED_SHORT_NAME = ASSOCIATION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__ELEMENT_ID = ASSOCIATION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__IS_IMPLIED_INCLUDED = ASSOCIATION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__IS_LIBRARY_ELEMENT = ASSOCIATION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__NAME = ASSOCIATION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__QUALIFIED_NAME = ASSOCIATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__SHORT_NAME = ASSOCIATION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__DOCUMENTATION = ASSOCIATION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_ANNOTATION = ASSOCIATION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_ELEMENT = ASSOCIATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_RELATIONSHIP = ASSOCIATION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNER = ASSOCIATION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNING_MEMBERSHIP = ASSOCIATION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNING_NAMESPACE = ASSOCIATION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNING_RELATIONSHIP = ASSOCIATION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__TEXTUAL_REPRESENTATION = ASSOCIATION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__IMPORTED_MEMBERSHIP = ASSOCIATION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__MEMBER = ASSOCIATION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__MEMBERSHIP = ASSOCIATION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_IMPORT = ASSOCIATION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_MEMBER = ASSOCIATION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_MEMBERSHIP = ASSOCIATION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__IS_ABSTRACT = ASSOCIATION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__IS_CONJUGATED = ASSOCIATION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__IS_SUFFICIENT = ASSOCIATION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__DIFFERENCING_TYPE = ASSOCIATION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__DIRECTED_FEATURE = ASSOCIATION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__END_FEATURE = ASSOCIATION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__FEATURE = ASSOCIATION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__FEATURE_MEMBERSHIP = ASSOCIATION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__INHERITED_FEATURE = ASSOCIATION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__INHERITED_MEMBERSHIP = ASSOCIATION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__INPUT = ASSOCIATION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__INTERSECTING_TYPE = ASSOCIATION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__MULTIPLICITY = ASSOCIATION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OUTPUT = ASSOCIATION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_CONJUGATOR = ASSOCIATION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_DIFFERENCING = ASSOCIATION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_DISJOINING = ASSOCIATION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_END_FEATURE = ASSOCIATION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_FEATURE = ASSOCIATION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_FEATURE_MEMBERSHIP = ASSOCIATION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_INTERSECTING = ASSOCIATION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_SPECIALIZATION = ASSOCIATION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_UNIONING = ASSOCIATION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__UNIONING_TYPE = ASSOCIATION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_SUBCLASSIFICATION = ASSOCIATION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__IS_IMPLIED = ASSOCIATION__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNED_RELATED_ELEMENT = ASSOCIATION__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__OWNING_RELATED_ELEMENT = ASSOCIATION__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__RELATED_ELEMENT = ASSOCIATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__SOURCE = ASSOCIATION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__TARGET = ASSOCIATION__TARGET; + + /** + * The feature id for the 'Association End' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__ASSOCIATION_END = ASSOCIATION__ASSOCIATION_END; + + /** + * The feature id for the 'Related Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__RELATED_TYPE = ASSOCIATION__RELATED_TYPE; + + /** + * The feature id for the 'Source Type' reference. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__SOURCE_TYPE = ASSOCIATION__SOURCE_TYPE; + + /** + * The feature id for the 'Target Type' reference list. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE__TARGET_TYPE = ASSOCIATION__TARGET_TYPE; + + /** + * The number of structural features of the 'Association Structure' class. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE_FEATURE_COUNT = ASSOCIATION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___EFFECTIVE_NAME = ASSOCIATION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___EFFECTIVE_SHORT_NAME = ASSOCIATION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___ESCAPED_NAME = ASSOCIATION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___LIBRARY_NAMESPACE = ASSOCIATION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___PATH = ASSOCIATION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___IMPORTED_MEMBERSHIPS__ELIST = ASSOCIATION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ASSOCIATION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___NAMES_OF__ELEMENT = ASSOCIATION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___QUALIFICATION_OF__STRING = ASSOCIATION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___RESOLVE__STRING = ASSOCIATION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___RESOLVE_GLOBAL__STRING = ASSOCIATION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___RESOLVE_LOCAL__STRING = ASSOCIATION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___RESOLVE_VISIBLE__STRING = ASSOCIATION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___UNQUALIFIED_NAME_OF__STRING = ASSOCIATION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___VISIBILITY_OF__MEMBERSHIP = ASSOCIATION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ASSOCIATION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ASSOCIATION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___ALL_SUPERTYPES = ASSOCIATION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___DIRECTION_OF__FEATURE = ASSOCIATION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ASSOCIATION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ASSOCIATION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ASSOCIATION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___IS_COMPATIBLE_WITH__TYPE = ASSOCIATION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___MULTIPLICITIES = ASSOCIATION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ASSOCIATION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___REMOVE_REDEFINED_FEATURES__ELIST = ASSOCIATION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___SPECIALIZES__TYPE = ASSOCIATION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___SPECIALIZES_FROM_LIBRARY__STRING = ASSOCIATION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE___SUPERTYPES__BOOLEAN = ASSOCIATION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Association Structure' class. + * + * + * @generated + * @ordered + */ + int ASSOCIATION_STRUCTURE_OPERATION_COUNT = ASSOCIATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AttributeDefinitionImpl Attribute Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AttributeDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAttributeDefinition() + * @generated + */ + int ATTRIBUTE_DEFINITION = 14; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__ALIAS_IDS = DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__DECLARED_NAME = DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__DECLARED_SHORT_NAME = DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__ELEMENT_ID = DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__IS_IMPLIED_INCLUDED = DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__IS_LIBRARY_ELEMENT = DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__NAME = DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__QUALIFIED_NAME = DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__SHORT_NAME = DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__DOCUMENTATION = DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_ANNOTATION = DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_ELEMENT = DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_RELATIONSHIP = DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNER = DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNING_MEMBERSHIP = DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNING_NAMESPACE = DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNING_RELATIONSHIP = DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__TEXTUAL_REPRESENTATION = DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__IMPORTED_MEMBERSHIP = DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__MEMBER = DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__MEMBERSHIP = DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_IMPORT = DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_MEMBER = DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_MEMBERSHIP = DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__IS_ABSTRACT = DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__IS_CONJUGATED = DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__IS_SUFFICIENT = DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__DIFFERENCING_TYPE = DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__DIRECTED_FEATURE = DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__END_FEATURE = DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__FEATURE = DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__FEATURE_MEMBERSHIP = DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__INHERITED_FEATURE = DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__INHERITED_MEMBERSHIP = DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__INPUT = DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__INTERSECTING_TYPE = DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__MULTIPLICITY = DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OUTPUT = DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_CONJUGATOR = DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_DIFFERENCING = DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_DISJOINING = DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_END_FEATURE = DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_FEATURE = DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_FEATURE_MEMBERSHIP = DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_INTERSECTING = DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_SPECIALIZATION = DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_UNIONING = DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__UNIONING_TYPE = DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_SUBCLASSIFICATION = DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__IS_VARIATION = DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__DIRECTED_USAGE = DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_ACTION = DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_ALLOCATION = DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_ANALYSIS_CASE = DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_ATTRIBUTE = DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_CALCULATION = DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_CASE = DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_CONCERN = DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_CONNECTION = DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_CONSTRAINT = DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_ENUMERATION = DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_FLOW = DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_INTERFACE = DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_ITEM = DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_METADATA = DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_OCCURRENCE = DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_PART = DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_PORT = DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_REFERENCE = DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_RENDERING = DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_REQUIREMENT = DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_STATE = DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_TRANSITION = DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_USAGE = DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_USE_CASE = DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_VERIFICATION_CASE = DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_VIEW = DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__OWNED_VIEWPOINT = DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__USAGE = DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__VARIANT = DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION__VARIANT_MEMBERSHIP = DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The number of structural features of the 'Attribute Definition' class. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION_FEATURE_COUNT = DEFINITION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___EFFECTIVE_NAME = DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___EFFECTIVE_SHORT_NAME = DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___ESCAPED_NAME = DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___LIBRARY_NAMESPACE = DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___PATH = DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___NAMES_OF__ELEMENT = DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___QUALIFICATION_OF__STRING = DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___RESOLVE__STRING = DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___RESOLVE_GLOBAL__STRING = DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___RESOLVE_LOCAL__STRING = DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___RESOLVE_VISIBLE__STRING = DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___UNQUALIFIED_NAME_OF__STRING = DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___VISIBILITY_OF__MEMBERSHIP = DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___ALL_SUPERTYPES = DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___DIRECTION_OF__FEATURE = DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___IS_COMPATIBLE_WITH__TYPE = DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___MULTIPLICITIES = DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___SPECIALIZES__TYPE = DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION___SUPERTYPES__BOOLEAN = DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Attribute Definition' class. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_DEFINITION_OPERATION_COUNT = DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.AttributeUsageImpl Attribute Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AttributeUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAttributeUsage() + * @generated + */ + int ATTRIBUTE_USAGE = 15; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__ALIAS_IDS = USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__DECLARED_NAME = USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__DECLARED_SHORT_NAME = USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__ELEMENT_ID = USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_IMPLIED_INCLUDED = USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_LIBRARY_ELEMENT = USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NAME = USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__QUALIFIED_NAME = USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__SHORT_NAME = USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__DOCUMENTATION = USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_ANNOTATION = USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_ELEMENT = USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_RELATIONSHIP = USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNER = USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNING_MEMBERSHIP = USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNING_NAMESPACE = USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNING_RELATIONSHIP = USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__TEXTUAL_REPRESENTATION = USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IMPORTED_MEMBERSHIP = USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__MEMBER = USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__MEMBERSHIP = USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_IMPORT = USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_MEMBER = USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_MEMBERSHIP = USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_ABSTRACT = USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_CONJUGATED = USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_SUFFICIENT = USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__DIFFERENCING_TYPE = USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__DIRECTED_FEATURE = USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__END_FEATURE = USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__FEATURE = USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__FEATURE_MEMBERSHIP = USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__INHERITED_FEATURE = USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__INHERITED_MEMBERSHIP = USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__INPUT = USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__INTERSECTING_TYPE = USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__MULTIPLICITY = USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OUTPUT = USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_CONJUGATOR = USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_DIFFERENCING = USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_DISJOINING = USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_END_FEATURE = USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_FEATURE = USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_FEATURE_MEMBERSHIP = USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_INTERSECTING = USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_SPECIALIZATION = USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_UNIONING = USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__UNIONING_TYPE = USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__DIRECTION = USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_COMPOSITE = USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_CONSTANT = USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_DERIVED = USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_END = USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_NONUNIQUE = USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_ORDERED = USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_PORTION = USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_UNIQUE = USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_VARIABLE = USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__CHAINING_FEATURE = USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__CROSS_FEATURE = USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__END_OWNING_TYPE = USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__FEATURE_TARGET = USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__FEATURING_TYPE = USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_CROSS_SUBSETTING = USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_FEATURE_CHAINING = USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_FEATURE_INVERTING = USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_REDEFINITION = USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_REFERENCE_SUBSETTING = USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_SUBSETTING = USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_TYPE_FEATURING = USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNED_TYPING = USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNING_FEATURE_MEMBERSHIP = USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNING_TYPE = USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__TYPE = USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_REFERENCE = USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__IS_VARIATION = USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__MAY_TIME_VARY = USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__DEFINITION = USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__DIRECTED_USAGE = USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_ACTION = USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_ALLOCATION = USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_ANALYSIS_CASE = USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_ATTRIBUTE = USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_CALCULATION = USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_CASE = USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_CONCERN = USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_CONNECTION = USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_CONSTRAINT = USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_ENUMERATION = USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_FLOW = USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_INTERFACE = USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_ITEM = USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_METADATA = USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_OCCURRENCE = USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_PART = USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_PORT = USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_REFERENCE = USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_RENDERING = USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_REQUIREMENT = USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_STATE = USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_TRANSITION = USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_USAGE = USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_USE_CASE = USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_VERIFICATION_CASE = USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_VIEW = USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__NESTED_VIEWPOINT = USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNING_DEFINITION = USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__OWNING_USAGE = USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__USAGE = USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__VARIANT = USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__VARIANT_MEMBERSHIP = USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Attribute Definition' reference list. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE__ATTRIBUTE_DEFINITION = USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Attribute Usage' class. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE_FEATURE_COUNT = USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___EFFECTIVE_NAME = USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___EFFECTIVE_SHORT_NAME = USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___ESCAPED_NAME = USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___LIBRARY_NAMESPACE = USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___PATH = USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___NAMES_OF__ELEMENT = USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___QUALIFICATION_OF__STRING = USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___RESOLVE__STRING = USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___RESOLVE_GLOBAL__STRING = USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___RESOLVE_LOCAL__STRING = USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___RESOLVE_VISIBLE__STRING = USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___UNQUALIFIED_NAME_OF__STRING = USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___VISIBILITY_OF__MEMBERSHIP = USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___ALL_SUPERTYPES = USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___DIRECTION_OF__FEATURE = USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___IS_COMPATIBLE_WITH__TYPE = USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___MULTIPLICITIES = USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___SPECIALIZES__TYPE = USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___SUPERTYPES__BOOLEAN = USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___ALL_REDEFINED_FEATURES = USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___AS_CARTESIAN_PRODUCT = USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___CAN_ACCESS__FEATURE = USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___DIRECTION_FOR__TYPE = USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___IS_CARTESIAN_PRODUCT = USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___IS_FEATURED_WITHIN__TYPE = USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___IS_FEATURING_TYPE__TYPE = USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___IS_OWNED_CROSS_FEATURE = USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___NAMING_FEATURE = USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___OWNED_CROSS_FEATURE = USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___REDEFINES__FEATURE = USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___REDEFINES_FROM_LIBRARY__STRING = USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___TYPING_FEATURES = USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE___REFERENCED_FEATURE_TARGET = USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Attribute Usage' class. + * + * + * @generated + * @ordered + */ + int ATTRIBUTE_USAGE_OPERATION_COUNT = USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ClassImpl Class}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ClassImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getClass_() + * @generated + */ + int CLASS = 24; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CLASS__ALIAS_IDS = CLASSIFIER__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__DECLARED_NAME = CLASSIFIER__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__DECLARED_SHORT_NAME = CLASSIFIER__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__ELEMENT_ID = CLASSIFIER__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__IS_IMPLIED_INCLUDED = CLASSIFIER__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__IS_LIBRARY_ELEMENT = CLASSIFIER__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__SHORT_NAME = CLASSIFIER__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__DOCUMENTATION = CLASSIFIER__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_ANNOTATION = CLASSIFIER__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_RELATIONSHIP = CLASSIFIER__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CLASS__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CLASS__OWNING_MEMBERSHIP = CLASSIFIER__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CLASS__OWNING_NAMESPACE = CLASSIFIER__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CLASS__OWNING_RELATIONSHIP = CLASSIFIER__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__TEXTUAL_REPRESENTATION = CLASSIFIER__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__IMPORTED_MEMBERSHIP = CLASSIFIER__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__MEMBERSHIP = CLASSIFIER__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_IMPORT = CLASSIFIER__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_MEMBERSHIP = CLASSIFIER__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__IS_CONJUGATED = CLASSIFIER__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CLASS__IS_SUFFICIENT = CLASSIFIER__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__DIFFERENCING_TYPE = CLASSIFIER__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__DIRECTED_FEATURE = CLASSIFIER__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__END_FEATURE = CLASSIFIER__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__FEATURE_MEMBERSHIP = CLASSIFIER__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__INHERITED_FEATURE = CLASSIFIER__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__INHERITED_MEMBERSHIP = CLASSIFIER__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__INPUT = CLASSIFIER__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__INTERSECTING_TYPE = CLASSIFIER__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CLASS__MULTIPLICITY = CLASSIFIER__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OUTPUT = CLASSIFIER__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_CONJUGATOR = CLASSIFIER__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_DIFFERENCING = CLASSIFIER__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_DISJOINING = CLASSIFIER__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_END_FEATURE = CLASSIFIER__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_FEATURE = CLASSIFIER__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_FEATURE_MEMBERSHIP = CLASSIFIER__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_INTERSECTING = CLASSIFIER__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_SPECIALIZATION = CLASSIFIER__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_UNIONING = CLASSIFIER__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__UNIONING_TYPE = CLASSIFIER__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int CLASS__OWNED_SUBCLASSIFICATION = CLASSIFIER__OWNED_SUBCLASSIFICATION; + + /** + * The number of structural features of the 'Class' class. + * + * + * @generated + * @ordered + */ + int CLASS_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CLASS___EFFECTIVE_NAME = CLASSIFIER___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CLASS___EFFECTIVE_SHORT_NAME = CLASSIFIER___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CLASS___ESCAPED_NAME = CLASSIFIER___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CLASS___LIBRARY_NAMESPACE = CLASSIFIER___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CLASS___PATH = CLASSIFIER___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CLASS___IMPORTED_MEMBERSHIPS__ELIST = CLASSIFIER___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CLASS___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CLASSIFIER___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CLASS___NAMES_OF__ELEMENT = CLASSIFIER___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CLASS___QUALIFICATION_OF__STRING = CLASSIFIER___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CLASS___RESOLVE__STRING = CLASSIFIER___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CLASS___RESOLVE_GLOBAL__STRING = CLASSIFIER___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CLASS___RESOLVE_LOCAL__STRING = CLASSIFIER___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CLASS___RESOLVE_VISIBLE__STRING = CLASSIFIER___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CLASS___UNQUALIFIED_NAME_OF__STRING = CLASSIFIER___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CLASS___VISIBILITY_OF__MEMBERSHIP = CLASSIFIER___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CLASS___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CLASSIFIER___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CLASS___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CLASSIFIER___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CLASS___ALL_SUPERTYPES = CLASSIFIER___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CLASS___DIRECTION_OF__FEATURE = CLASSIFIER___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CLASS___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CLASSIFIER___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CLASS___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CLASS___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CLASS___IS_COMPATIBLE_WITH__TYPE = CLASSIFIER___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CLASS___MULTIPLICITIES = CLASSIFIER___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CLASS___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CLASS___REMOVE_REDEFINED_FEATURES__ELIST = CLASSIFIER___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CLASS___SPECIALIZES__TYPE = CLASSIFIER___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CLASS___SPECIALIZES_FROM_LIBRARY__STRING = CLASSIFIER___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CLASS___SUPERTYPES__BOOLEAN = CLASSIFIER___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Class' class. + * + * + * @generated + * @ordered + */ + int CLASS_OPERATION_COUNT = CLASSIFIER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.BehaviorImpl Behavior}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.BehaviorImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getBehavior() + * @generated + */ + int BEHAVIOR = 16; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__ALIAS_IDS = CLASS__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__DECLARED_NAME = CLASS__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__DECLARED_SHORT_NAME = CLASS__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__ELEMENT_ID = CLASS__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IS_IMPLIED_INCLUDED = CLASS__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IS_LIBRARY_ELEMENT = CLASS__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__NAME = CLASS__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__QUALIFIED_NAME = CLASS__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__SHORT_NAME = CLASS__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__DOCUMENTATION = CLASS__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_ANNOTATION = CLASS__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_ELEMENT = CLASS__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_RELATIONSHIP = CLASS__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNER = CLASS__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNING_MEMBERSHIP = CLASS__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNING_NAMESPACE = CLASS__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNING_RELATIONSHIP = CLASS__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__TEXTUAL_REPRESENTATION = CLASS__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IMPORTED_MEMBERSHIP = CLASS__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__MEMBER = CLASS__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__MEMBERSHIP = CLASS__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_IMPORT = CLASS__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_MEMBER = CLASS__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_MEMBERSHIP = CLASS__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IS_ABSTRACT = CLASS__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IS_CONJUGATED = CLASS__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__IS_SUFFICIENT = CLASS__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__DIFFERENCING_TYPE = CLASS__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__DIRECTED_FEATURE = CLASS__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__END_FEATURE = CLASS__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__FEATURE = CLASS__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__FEATURE_MEMBERSHIP = CLASS__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__INHERITED_FEATURE = CLASS__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__INHERITED_MEMBERSHIP = CLASS__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__INPUT = CLASS__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__INTERSECTING_TYPE = CLASS__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__MULTIPLICITY = CLASS__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OUTPUT = CLASS__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_CONJUGATOR = CLASS__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_DIFFERENCING = CLASS__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_DISJOINING = CLASS__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_END_FEATURE = CLASS__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_FEATURE = CLASS__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_FEATURE_MEMBERSHIP = CLASS__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_INTERSECTING = CLASS__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_SPECIALIZATION = CLASS__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_UNIONING = CLASS__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__UNIONING_TYPE = CLASS__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__OWNED_SUBCLASSIFICATION = CLASS__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__PARAMETER = CLASS_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int BEHAVIOR__STEP = CLASS_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Behavior' class. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_FEATURE_COUNT = CLASS_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___EFFECTIVE_NAME = CLASS___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___EFFECTIVE_SHORT_NAME = CLASS___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___ESCAPED_NAME = CLASS___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___LIBRARY_NAMESPACE = CLASS___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___PATH = CLASS___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___IMPORTED_MEMBERSHIPS__ELIST = CLASS___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CLASS___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___NAMES_OF__ELEMENT = CLASS___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___QUALIFICATION_OF__STRING = CLASS___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___RESOLVE__STRING = CLASS___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___RESOLVE_GLOBAL__STRING = CLASS___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___RESOLVE_LOCAL__STRING = CLASS___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___RESOLVE_VISIBLE__STRING = CLASS___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___UNQUALIFIED_NAME_OF__STRING = CLASS___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___VISIBILITY_OF__MEMBERSHIP = CLASS___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CLASS___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CLASS___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___ALL_SUPERTYPES = CLASS___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___DIRECTION_OF__FEATURE = CLASS___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CLASS___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASS___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASS___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___IS_COMPATIBLE_WITH__TYPE = CLASS___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___MULTIPLICITIES = CLASS___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASS___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___REMOVE_REDEFINED_FEATURES__ELIST = CLASS___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___SPECIALIZES__TYPE = CLASS___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___SPECIALIZES_FROM_LIBRARY__STRING = CLASS___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int BEHAVIOR___SUPERTYPES__BOOLEAN = CLASS___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Behavior' class. + * + * + * @generated + * @ordered + */ + int BEHAVIOR_OPERATION_COUNT = CLASS_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConnectorImpl Connector}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConnectorImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConnector() + * @generated + */ + int CONNECTOR = 35; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__ALIAS_IDS = FEATURE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__DECLARED_NAME = FEATURE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__DECLARED_SHORT_NAME = FEATURE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__ELEMENT_ID = FEATURE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_IMPLIED_INCLUDED = FEATURE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_LIBRARY_ELEMENT = FEATURE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__NAME = FEATURE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__SHORT_NAME = FEATURE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__DOCUMENTATION = FEATURE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_ANNOTATION = FEATURE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_RELATIONSHIP = FEATURE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNER = FEATURE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNING_MEMBERSHIP = FEATURE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNING_NAMESPACE = FEATURE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNING_RELATIONSHIP = FEATURE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__TEXTUAL_REPRESENTATION = FEATURE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IMPORTED_MEMBERSHIP = FEATURE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__MEMBER = FEATURE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__MEMBERSHIP = FEATURE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_IMPORT = FEATURE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_MEMBER = FEATURE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_MEMBERSHIP = FEATURE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_ABSTRACT = FEATURE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_CONJUGATED = FEATURE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_SUFFICIENT = FEATURE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__DIFFERENCING_TYPE = FEATURE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__DIRECTED_FEATURE = FEATURE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__END_FEATURE = FEATURE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__FEATURE = FEATURE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__FEATURE_MEMBERSHIP = FEATURE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__INHERITED_FEATURE = FEATURE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__INHERITED_MEMBERSHIP = FEATURE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__INPUT = FEATURE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__INTERSECTING_TYPE = FEATURE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__MULTIPLICITY = FEATURE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OUTPUT = FEATURE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_CONJUGATOR = FEATURE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_DIFFERENCING = FEATURE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_DISJOINING = FEATURE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_END_FEATURE = FEATURE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_FEATURE = FEATURE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_FEATURE_MEMBERSHIP = FEATURE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_INTERSECTING = FEATURE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_SPECIALIZATION = FEATURE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_UNIONING = FEATURE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__UNIONING_TYPE = FEATURE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__DIRECTION = FEATURE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_COMPOSITE = FEATURE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_CONSTANT = FEATURE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_DERIVED = FEATURE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_END = FEATURE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_NONUNIQUE = FEATURE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_ORDERED = FEATURE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_PORTION = FEATURE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_UNIQUE = FEATURE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_VARIABLE = FEATURE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__CHAINING_FEATURE = FEATURE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__CROSS_FEATURE = FEATURE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__END_OWNING_TYPE = FEATURE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__FEATURE_TARGET = FEATURE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__FEATURING_TYPE = FEATURE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_CROSS_SUBSETTING = FEATURE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_FEATURE_CHAINING = FEATURE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_FEATURE_INVERTING = FEATURE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_REDEFINITION = FEATURE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_REFERENCE_SUBSETTING = FEATURE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_SUBSETTING = FEATURE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_TYPE_FEATURING = FEATURE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_TYPING = FEATURE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNING_FEATURE_MEMBERSHIP = FEATURE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNING_TYPE = FEATURE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__TYPE = FEATURE__TYPE; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int CONNECTOR__IS_IMPLIED = FEATURE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNED_RELATED_ELEMENT = FEATURE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__OWNING_RELATED_ELEMENT = FEATURE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__RELATED_ELEMENT = FEATURE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__SOURCE = FEATURE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__TARGET = FEATURE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__ASSOCIATION = FEATURE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__CONNECTOR_END = FEATURE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__DEFAULT_FEATURING_TYPE = FEATURE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__RELATED_FEATURE = FEATURE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int CONNECTOR__SOURCE_FEATURE = FEATURE_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONNECTOR__TARGET_FEATURE = FEATURE_FEATURE_COUNT + 11; + + /** + * The number of structural features of the 'Connector' class. + * + * + * @generated + * @ordered + */ + int CONNECTOR_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 12; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___EFFECTIVE_NAME = FEATURE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___EFFECTIVE_SHORT_NAME = FEATURE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___ESCAPED_NAME = FEATURE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___LIBRARY_NAMESPACE = FEATURE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___PATH = FEATURE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___IMPORTED_MEMBERSHIPS__ELIST = FEATURE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = FEATURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___NAMES_OF__ELEMENT = FEATURE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___QUALIFICATION_OF__STRING = FEATURE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___RESOLVE__STRING = FEATURE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___RESOLVE_GLOBAL__STRING = FEATURE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___RESOLVE_LOCAL__STRING = FEATURE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___RESOLVE_VISIBLE__STRING = FEATURE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___UNQUALIFIED_NAME_OF__STRING = FEATURE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___VISIBILITY_OF__MEMBERSHIP = FEATURE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = FEATURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = FEATURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___ALL_SUPERTYPES = FEATURE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___DIRECTION_OF__FEATURE = FEATURE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = FEATURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___IS_COMPATIBLE_WITH__TYPE = FEATURE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___MULTIPLICITIES = FEATURE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___REMOVE_REDEFINED_FEATURES__ELIST = FEATURE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___SPECIALIZES__TYPE = FEATURE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___SPECIALIZES_FROM_LIBRARY__STRING = FEATURE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___SUPERTYPES__BOOLEAN = FEATURE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___ALL_REDEFINED_FEATURES = FEATURE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___AS_CARTESIAN_PRODUCT = FEATURE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___CAN_ACCESS__FEATURE = FEATURE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___DIRECTION_FOR__TYPE = FEATURE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___IS_CARTESIAN_PRODUCT = FEATURE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___IS_FEATURED_WITHIN__TYPE = FEATURE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___IS_FEATURING_TYPE__TYPE = FEATURE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___IS_OWNED_CROSS_FEATURE = FEATURE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___NAMING_FEATURE = FEATURE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___OWNED_CROSS_FEATURE = FEATURE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___REDEFINES__FEATURE = FEATURE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___REDEFINES_FROM_LIBRARY__STRING = FEATURE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___SUBSETS_CHAIN__FEATURE_FEATURE = FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int CONNECTOR___TYPING_FEATURES = FEATURE___TYPING_FEATURES; + + /** + * The number of operations of the 'Connector' class. + * + * + * @generated + * @ordered + */ + int CONNECTOR_OPERATION_COUNT = FEATURE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.BindingConnectorImpl Binding Connector}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.BindingConnectorImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getBindingConnector() + * @generated + */ + int BINDING_CONNECTOR = 17; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__ALIAS_IDS = CONNECTOR__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__DECLARED_NAME = CONNECTOR__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__DECLARED_SHORT_NAME = CONNECTOR__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__ELEMENT_ID = CONNECTOR__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_IMPLIED_INCLUDED = CONNECTOR__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_LIBRARY_ELEMENT = CONNECTOR__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__NAME = CONNECTOR__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__QUALIFIED_NAME = CONNECTOR__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__SHORT_NAME = CONNECTOR__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__DOCUMENTATION = CONNECTOR__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_ANNOTATION = CONNECTOR__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_ELEMENT = CONNECTOR__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_RELATIONSHIP = CONNECTOR__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNER = CONNECTOR__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNING_MEMBERSHIP = CONNECTOR__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNING_NAMESPACE = CONNECTOR__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNING_RELATIONSHIP = CONNECTOR__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__TEXTUAL_REPRESENTATION = CONNECTOR__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IMPORTED_MEMBERSHIP = CONNECTOR__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__MEMBER = CONNECTOR__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__MEMBERSHIP = CONNECTOR__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_IMPORT = CONNECTOR__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_MEMBER = CONNECTOR__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_MEMBERSHIP = CONNECTOR__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_ABSTRACT = CONNECTOR__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_CONJUGATED = CONNECTOR__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_SUFFICIENT = CONNECTOR__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__DIFFERENCING_TYPE = CONNECTOR__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__DIRECTED_FEATURE = CONNECTOR__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__END_FEATURE = CONNECTOR__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__FEATURE = CONNECTOR__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__FEATURE_MEMBERSHIP = CONNECTOR__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__INHERITED_FEATURE = CONNECTOR__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__INHERITED_MEMBERSHIP = CONNECTOR__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__INPUT = CONNECTOR__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__INTERSECTING_TYPE = CONNECTOR__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__MULTIPLICITY = CONNECTOR__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OUTPUT = CONNECTOR__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_CONJUGATOR = CONNECTOR__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_DIFFERENCING = CONNECTOR__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_DISJOINING = CONNECTOR__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_END_FEATURE = CONNECTOR__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_FEATURE = CONNECTOR__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_FEATURE_MEMBERSHIP = CONNECTOR__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_INTERSECTING = CONNECTOR__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_SPECIALIZATION = CONNECTOR__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_UNIONING = CONNECTOR__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__UNIONING_TYPE = CONNECTOR__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__DIRECTION = CONNECTOR__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_COMPOSITE = CONNECTOR__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_CONSTANT = CONNECTOR__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_DERIVED = CONNECTOR__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_END = CONNECTOR__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_NONUNIQUE = CONNECTOR__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_ORDERED = CONNECTOR__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_PORTION = CONNECTOR__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_UNIQUE = CONNECTOR__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_VARIABLE = CONNECTOR__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__CHAINING_FEATURE = CONNECTOR__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__CROSS_FEATURE = CONNECTOR__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__END_OWNING_TYPE = CONNECTOR__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__FEATURE_TARGET = CONNECTOR__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__FEATURING_TYPE = CONNECTOR__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_CROSS_SUBSETTING = CONNECTOR__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_FEATURE_CHAINING = CONNECTOR__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_FEATURE_INVERTING = CONNECTOR__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_REDEFINITION = CONNECTOR__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_REFERENCE_SUBSETTING = CONNECTOR__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_SUBSETTING = CONNECTOR__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_TYPE_FEATURING = CONNECTOR__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_TYPING = CONNECTOR__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNING_FEATURE_MEMBERSHIP = CONNECTOR__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNING_TYPE = CONNECTOR__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__TYPE = CONNECTOR__TYPE; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__IS_IMPLIED = CONNECTOR__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNED_RELATED_ELEMENT = CONNECTOR__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__OWNING_RELATED_ELEMENT = CONNECTOR__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__RELATED_ELEMENT = CONNECTOR__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__SOURCE = CONNECTOR__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__TARGET = CONNECTOR__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__ASSOCIATION = CONNECTOR__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__CONNECTOR_END = CONNECTOR__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__DEFAULT_FEATURING_TYPE = CONNECTOR__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__RELATED_FEATURE = CONNECTOR__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__SOURCE_FEATURE = CONNECTOR__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR__TARGET_FEATURE = CONNECTOR__TARGET_FEATURE; + + /** + * The number of structural features of the 'Binding Connector' class. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_FEATURE_COUNT = CONNECTOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___EFFECTIVE_NAME = CONNECTOR___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___EFFECTIVE_SHORT_NAME = CONNECTOR___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___ESCAPED_NAME = CONNECTOR___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___LIBRARY_NAMESPACE = CONNECTOR___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___PATH = CONNECTOR___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___IMPORTED_MEMBERSHIPS__ELIST = CONNECTOR___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTOR___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___NAMES_OF__ELEMENT = CONNECTOR___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___QUALIFICATION_OF__STRING = CONNECTOR___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___RESOLVE__STRING = CONNECTOR___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___RESOLVE_GLOBAL__STRING = CONNECTOR___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___RESOLVE_LOCAL__STRING = CONNECTOR___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___RESOLVE_VISIBLE__STRING = CONNECTOR___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___UNQUALIFIED_NAME_OF__STRING = CONNECTOR___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___VISIBILITY_OF__MEMBERSHIP = CONNECTOR___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTOR___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTOR___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___ALL_SUPERTYPES = CONNECTOR___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___DIRECTION_OF__FEATURE = CONNECTOR___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTOR___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___IS_COMPATIBLE_WITH__TYPE = CONNECTOR___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___MULTIPLICITIES = CONNECTOR___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTOR___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___SPECIALIZES__TYPE = CONNECTOR___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTOR___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___SUPERTYPES__BOOLEAN = CONNECTOR___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___ALL_REDEFINED_FEATURES = CONNECTOR___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___AS_CARTESIAN_PRODUCT = CONNECTOR___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___CAN_ACCESS__FEATURE = CONNECTOR___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___DIRECTION_FOR__TYPE = CONNECTOR___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___IS_CARTESIAN_PRODUCT = CONNECTOR___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___IS_FEATURED_WITHIN__TYPE = CONNECTOR___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___IS_FEATURING_TYPE__TYPE = CONNECTOR___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___IS_OWNED_CROSS_FEATURE = CONNECTOR___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___NAMING_FEATURE = CONNECTOR___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___OWNED_CROSS_FEATURE = CONNECTOR___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___REDEFINES__FEATURE = CONNECTOR___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___REDEFINES_FROM_LIBRARY__STRING = CONNECTOR___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___SUBSETS_CHAIN__FEATURE_FEATURE = CONNECTOR___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR___TYPING_FEATURES = CONNECTOR___TYPING_FEATURES; + + /** + * The number of operations of the 'Binding Connector' class. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_OPERATION_COUNT = CONNECTOR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.BindingConnectorAsUsageImpl Binding Connector As Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.BindingConnectorAsUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getBindingConnectorAsUsage() + * @generated + */ + int BINDING_CONNECTOR_AS_USAGE = 18; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__ALIAS_IDS = CONNECTOR_AS_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__DECLARED_NAME = CONNECTOR_AS_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__DECLARED_SHORT_NAME = CONNECTOR_AS_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__ELEMENT_ID = CONNECTOR_AS_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_IMPLIED_INCLUDED = CONNECTOR_AS_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_LIBRARY_ELEMENT = CONNECTOR_AS_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NAME = CONNECTOR_AS_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__QUALIFIED_NAME = CONNECTOR_AS_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__SHORT_NAME = CONNECTOR_AS_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__DOCUMENTATION = CONNECTOR_AS_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_ANNOTATION = CONNECTOR_AS_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_ELEMENT = CONNECTOR_AS_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_RELATIONSHIP = CONNECTOR_AS_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNER = CONNECTOR_AS_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNING_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNING_NAMESPACE = CONNECTOR_AS_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNING_RELATIONSHIP = CONNECTOR_AS_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__TEXTUAL_REPRESENTATION = CONNECTOR_AS_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IMPORTED_MEMBERSHIP = CONNECTOR_AS_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__MEMBER = CONNECTOR_AS_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__MEMBERSHIP = CONNECTOR_AS_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_IMPORT = CONNECTOR_AS_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_MEMBER = CONNECTOR_AS_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_ABSTRACT = CONNECTOR_AS_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_CONJUGATED = CONNECTOR_AS_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_SUFFICIENT = CONNECTOR_AS_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__DIFFERENCING_TYPE = CONNECTOR_AS_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__DIRECTED_FEATURE = CONNECTOR_AS_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__END_FEATURE = CONNECTOR_AS_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__FEATURE = CONNECTOR_AS_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__INHERITED_FEATURE = CONNECTOR_AS_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__INHERITED_MEMBERSHIP = CONNECTOR_AS_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__INPUT = CONNECTOR_AS_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__INTERSECTING_TYPE = CONNECTOR_AS_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__MULTIPLICITY = CONNECTOR_AS_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OUTPUT = CONNECTOR_AS_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_CONJUGATOR = CONNECTOR_AS_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_DIFFERENCING = CONNECTOR_AS_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_DISJOINING = CONNECTOR_AS_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_END_FEATURE = CONNECTOR_AS_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_FEATURE = CONNECTOR_AS_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_INTERSECTING = CONNECTOR_AS_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_SPECIALIZATION = CONNECTOR_AS_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_UNIONING = CONNECTOR_AS_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__UNIONING_TYPE = CONNECTOR_AS_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__DIRECTION = CONNECTOR_AS_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_COMPOSITE = CONNECTOR_AS_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_CONSTANT = CONNECTOR_AS_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_DERIVED = CONNECTOR_AS_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_END = CONNECTOR_AS_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_NONUNIQUE = CONNECTOR_AS_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_ORDERED = CONNECTOR_AS_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_PORTION = CONNECTOR_AS_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_UNIQUE = CONNECTOR_AS_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_VARIABLE = CONNECTOR_AS_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__CHAINING_FEATURE = CONNECTOR_AS_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__CROSS_FEATURE = CONNECTOR_AS_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__END_OWNING_TYPE = CONNECTOR_AS_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__FEATURE_TARGET = CONNECTOR_AS_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__FEATURING_TYPE = CONNECTOR_AS_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_CROSS_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_FEATURE_CHAINING = CONNECTOR_AS_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_FEATURE_INVERTING = CONNECTOR_AS_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_REDEFINITION = CONNECTOR_AS_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_REFERENCE_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_TYPE_FEATURING = CONNECTOR_AS_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_TYPING = CONNECTOR_AS_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNING_FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNING_TYPE = CONNECTOR_AS_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__TYPE = CONNECTOR_AS_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_REFERENCE = CONNECTOR_AS_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_VARIATION = CONNECTOR_AS_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__MAY_TIME_VARY = CONNECTOR_AS_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__DEFINITION = CONNECTOR_AS_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__DIRECTED_USAGE = CONNECTOR_AS_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_ACTION = CONNECTOR_AS_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_ALLOCATION = CONNECTOR_AS_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_ANALYSIS_CASE = CONNECTOR_AS_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_ATTRIBUTE = CONNECTOR_AS_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_CALCULATION = CONNECTOR_AS_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_CASE = CONNECTOR_AS_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_CONCERN = CONNECTOR_AS_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_CONNECTION = CONNECTOR_AS_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_CONSTRAINT = CONNECTOR_AS_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_ENUMERATION = CONNECTOR_AS_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_FLOW = CONNECTOR_AS_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_INTERFACE = CONNECTOR_AS_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_ITEM = CONNECTOR_AS_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_METADATA = CONNECTOR_AS_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_OCCURRENCE = CONNECTOR_AS_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_PART = CONNECTOR_AS_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_PORT = CONNECTOR_AS_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_REFERENCE = CONNECTOR_AS_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_RENDERING = CONNECTOR_AS_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_REQUIREMENT = CONNECTOR_AS_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_STATE = CONNECTOR_AS_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_TRANSITION = CONNECTOR_AS_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_USAGE = CONNECTOR_AS_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_USE_CASE = CONNECTOR_AS_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_VERIFICATION_CASE = CONNECTOR_AS_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_VIEW = CONNECTOR_AS_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__NESTED_VIEWPOINT = CONNECTOR_AS_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNING_DEFINITION = CONNECTOR_AS_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNING_USAGE = CONNECTOR_AS_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__USAGE = CONNECTOR_AS_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__VARIANT = CONNECTOR_AS_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__VARIANT_MEMBERSHIP = CONNECTOR_AS_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__IS_IMPLIED = CONNECTOR_AS_USAGE__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNED_RELATED_ELEMENT = CONNECTOR_AS_USAGE__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__OWNING_RELATED_ELEMENT = CONNECTOR_AS_USAGE__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__RELATED_ELEMENT = CONNECTOR_AS_USAGE__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__SOURCE = CONNECTOR_AS_USAGE__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__TARGET = CONNECTOR_AS_USAGE__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__ASSOCIATION = CONNECTOR_AS_USAGE__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__CONNECTOR_END = CONNECTOR_AS_USAGE__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__DEFAULT_FEATURING_TYPE = CONNECTOR_AS_USAGE__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__RELATED_FEATURE = CONNECTOR_AS_USAGE__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__SOURCE_FEATURE = CONNECTOR_AS_USAGE__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE__TARGET_FEATURE = CONNECTOR_AS_USAGE__TARGET_FEATURE; + + /** + * The number of structural features of the 'Binding Connector As Usage' class. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE_FEATURE_COUNT = CONNECTOR_AS_USAGE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___EFFECTIVE_NAME = CONNECTOR_AS_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___EFFECTIVE_SHORT_NAME = CONNECTOR_AS_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___ESCAPED_NAME = CONNECTOR_AS_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___LIBRARY_NAMESPACE = CONNECTOR_AS_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___PATH = CONNECTOR_AS_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CONNECTOR_AS_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTOR_AS_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___NAMES_OF__ELEMENT = CONNECTOR_AS_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___QUALIFICATION_OF__STRING = CONNECTOR_AS_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___RESOLVE__STRING = CONNECTOR_AS_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___RESOLVE_GLOBAL__STRING = CONNECTOR_AS_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___RESOLVE_LOCAL__STRING = CONNECTOR_AS_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___RESOLVE_VISIBLE__STRING = CONNECTOR_AS_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___UNQUALIFIED_NAME_OF__STRING = CONNECTOR_AS_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___VISIBILITY_OF__MEMBERSHIP = CONNECTOR_AS_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTOR_AS_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___ALL_SUPERTYPES = CONNECTOR_AS_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___DIRECTION_OF__FEATURE = CONNECTOR_AS_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTOR_AS_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___IS_COMPATIBLE_WITH__TYPE = CONNECTOR_AS_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___MULTIPLICITIES = CONNECTOR_AS_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTOR_AS_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___SPECIALIZES__TYPE = CONNECTOR_AS_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTOR_AS_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___SUPERTYPES__BOOLEAN = CONNECTOR_AS_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES = CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___AS_CARTESIAN_PRODUCT = CONNECTOR_AS_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___CAN_ACCESS__FEATURE = CONNECTOR_AS_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___DIRECTION_FOR__TYPE = CONNECTOR_AS_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___IS_CARTESIAN_PRODUCT = CONNECTOR_AS_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___IS_FEATURED_WITHIN__TYPE = CONNECTOR_AS_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___IS_FEATURING_TYPE__TYPE = CONNECTOR_AS_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___IS_OWNED_CROSS_FEATURE = CONNECTOR_AS_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___NAMING_FEATURE = CONNECTOR_AS_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___OWNED_CROSS_FEATURE = CONNECTOR_AS_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___REDEFINES__FEATURE = CONNECTOR_AS_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___REDEFINES_FROM_LIBRARY__STRING = CONNECTOR_AS_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CONNECTOR_AS_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___TYPING_FEATURES = CONNECTOR_AS_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE___REFERENCED_FEATURE_TARGET = CONNECTOR_AS_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Binding Connector As Usage' class. + * + * + * @generated + * @ordered + */ + int BINDING_CONNECTOR_AS_USAGE_OPERATION_COUNT = CONNECTOR_AS_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.StepImpl Step}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StepImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStep() + * @generated + */ + int STEP = 146; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int STEP__ALIAS_IDS = FEATURE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int STEP__DECLARED_NAME = FEATURE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STEP__DECLARED_SHORT_NAME = FEATURE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int STEP__ELEMENT_ID = FEATURE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_IMPLIED_INCLUDED = FEATURE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_LIBRARY_ELEMENT = FEATURE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STEP__NAME = FEATURE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STEP__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STEP__SHORT_NAME = FEATURE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int STEP__DOCUMENTATION = FEATURE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_ANNOTATION = FEATURE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_RELATIONSHIP = FEATURE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STEP__OWNER = FEATURE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int STEP__OWNING_MEMBERSHIP = FEATURE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int STEP__OWNING_NAMESPACE = FEATURE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int STEP__OWNING_RELATIONSHIP = FEATURE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int STEP__TEXTUAL_REPRESENTATION = FEATURE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int STEP__IMPORTED_MEMBERSHIP = FEATURE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int STEP__MEMBER = FEATURE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int STEP__MEMBERSHIP = FEATURE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_IMPORT = FEATURE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_MEMBER = FEATURE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_MEMBERSHIP = FEATURE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_ABSTRACT = FEATURE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_CONJUGATED = FEATURE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_SUFFICIENT = FEATURE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int STEP__DIFFERENCING_TYPE = FEATURE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int STEP__DIRECTED_FEATURE = FEATURE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int STEP__END_FEATURE = FEATURE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int STEP__FEATURE = FEATURE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int STEP__FEATURE_MEMBERSHIP = FEATURE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int STEP__INHERITED_FEATURE = FEATURE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int STEP__INHERITED_MEMBERSHIP = FEATURE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int STEP__INPUT = FEATURE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int STEP__INTERSECTING_TYPE = FEATURE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int STEP__MULTIPLICITY = FEATURE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OUTPUT = FEATURE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_CONJUGATOR = FEATURE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_DIFFERENCING = FEATURE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_DISJOINING = FEATURE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_END_FEATURE = FEATURE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_FEATURE = FEATURE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_FEATURE_MEMBERSHIP = FEATURE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_INTERSECTING = FEATURE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_SPECIALIZATION = FEATURE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_UNIONING = FEATURE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int STEP__UNIONING_TYPE = FEATURE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int STEP__DIRECTION = FEATURE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_COMPOSITE = FEATURE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_CONSTANT = FEATURE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_DERIVED = FEATURE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_END = FEATURE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_NONUNIQUE = FEATURE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_ORDERED = FEATURE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_PORTION = FEATURE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_UNIQUE = FEATURE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int STEP__IS_VARIABLE = FEATURE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int STEP__CHAINING_FEATURE = FEATURE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int STEP__CROSS_FEATURE = FEATURE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int STEP__END_OWNING_TYPE = FEATURE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int STEP__FEATURE_TARGET = FEATURE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int STEP__FEATURING_TYPE = FEATURE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_CROSS_SUBSETTING = FEATURE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_FEATURE_CHAINING = FEATURE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_FEATURE_INVERTING = FEATURE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_REDEFINITION = FEATURE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_REFERENCE_SUBSETTING = FEATURE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_SUBSETTING = FEATURE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_TYPE_FEATURING = FEATURE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int STEP__OWNED_TYPING = FEATURE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int STEP__OWNING_FEATURE_MEMBERSHIP = FEATURE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int STEP__OWNING_TYPE = FEATURE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int STEP__TYPE = FEATURE__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int STEP__BEHAVIOR = FEATURE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int STEP__PARAMETER = FEATURE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Step' class. + * + * + * @generated + * @ordered + */ + int STEP_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int STEP___EFFECTIVE_NAME = FEATURE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int STEP___EFFECTIVE_SHORT_NAME = FEATURE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int STEP___ESCAPED_NAME = FEATURE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int STEP___LIBRARY_NAMESPACE = FEATURE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int STEP___PATH = FEATURE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int STEP___IMPORTED_MEMBERSHIPS__ELIST = FEATURE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int STEP___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = FEATURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int STEP___NAMES_OF__ELEMENT = FEATURE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int STEP___QUALIFICATION_OF__STRING = FEATURE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int STEP___RESOLVE__STRING = FEATURE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int STEP___RESOLVE_GLOBAL__STRING = FEATURE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int STEP___RESOLVE_LOCAL__STRING = FEATURE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int STEP___RESOLVE_VISIBLE__STRING = FEATURE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int STEP___UNQUALIFIED_NAME_OF__STRING = FEATURE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int STEP___VISIBILITY_OF__MEMBERSHIP = FEATURE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int STEP___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = FEATURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int STEP___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = FEATURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int STEP___ALL_SUPERTYPES = FEATURE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int STEP___DIRECTION_OF__FEATURE = FEATURE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int STEP___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = FEATURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int STEP___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int STEP___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int STEP___IS_COMPATIBLE_WITH__TYPE = FEATURE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int STEP___MULTIPLICITIES = FEATURE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int STEP___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int STEP___REMOVE_REDEFINED_FEATURES__ELIST = FEATURE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int STEP___SPECIALIZES__TYPE = FEATURE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int STEP___SPECIALIZES_FROM_LIBRARY__STRING = FEATURE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int STEP___SUPERTYPES__BOOLEAN = FEATURE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int STEP___ALL_REDEFINED_FEATURES = FEATURE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int STEP___AS_CARTESIAN_PRODUCT = FEATURE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int STEP___CAN_ACCESS__FEATURE = FEATURE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int STEP___DIRECTION_FOR__TYPE = FEATURE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int STEP___IS_CARTESIAN_PRODUCT = FEATURE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int STEP___IS_FEATURED_WITHIN__TYPE = FEATURE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int STEP___IS_FEATURING_TYPE__TYPE = FEATURE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int STEP___IS_OWNED_CROSS_FEATURE = FEATURE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int STEP___NAMING_FEATURE = FEATURE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int STEP___OWNED_CROSS_FEATURE = FEATURE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int STEP___REDEFINES__FEATURE = FEATURE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int STEP___REDEFINES_FROM_LIBRARY__STRING = FEATURE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int STEP___SUBSETS_CHAIN__FEATURE_FEATURE = FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int STEP___TYPING_FEATURES = FEATURE___TYPING_FEATURES; + + /** + * The number of operations of the 'Step' class. + * + * + * @generated + * @ordered + */ + int STEP_OPERATION_COUNT = FEATURE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ExpressionImpl Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getExpression() + * @generated + */ + int EXPRESSION = 57; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__ALIAS_IDS = STEP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__DECLARED_NAME = STEP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__DECLARED_SHORT_NAME = STEP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__ELEMENT_ID = STEP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_IMPLIED_INCLUDED = STEP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_LIBRARY_ELEMENT = STEP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__NAME = STEP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__QUALIFIED_NAME = STEP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__SHORT_NAME = STEP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__DOCUMENTATION = STEP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_ANNOTATION = STEP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_ELEMENT = STEP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_RELATIONSHIP = STEP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNER = STEP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNING_MEMBERSHIP = STEP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNING_NAMESPACE = STEP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNING_RELATIONSHIP = STEP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__TEXTUAL_REPRESENTATION = STEP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IMPORTED_MEMBERSHIP = STEP__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__MEMBER = STEP__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__MEMBERSHIP = STEP__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_IMPORT = STEP__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_MEMBER = STEP__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_MEMBERSHIP = STEP__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_ABSTRACT = STEP__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_CONJUGATED = STEP__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_SUFFICIENT = STEP__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__DIFFERENCING_TYPE = STEP__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__DIRECTED_FEATURE = STEP__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__END_FEATURE = STEP__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__FEATURE = STEP__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__FEATURE_MEMBERSHIP = STEP__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__INHERITED_FEATURE = STEP__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__INHERITED_MEMBERSHIP = STEP__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__INPUT = STEP__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__INTERSECTING_TYPE = STEP__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__MULTIPLICITY = STEP__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OUTPUT = STEP__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_CONJUGATOR = STEP__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_DIFFERENCING = STEP__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_DISJOINING = STEP__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_END_FEATURE = STEP__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_FEATURE = STEP__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_FEATURE_MEMBERSHIP = STEP__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_INTERSECTING = STEP__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_SPECIALIZATION = STEP__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_UNIONING = STEP__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__UNIONING_TYPE = STEP__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__DIRECTION = STEP__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_COMPOSITE = STEP__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_CONSTANT = STEP__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_DERIVED = STEP__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_END = STEP__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_NONUNIQUE = STEP__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_ORDERED = STEP__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_PORTION = STEP__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_UNIQUE = STEP__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_VARIABLE = STEP__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__CHAINING_FEATURE = STEP__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__CROSS_FEATURE = STEP__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__END_OWNING_TYPE = STEP__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__FEATURE_TARGET = STEP__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__FEATURING_TYPE = STEP__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_CROSS_SUBSETTING = STEP__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_FEATURE_CHAINING = STEP__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_FEATURE_INVERTING = STEP__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_REDEFINITION = STEP__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_REFERENCE_SUBSETTING = STEP__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_SUBSETTING = STEP__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_TYPE_FEATURING = STEP__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNED_TYPING = STEP__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNING_FEATURE_MEMBERSHIP = STEP__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__OWNING_TYPE = STEP__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__TYPE = STEP__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__BEHAVIOR = STEP__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int EXPRESSION__PARAMETER = STEP__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = STEP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__FUNCTION = STEP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int EXPRESSION__RESULT = STEP_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Expression' class. + * + * + * @generated + * @ordered + */ + int EXPRESSION_FEATURE_COUNT = STEP_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___EFFECTIVE_NAME = STEP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___EFFECTIVE_SHORT_NAME = STEP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___ESCAPED_NAME = STEP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___LIBRARY_NAMESPACE = STEP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___PATH = STEP___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = STEP___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = STEP___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___NAMES_OF__ELEMENT = STEP___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___QUALIFICATION_OF__STRING = STEP___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___RESOLVE__STRING = STEP___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___RESOLVE_GLOBAL__STRING = STEP___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___RESOLVE_LOCAL__STRING = STEP___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___RESOLVE_VISIBLE__STRING = STEP___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___UNQUALIFIED_NAME_OF__STRING = STEP___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___VISIBILITY_OF__MEMBERSHIP = STEP___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = STEP___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = STEP___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___ALL_SUPERTYPES = STEP___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___DIRECTION_OF__FEATURE = STEP___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = STEP___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = STEP___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = STEP___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___IS_COMPATIBLE_WITH__TYPE = STEP___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___MULTIPLICITIES = STEP___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = STEP___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = STEP___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___SPECIALIZES__TYPE = STEP___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = STEP___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___SUPERTYPES__BOOLEAN = STEP___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___ALL_REDEFINED_FEATURES = STEP___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___AS_CARTESIAN_PRODUCT = STEP___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___CAN_ACCESS__FEATURE = STEP___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___DIRECTION_FOR__TYPE = STEP___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___IS_CARTESIAN_PRODUCT = STEP___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___IS_FEATURED_WITHIN__TYPE = STEP___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___IS_FEATURING_TYPE__TYPE = STEP___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___IS_OWNED_CROSS_FEATURE = STEP___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___NAMING_FEATURE = STEP___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___OWNED_CROSS_FEATURE = STEP___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___REDEFINES__FEATURE = STEP___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = STEP___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = STEP___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___TYPING_FEATURES = STEP___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___CHECK_CONDITION__ELEMENT = STEP_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___EVALUATE__ELEMENT = STEP_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = STEP_OPERATION_COUNT + 2; + + /** + * The number of operations of the 'Expression' class. + * + * + * @generated + * @ordered + */ + int EXPRESSION_OPERATION_COUNT = STEP_OPERATION_COUNT + 3; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.BooleanExpressionImpl Boolean Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.BooleanExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getBooleanExpression() + * @generated + */ + int BOOLEAN_EXPRESSION = 19; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__ALIAS_IDS = EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__DECLARED_NAME = EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__DECLARED_SHORT_NAME = EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__ELEMENT_ID = EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_IMPLIED_INCLUDED = EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_LIBRARY_ELEMENT = EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__QUALIFIED_NAME = EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__SHORT_NAME = EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__DOCUMENTATION = EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_ANNOTATION = EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_ELEMENT = EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_RELATIONSHIP = EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNER = EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNING_MEMBERSHIP = EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNING_NAMESPACE = EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNING_RELATIONSHIP = EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__TEXTUAL_REPRESENTATION = EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IMPORTED_MEMBERSHIP = EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__MEMBER = EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__MEMBERSHIP = EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_IMPORT = EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_MEMBER = EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_MEMBERSHIP = EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_ABSTRACT = EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_CONJUGATED = EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_SUFFICIENT = EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__DIFFERENCING_TYPE = EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__DIRECTED_FEATURE = EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__END_FEATURE = EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__FEATURE = EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__FEATURE_MEMBERSHIP = EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__INHERITED_FEATURE = EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__INHERITED_MEMBERSHIP = EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__INPUT = EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__INTERSECTING_TYPE = EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__MULTIPLICITY = EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OUTPUT = EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_CONJUGATOR = EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_DIFFERENCING = EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_DISJOINING = EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_END_FEATURE = EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_FEATURE = EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_INTERSECTING = EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_SPECIALIZATION = EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_UNIONING = EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__UNIONING_TYPE = EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__DIRECTION = EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_COMPOSITE = EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_CONSTANT = EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_DERIVED = EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_END = EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_NONUNIQUE = EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_ORDERED = EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_PORTION = EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_UNIQUE = EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_VARIABLE = EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__CHAINING_FEATURE = EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__CROSS_FEATURE = EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__END_OWNING_TYPE = EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__FEATURE_TARGET = EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__FEATURING_TYPE = EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_CROSS_SUBSETTING = EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_FEATURE_CHAINING = EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_FEATURE_INVERTING = EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_REDEFINITION = EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_REFERENCE_SUBSETTING = EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_SUBSETTING = EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_TYPE_FEATURING = EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNED_TYPING = EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__OWNING_TYPE = EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__BEHAVIOR = EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__PARAMETER = EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__FUNCTION = EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__RESULT = EXPRESSION__RESULT; + + /** + * The feature id for the 'Predicate' reference. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION__PREDICATE = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Boolean Expression' class. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___EFFECTIVE_NAME = EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___EFFECTIVE_SHORT_NAME = EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___ESCAPED_NAME = EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___LIBRARY_NAMESPACE = EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___PATH = EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___NAMES_OF__ELEMENT = EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___QUALIFICATION_OF__STRING = EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___RESOLVE__STRING = EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___RESOLVE_GLOBAL__STRING = EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___RESOLVE_LOCAL__STRING = EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___RESOLVE_VISIBLE__STRING = EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___ALL_SUPERTYPES = EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___DIRECTION_OF__FEATURE = EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___MULTIPLICITIES = EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___SPECIALIZES__TYPE = EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___SUPERTYPES__BOOLEAN = EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___ALL_REDEFINED_FEATURES = EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___AS_CARTESIAN_PRODUCT = EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___CAN_ACCESS__FEATURE = EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___DIRECTION_FOR__TYPE = EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___IS_CARTESIAN_PRODUCT = EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___IS_FEATURED_WITHIN__TYPE = EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___IS_FEATURING_TYPE__TYPE = EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___IS_OWNED_CROSS_FEATURE = EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___NAMING_FEATURE = EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___OWNED_CROSS_FEATURE = EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___REDEFINES__FEATURE = EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___TYPING_FEATURES = EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___CHECK_CONDITION__ELEMENT = EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___EVALUATE__ELEMENT = EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Boolean Expression' class. + * + * + * @generated + * @ordered + */ + int BOOLEAN_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.InstantiationExpressionImpl Instantiation Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InstantiationExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInstantiationExpression() + * @generated + */ + int INSTANTIATION_EXPRESSION = 78; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__ALIAS_IDS = EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__DECLARED_NAME = EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__DECLARED_SHORT_NAME = EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__ELEMENT_ID = EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_IMPLIED_INCLUDED = EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_LIBRARY_ELEMENT = EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__QUALIFIED_NAME = EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__SHORT_NAME = EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__DOCUMENTATION = EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_ANNOTATION = EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_ELEMENT = EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_RELATIONSHIP = EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNER = EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNING_MEMBERSHIP = EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNING_NAMESPACE = EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNING_RELATIONSHIP = EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__TEXTUAL_REPRESENTATION = EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IMPORTED_MEMBERSHIP = EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__MEMBER = EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__MEMBERSHIP = EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_IMPORT = EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_MEMBER = EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_MEMBERSHIP = EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_ABSTRACT = EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_CONJUGATED = EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_SUFFICIENT = EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__DIFFERENCING_TYPE = EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__DIRECTED_FEATURE = EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__END_FEATURE = EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__FEATURE = EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__FEATURE_MEMBERSHIP = EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__INHERITED_FEATURE = EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__INHERITED_MEMBERSHIP = EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__INPUT = EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__INTERSECTING_TYPE = EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__MULTIPLICITY = EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OUTPUT = EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_CONJUGATOR = EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_DIFFERENCING = EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_DISJOINING = EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_END_FEATURE = EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_FEATURE = EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_INTERSECTING = EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_SPECIALIZATION = EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_UNIONING = EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__UNIONING_TYPE = EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__DIRECTION = EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_COMPOSITE = EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_CONSTANT = EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_DERIVED = EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_END = EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_NONUNIQUE = EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_ORDERED = EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_PORTION = EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_UNIQUE = EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_VARIABLE = EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__CHAINING_FEATURE = EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__CROSS_FEATURE = EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__END_OWNING_TYPE = EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__FEATURE_TARGET = EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__FEATURING_TYPE = EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_CROSS_SUBSETTING = EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_FEATURE_CHAINING = EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_FEATURE_INVERTING = EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_REDEFINITION = EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_REFERENCE_SUBSETTING = EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_SUBSETTING = EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_TYPE_FEATURING = EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNED_TYPING = EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__OWNING_TYPE = EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__BEHAVIOR = EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__PARAMETER = EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__FUNCTION = EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__RESULT = EXPRESSION__RESULT; + + /** + * The feature id for the 'Argument' reference list. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__ARGUMENT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Instantiated Type' reference. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION__INSTANTIATED_TYPE = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Instantiation Expression' class. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___EFFECTIVE_NAME = EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___EFFECTIVE_SHORT_NAME = EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___ESCAPED_NAME = EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___LIBRARY_NAMESPACE = EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___PATH = EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___NAMES_OF__ELEMENT = EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___QUALIFICATION_OF__STRING = EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___RESOLVE__STRING = EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___RESOLVE_GLOBAL__STRING = EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___RESOLVE_LOCAL__STRING = EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___RESOLVE_VISIBLE__STRING = EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___ALL_SUPERTYPES = EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___DIRECTION_OF__FEATURE = EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___MULTIPLICITIES = EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___SPECIALIZES__TYPE = EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___SUPERTYPES__BOOLEAN = EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___ALL_REDEFINED_FEATURES = EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___AS_CARTESIAN_PRODUCT = EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___CAN_ACCESS__FEATURE = EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___DIRECTION_FOR__TYPE = EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___IS_CARTESIAN_PRODUCT = EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___IS_FEATURED_WITHIN__TYPE = EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___IS_FEATURING_TYPE__TYPE = EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___IS_OWNED_CROSS_FEATURE = EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___NAMING_FEATURE = EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___OWNED_CROSS_FEATURE = EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___REDEFINES__FEATURE = EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___TYPING_FEATURES = EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___CHECK_CONDITION__ELEMENT = EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___EVALUATE__ELEMENT = EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The operation id for the 'Instantiated Type' operation. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION___INSTANTIATED_TYPE = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Instantiation Expression' class. + * + * + * @generated + * @ordered + */ + int INSTANTIATION_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.InvocationExpressionImpl Invocation Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InvocationExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInvocationExpression() + * @generated + */ + int INVOCATION_EXPRESSION = 84; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__ALIAS_IDS = INSTANTIATION_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__DECLARED_NAME = INSTANTIATION_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__DECLARED_SHORT_NAME = INSTANTIATION_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__ELEMENT_ID = INSTANTIATION_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_IMPLIED_INCLUDED = INSTANTIATION_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_LIBRARY_ELEMENT = INSTANTIATION_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__NAME = INSTANTIATION_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__QUALIFIED_NAME = INSTANTIATION_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__SHORT_NAME = INSTANTIATION_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__DOCUMENTATION = INSTANTIATION_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_ANNOTATION = INSTANTIATION_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_ELEMENT = INSTANTIATION_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_RELATIONSHIP = INSTANTIATION_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNER = INSTANTIATION_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNING_MEMBERSHIP = INSTANTIATION_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNING_NAMESPACE = INSTANTIATION_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNING_RELATIONSHIP = INSTANTIATION_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__TEXTUAL_REPRESENTATION = INSTANTIATION_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IMPORTED_MEMBERSHIP = INSTANTIATION_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__MEMBER = INSTANTIATION_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__MEMBERSHIP = INSTANTIATION_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_IMPORT = INSTANTIATION_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_MEMBER = INSTANTIATION_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_MEMBERSHIP = INSTANTIATION_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_ABSTRACT = INSTANTIATION_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_CONJUGATED = INSTANTIATION_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_SUFFICIENT = INSTANTIATION_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__DIFFERENCING_TYPE = INSTANTIATION_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__DIRECTED_FEATURE = INSTANTIATION_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__END_FEATURE = INSTANTIATION_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__FEATURE = INSTANTIATION_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__FEATURE_MEMBERSHIP = INSTANTIATION_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__INHERITED_FEATURE = INSTANTIATION_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__INHERITED_MEMBERSHIP = INSTANTIATION_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__INPUT = INSTANTIATION_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__INTERSECTING_TYPE = INSTANTIATION_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__MULTIPLICITY = INSTANTIATION_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OUTPUT = INSTANTIATION_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_CONJUGATOR = INSTANTIATION_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_DIFFERENCING = INSTANTIATION_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_DISJOINING = INSTANTIATION_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_END_FEATURE = INSTANTIATION_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_FEATURE = INSTANTIATION_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = INSTANTIATION_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_INTERSECTING = INSTANTIATION_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_SPECIALIZATION = INSTANTIATION_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_UNIONING = INSTANTIATION_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__UNIONING_TYPE = INSTANTIATION_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__DIRECTION = INSTANTIATION_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_COMPOSITE = INSTANTIATION_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_CONSTANT = INSTANTIATION_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_DERIVED = INSTANTIATION_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_END = INSTANTIATION_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_NONUNIQUE = INSTANTIATION_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_ORDERED = INSTANTIATION_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_PORTION = INSTANTIATION_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_UNIQUE = INSTANTIATION_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_VARIABLE = INSTANTIATION_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__CHAINING_FEATURE = INSTANTIATION_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__CROSS_FEATURE = INSTANTIATION_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__END_OWNING_TYPE = INSTANTIATION_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__FEATURE_TARGET = INSTANTIATION_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__FEATURING_TYPE = INSTANTIATION_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_CROSS_SUBSETTING = INSTANTIATION_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_FEATURE_CHAINING = INSTANTIATION_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_FEATURE_INVERTING = INSTANTIATION_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_REDEFINITION = INSTANTIATION_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_REFERENCE_SUBSETTING = INSTANTIATION_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_SUBSETTING = INSTANTIATION_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_TYPE_FEATURING = INSTANTIATION_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNED_TYPING = INSTANTIATION_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = INSTANTIATION_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OWNING_TYPE = INSTANTIATION_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__TYPE = INSTANTIATION_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__BEHAVIOR = INSTANTIATION_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__PARAMETER = INSTANTIATION_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = INSTANTIATION_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__FUNCTION = INSTANTIATION_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__RESULT = INSTANTIATION_EXPRESSION__RESULT; + + /** + * The feature id for the 'Argument' reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__ARGUMENT = INSTANTIATION_EXPRESSION__ARGUMENT; + + /** + * The feature id for the 'Instantiated Type' reference. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__INSTANTIATED_TYPE = INSTANTIATION_EXPRESSION__INSTANTIATED_TYPE; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION__OPERAND = INSTANTIATION_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Invocation Expression' class. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION_FEATURE_COUNT = INSTANTIATION_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___EFFECTIVE_NAME = INSTANTIATION_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___EFFECTIVE_SHORT_NAME = INSTANTIATION_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___ESCAPED_NAME = INSTANTIATION_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___LIBRARY_NAMESPACE = INSTANTIATION_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___PATH = INSTANTIATION_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = INSTANTIATION_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = INSTANTIATION_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___NAMES_OF__ELEMENT = INSTANTIATION_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___QUALIFICATION_OF__STRING = INSTANTIATION_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___RESOLVE__STRING = INSTANTIATION_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___RESOLVE_GLOBAL__STRING = INSTANTIATION_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___RESOLVE_LOCAL__STRING = INSTANTIATION_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___RESOLVE_VISIBLE__STRING = INSTANTIATION_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = INSTANTIATION_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = INSTANTIATION_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = INSTANTIATION_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = INSTANTIATION_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___ALL_SUPERTYPES = INSTANTIATION_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___DIRECTION_OF__FEATURE = INSTANTIATION_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = INSTANTIATION_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INSTANTIATION_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INSTANTIATION_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = INSTANTIATION_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___MULTIPLICITIES = INSTANTIATION_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INSTANTIATION_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = INSTANTIATION_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___SPECIALIZES__TYPE = INSTANTIATION_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = INSTANTIATION_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___SUPERTYPES__BOOLEAN = INSTANTIATION_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___ALL_REDEFINED_FEATURES = INSTANTIATION_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___AS_CARTESIAN_PRODUCT = INSTANTIATION_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___CAN_ACCESS__FEATURE = INSTANTIATION_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___DIRECTION_FOR__TYPE = INSTANTIATION_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___IS_CARTESIAN_PRODUCT = INSTANTIATION_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___IS_FEATURED_WITHIN__TYPE = INSTANTIATION_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___IS_FEATURING_TYPE__TYPE = INSTANTIATION_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___IS_OWNED_CROSS_FEATURE = INSTANTIATION_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___NAMING_FEATURE = INSTANTIATION_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___OWNED_CROSS_FEATURE = INSTANTIATION_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___REDEFINES__FEATURE = INSTANTIATION_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = INSTANTIATION_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = INSTANTIATION_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___TYPING_FEATURES = INSTANTIATION_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___CHECK_CONDITION__ELEMENT = INSTANTIATION_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___EVALUATE__ELEMENT = INSTANTIATION_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = INSTANTIATION_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The operation id for the 'Instantiated Type' operation. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION___INSTANTIATED_TYPE = INSTANTIATION_EXPRESSION___INSTANTIATED_TYPE; + + /** + * The number of operations of the 'Invocation Expression' class. + * + * + * @generated + * @ordered + */ + int INVOCATION_EXPRESSION_OPERATION_COUNT = INSTANTIATION_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.OperatorExpressionImpl Operator Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.OperatorExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getOperatorExpression() + * @generated + */ + int OPERATOR_EXPRESSION = 114; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__ALIAS_IDS = INVOCATION_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__DECLARED_NAME = INVOCATION_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__DECLARED_SHORT_NAME = INVOCATION_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__ELEMENT_ID = INVOCATION_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_IMPLIED_INCLUDED = INVOCATION_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_LIBRARY_ELEMENT = INVOCATION_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__NAME = INVOCATION_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__QUALIFIED_NAME = INVOCATION_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__SHORT_NAME = INVOCATION_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__DOCUMENTATION = INVOCATION_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_ANNOTATION = INVOCATION_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_ELEMENT = INVOCATION_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_RELATIONSHIP = INVOCATION_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNER = INVOCATION_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNING_MEMBERSHIP = INVOCATION_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNING_NAMESPACE = INVOCATION_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNING_RELATIONSHIP = INVOCATION_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__TEXTUAL_REPRESENTATION = INVOCATION_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IMPORTED_MEMBERSHIP = INVOCATION_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__MEMBER = INVOCATION_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__MEMBERSHIP = INVOCATION_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_IMPORT = INVOCATION_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_MEMBER = INVOCATION_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_MEMBERSHIP = INVOCATION_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_ABSTRACT = INVOCATION_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_CONJUGATED = INVOCATION_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_SUFFICIENT = INVOCATION_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__DIFFERENCING_TYPE = INVOCATION_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__DIRECTED_FEATURE = INVOCATION_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__END_FEATURE = INVOCATION_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__FEATURE = INVOCATION_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__FEATURE_MEMBERSHIP = INVOCATION_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__INHERITED_FEATURE = INVOCATION_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__INHERITED_MEMBERSHIP = INVOCATION_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__INPUT = INVOCATION_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__INTERSECTING_TYPE = INVOCATION_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__MULTIPLICITY = INVOCATION_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OUTPUT = INVOCATION_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_CONJUGATOR = INVOCATION_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_DIFFERENCING = INVOCATION_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_DISJOINING = INVOCATION_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_END_FEATURE = INVOCATION_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_FEATURE = INVOCATION_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = INVOCATION_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_INTERSECTING = INVOCATION_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_SPECIALIZATION = INVOCATION_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_UNIONING = INVOCATION_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__UNIONING_TYPE = INVOCATION_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__DIRECTION = INVOCATION_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_COMPOSITE = INVOCATION_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_CONSTANT = INVOCATION_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_DERIVED = INVOCATION_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_END = INVOCATION_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_NONUNIQUE = INVOCATION_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_ORDERED = INVOCATION_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_PORTION = INVOCATION_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_UNIQUE = INVOCATION_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_VARIABLE = INVOCATION_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__CHAINING_FEATURE = INVOCATION_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__CROSS_FEATURE = INVOCATION_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__END_OWNING_TYPE = INVOCATION_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__FEATURE_TARGET = INVOCATION_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__FEATURING_TYPE = INVOCATION_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_CROSS_SUBSETTING = INVOCATION_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_FEATURE_CHAINING = INVOCATION_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_FEATURE_INVERTING = INVOCATION_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_REDEFINITION = INVOCATION_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_REFERENCE_SUBSETTING = INVOCATION_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_SUBSETTING = INVOCATION_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_TYPE_FEATURING = INVOCATION_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNED_TYPING = INVOCATION_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = INVOCATION_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OWNING_TYPE = INVOCATION_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__TYPE = INVOCATION_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__BEHAVIOR = INVOCATION_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__PARAMETER = INVOCATION_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = INVOCATION_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__FUNCTION = INVOCATION_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__RESULT = INVOCATION_EXPRESSION__RESULT; + + /** + * The feature id for the 'Argument' reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__ARGUMENT = INVOCATION_EXPRESSION__ARGUMENT; + + /** + * The feature id for the 'Instantiated Type' reference. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__INSTANTIATED_TYPE = INVOCATION_EXPRESSION__INSTANTIATED_TYPE; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OPERAND = INVOCATION_EXPRESSION__OPERAND; + + /** + * The feature id for the 'Operator' attribute. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION__OPERATOR = INVOCATION_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Operator Expression' class. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION_FEATURE_COUNT = INVOCATION_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___EFFECTIVE_NAME = INVOCATION_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___EFFECTIVE_SHORT_NAME = INVOCATION_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___ESCAPED_NAME = INVOCATION_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___LIBRARY_NAMESPACE = INVOCATION_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___PATH = INVOCATION_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = INVOCATION_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = INVOCATION_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___NAMES_OF__ELEMENT = INVOCATION_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___QUALIFICATION_OF__STRING = INVOCATION_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___RESOLVE__STRING = INVOCATION_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___RESOLVE_GLOBAL__STRING = INVOCATION_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___RESOLVE_LOCAL__STRING = INVOCATION_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___RESOLVE_VISIBLE__STRING = INVOCATION_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = INVOCATION_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = INVOCATION_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = INVOCATION_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = INVOCATION_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___ALL_SUPERTYPES = INVOCATION_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___DIRECTION_OF__FEATURE = INVOCATION_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = INVOCATION_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INVOCATION_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INVOCATION_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = INVOCATION_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___MULTIPLICITIES = INVOCATION_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INVOCATION_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = INVOCATION_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___SPECIALIZES__TYPE = INVOCATION_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = INVOCATION_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___SUPERTYPES__BOOLEAN = INVOCATION_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___ALL_REDEFINED_FEATURES = INVOCATION_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___AS_CARTESIAN_PRODUCT = INVOCATION_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___CAN_ACCESS__FEATURE = INVOCATION_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___DIRECTION_FOR__TYPE = INVOCATION_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___IS_CARTESIAN_PRODUCT = INVOCATION_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___IS_FEATURED_WITHIN__TYPE = INVOCATION_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___IS_FEATURING_TYPE__TYPE = INVOCATION_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___IS_OWNED_CROSS_FEATURE = INVOCATION_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___NAMING_FEATURE = INVOCATION_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___OWNED_CROSS_FEATURE = INVOCATION_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___REDEFINES__FEATURE = INVOCATION_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = INVOCATION_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = INVOCATION_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___TYPING_FEATURES = INVOCATION_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___CHECK_CONDITION__ELEMENT = INVOCATION_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___EVALUATE__ELEMENT = INVOCATION_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = INVOCATION_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The operation id for the 'Instantiated Type' operation. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION___INSTANTIATED_TYPE = INVOCATION_EXPRESSION___INSTANTIATED_TYPE; + + /** + * The number of operations of the 'Operator Expression' class. + * + * + * @generated + * @ordered + */ + int OPERATOR_EXPRESSION_OPERATION_COUNT = INVOCATION_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.CollectExpressionImpl Collect Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CollectExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCollectExpression() + * @generated + */ + int COLLECT_EXPRESSION = 26; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__ALIAS_IDS = OPERATOR_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__DECLARED_NAME = OPERATOR_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__DECLARED_SHORT_NAME = OPERATOR_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__ELEMENT_ID = OPERATOR_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_IMPLIED_INCLUDED = OPERATOR_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_LIBRARY_ELEMENT = OPERATOR_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__NAME = OPERATOR_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__QUALIFIED_NAME = OPERATOR_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__SHORT_NAME = OPERATOR_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__DOCUMENTATION = OPERATOR_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_ANNOTATION = OPERATOR_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_ELEMENT = OPERATOR_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_RELATIONSHIP = OPERATOR_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNER = OPERATOR_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNING_MEMBERSHIP = OPERATOR_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNING_NAMESPACE = OPERATOR_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNING_RELATIONSHIP = OPERATOR_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__TEXTUAL_REPRESENTATION = OPERATOR_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IMPORTED_MEMBERSHIP = OPERATOR_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__MEMBER = OPERATOR_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__MEMBERSHIP = OPERATOR_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_IMPORT = OPERATOR_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_MEMBER = OPERATOR_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_MEMBERSHIP = OPERATOR_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_ABSTRACT = OPERATOR_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_CONJUGATED = OPERATOR_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_SUFFICIENT = OPERATOR_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__DIFFERENCING_TYPE = OPERATOR_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__DIRECTED_FEATURE = OPERATOR_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__END_FEATURE = OPERATOR_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__FEATURE = OPERATOR_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__INHERITED_FEATURE = OPERATOR_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__INHERITED_MEMBERSHIP = OPERATOR_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__INPUT = OPERATOR_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__INTERSECTING_TYPE = OPERATOR_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__MULTIPLICITY = OPERATOR_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OUTPUT = OPERATOR_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_CONJUGATOR = OPERATOR_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_DIFFERENCING = OPERATOR_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_DISJOINING = OPERATOR_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_END_FEATURE = OPERATOR_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_FEATURE = OPERATOR_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_INTERSECTING = OPERATOR_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_SPECIALIZATION = OPERATOR_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_UNIONING = OPERATOR_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__UNIONING_TYPE = OPERATOR_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__DIRECTION = OPERATOR_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_COMPOSITE = OPERATOR_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_CONSTANT = OPERATOR_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_DERIVED = OPERATOR_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_END = OPERATOR_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_NONUNIQUE = OPERATOR_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_ORDERED = OPERATOR_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_PORTION = OPERATOR_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_UNIQUE = OPERATOR_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_VARIABLE = OPERATOR_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__CHAINING_FEATURE = OPERATOR_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__CROSS_FEATURE = OPERATOR_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__END_OWNING_TYPE = OPERATOR_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__FEATURE_TARGET = OPERATOR_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__FEATURING_TYPE = OPERATOR_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_CROSS_SUBSETTING = OPERATOR_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_FEATURE_CHAINING = OPERATOR_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_FEATURE_INVERTING = OPERATOR_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_REDEFINITION = OPERATOR_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_REFERENCE_SUBSETTING = OPERATOR_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_SUBSETTING = OPERATOR_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_TYPE_FEATURING = OPERATOR_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNED_TYPING = OPERATOR_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OWNING_TYPE = OPERATOR_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__TYPE = OPERATOR_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__BEHAVIOR = OPERATOR_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__PARAMETER = OPERATOR_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = OPERATOR_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__FUNCTION = OPERATOR_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__RESULT = OPERATOR_EXPRESSION__RESULT; + + /** + * The feature id for the 'Argument' reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__ARGUMENT = OPERATOR_EXPRESSION__ARGUMENT; + + /** + * The feature id for the 'Instantiated Type' reference. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__INSTANTIATED_TYPE = OPERATOR_EXPRESSION__INSTANTIATED_TYPE; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OPERAND = OPERATOR_EXPRESSION__OPERAND; + + /** + * The feature id for the 'Operator' attribute. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION__OPERATOR = OPERATOR_EXPRESSION__OPERATOR; + + /** + * The number of structural features of the 'Collect Expression' class. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION_FEATURE_COUNT = OPERATOR_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___EFFECTIVE_NAME = OPERATOR_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___EFFECTIVE_SHORT_NAME = OPERATOR_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___ESCAPED_NAME = OPERATOR_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___LIBRARY_NAMESPACE = OPERATOR_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___PATH = OPERATOR_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = OPERATOR_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OPERATOR_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___NAMES_OF__ELEMENT = OPERATOR_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___QUALIFICATION_OF__STRING = OPERATOR_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___RESOLVE__STRING = OPERATOR_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___RESOLVE_GLOBAL__STRING = OPERATOR_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___RESOLVE_LOCAL__STRING = OPERATOR_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___RESOLVE_VISIBLE__STRING = OPERATOR_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = OPERATOR_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = OPERATOR_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OPERATOR_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OPERATOR_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___ALL_SUPERTYPES = OPERATOR_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___DIRECTION_OF__FEATURE = OPERATOR_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OPERATOR_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = OPERATOR_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___MULTIPLICITIES = OPERATOR_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = OPERATOR_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___SPECIALIZES__TYPE = OPERATOR_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = OPERATOR_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___SUPERTYPES__BOOLEAN = OPERATOR_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___ALL_REDEFINED_FEATURES = OPERATOR_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___AS_CARTESIAN_PRODUCT = OPERATOR_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___CAN_ACCESS__FEATURE = OPERATOR_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___DIRECTION_FOR__TYPE = OPERATOR_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___IS_CARTESIAN_PRODUCT = OPERATOR_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___IS_FEATURED_WITHIN__TYPE = OPERATOR_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___IS_FEATURING_TYPE__TYPE = OPERATOR_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___IS_OWNED_CROSS_FEATURE = OPERATOR_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___NAMING_FEATURE = OPERATOR_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___OWNED_CROSS_FEATURE = OPERATOR_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___REDEFINES__FEATURE = OPERATOR_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = OPERATOR_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = OPERATOR_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___TYPING_FEATURES = OPERATOR_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___CHECK_CONDITION__ELEMENT = OPERATOR_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___EVALUATE__ELEMENT = OPERATOR_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = OPERATOR_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The operation id for the 'Instantiated Type' operation. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION___INSTANTIATED_TYPE = OPERATOR_EXPRESSION___INSTANTIATED_TYPE; + + /** + * The number of operations of the 'Collect Expression' class. + * + * + * @generated + * @ordered + */ + int COLLECT_EXPRESSION_OPERATION_COUNT = OPERATOR_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.CommentImpl Comment}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CommentImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getComment() + * @generated + */ + int COMMENT = 27; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int COMMENT__ALIAS_IDS = ANNOTATING_ELEMENT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__DECLARED_NAME = ANNOTATING_ELEMENT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__DECLARED_SHORT_NAME = ANNOTATING_ELEMENT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__ELEMENT_ID = ANNOTATING_ELEMENT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__IS_IMPLIED_INCLUDED = ANNOTATING_ELEMENT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__IS_LIBRARY_ELEMENT = ANNOTATING_ELEMENT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__NAME = ANNOTATING_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__QUALIFIED_NAME = ANNOTATING_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__SHORT_NAME = ANNOTATING_ELEMENT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__DOCUMENTATION = ANNOTATING_ELEMENT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNED_ANNOTATION = ANNOTATING_ELEMENT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNED_ELEMENT = ANNOTATING_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNED_RELATIONSHIP = ANNOTATING_ELEMENT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNER = ANNOTATING_ELEMENT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNING_MEMBERSHIP = ANNOTATING_ELEMENT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNING_NAMESPACE = ANNOTATING_ELEMENT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNING_RELATIONSHIP = ANNOTATING_ELEMENT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__TEXTUAL_REPRESENTATION = ANNOTATING_ELEMENT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Annotated Element' reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__ANNOTATED_ELEMENT = ANNOTATING_ELEMENT__ANNOTATED_ELEMENT; + + /** + * The feature id for the 'Annotation' reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__ANNOTATION = ANNOTATING_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Owned Annotating Relationship' reference list. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNED_ANNOTATING_RELATIONSHIP = ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP; + + /** + * The feature id for the 'Owning Annotating Relationship' reference. + * + * + * @generated + * @ordered + */ + int COMMENT__OWNING_ANNOTATING_RELATIONSHIP = ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP; + + /** + * The feature id for the 'Body' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__BODY = ANNOTATING_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Locale' attribute. + * + * + * @generated + * @ordered + */ + int COMMENT__LOCALE = ANNOTATING_ELEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Comment' class. + * + * + * @generated + * @ordered + */ + int COMMENT_FEATURE_COUNT = ANNOTATING_ELEMENT_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int COMMENT___EFFECTIVE_NAME = ANNOTATING_ELEMENT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int COMMENT___EFFECTIVE_SHORT_NAME = ANNOTATING_ELEMENT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int COMMENT___ESCAPED_NAME = ANNOTATING_ELEMENT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int COMMENT___LIBRARY_NAMESPACE = ANNOTATING_ELEMENT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int COMMENT___PATH = ANNOTATING_ELEMENT___PATH; + + /** + * The number of operations of the 'Comment' class. + * + * + * @generated + * @ordered + */ + int COMMENT_OPERATION_COUNT = ANNOTATING_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConstraintDefinitionImpl Constraint Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConstraintDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConstraintDefinition() + * @generated + */ + int CONSTRAINT_DEFINITION = 37; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__ALIAS_IDS = OCCURRENCE_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__DECLARED_NAME = OCCURRENCE_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__DECLARED_SHORT_NAME = OCCURRENCE_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__ELEMENT_ID = OCCURRENCE_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__IS_IMPLIED_INCLUDED = OCCURRENCE_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__IS_LIBRARY_ELEMENT = OCCURRENCE_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__NAME = OCCURRENCE_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__QUALIFIED_NAME = OCCURRENCE_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__SHORT_NAME = OCCURRENCE_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__DOCUMENTATION = OCCURRENCE_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_ANNOTATION = OCCURRENCE_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_ELEMENT = OCCURRENCE_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_RELATIONSHIP = OCCURRENCE_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNER = OCCURRENCE_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNING_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNING_NAMESPACE = OCCURRENCE_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNING_RELATIONSHIP = OCCURRENCE_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__TEXTUAL_REPRESENTATION = OCCURRENCE_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__IMPORTED_MEMBERSHIP = OCCURRENCE_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__MEMBER = OCCURRENCE_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__MEMBERSHIP = OCCURRENCE_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_IMPORT = OCCURRENCE_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_MEMBER = OCCURRENCE_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__IS_ABSTRACT = OCCURRENCE_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__IS_CONJUGATED = OCCURRENCE_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__IS_SUFFICIENT = OCCURRENCE_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__DIFFERENCING_TYPE = OCCURRENCE_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__DIRECTED_FEATURE = OCCURRENCE_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__END_FEATURE = OCCURRENCE_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__FEATURE = OCCURRENCE_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__FEATURE_MEMBERSHIP = OCCURRENCE_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__INHERITED_FEATURE = OCCURRENCE_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__INHERITED_MEMBERSHIP = OCCURRENCE_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__INPUT = OCCURRENCE_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__INTERSECTING_TYPE = OCCURRENCE_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__MULTIPLICITY = OCCURRENCE_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OUTPUT = OCCURRENCE_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_CONJUGATOR = OCCURRENCE_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_DIFFERENCING = OCCURRENCE_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_DISJOINING = OCCURRENCE_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_END_FEATURE = OCCURRENCE_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_FEATURE = OCCURRENCE_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_FEATURE_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_INTERSECTING = OCCURRENCE_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_SPECIALIZATION = OCCURRENCE_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_UNIONING = OCCURRENCE_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__UNIONING_TYPE = OCCURRENCE_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_SUBCLASSIFICATION = OCCURRENCE_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__IS_VARIATION = OCCURRENCE_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__DIRECTED_USAGE = OCCURRENCE_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_ACTION = OCCURRENCE_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_ALLOCATION = OCCURRENCE_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_ANALYSIS_CASE = OCCURRENCE_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_ATTRIBUTE = OCCURRENCE_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_CALCULATION = OCCURRENCE_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_CASE = OCCURRENCE_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_CONCERN = OCCURRENCE_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_CONNECTION = OCCURRENCE_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_CONSTRAINT = OCCURRENCE_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_ENUMERATION = OCCURRENCE_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_FLOW = OCCURRENCE_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_INTERFACE = OCCURRENCE_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_ITEM = OCCURRENCE_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_METADATA = OCCURRENCE_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_OCCURRENCE = OCCURRENCE_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_PART = OCCURRENCE_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_PORT = OCCURRENCE_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_REFERENCE = OCCURRENCE_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_RENDERING = OCCURRENCE_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_REQUIREMENT = OCCURRENCE_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_STATE = OCCURRENCE_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_TRANSITION = OCCURRENCE_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_USAGE = OCCURRENCE_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_USE_CASE = OCCURRENCE_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_VERIFICATION_CASE = OCCURRENCE_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_VIEW = OCCURRENCE_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__OWNED_VIEWPOINT = OCCURRENCE_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__USAGE = OCCURRENCE_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__VARIANT = OCCURRENCE_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__VARIANT_MEMBERSHIP = OCCURRENCE_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__IS_INDIVIDUAL = OCCURRENCE_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__PARAMETER = OCCURRENCE_DEFINITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__STEP = OCCURRENCE_DEFINITION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__IS_MODEL_LEVEL_EVALUABLE = OCCURRENCE_DEFINITION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__EXPRESSION = OCCURRENCE_DEFINITION_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION__RESULT = OCCURRENCE_DEFINITION_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Constraint Definition' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION_FEATURE_COUNT = OCCURRENCE_DEFINITION_FEATURE_COUNT + 5; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___EFFECTIVE_NAME = OCCURRENCE_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___EFFECTIVE_SHORT_NAME = OCCURRENCE_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___ESCAPED_NAME = OCCURRENCE_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___LIBRARY_NAMESPACE = OCCURRENCE_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___PATH = OCCURRENCE_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = OCCURRENCE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OCCURRENCE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___NAMES_OF__ELEMENT = OCCURRENCE_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___QUALIFICATION_OF__STRING = OCCURRENCE_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___RESOLVE__STRING = OCCURRENCE_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___RESOLVE_GLOBAL__STRING = OCCURRENCE_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___RESOLVE_LOCAL__STRING = OCCURRENCE_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___RESOLVE_VISIBLE__STRING = OCCURRENCE_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___UNQUALIFIED_NAME_OF__STRING = OCCURRENCE_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___VISIBILITY_OF__MEMBERSHIP = OCCURRENCE_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OCCURRENCE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OCCURRENCE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___ALL_SUPERTYPES = OCCURRENCE_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___DIRECTION_OF__FEATURE = OCCURRENCE_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OCCURRENCE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___IS_COMPATIBLE_WITH__TYPE = OCCURRENCE_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___MULTIPLICITIES = OCCURRENCE_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = OCCURRENCE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___SPECIALIZES__TYPE = OCCURRENCE_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = OCCURRENCE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION___SUPERTYPES__BOOLEAN = OCCURRENCE_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Constraint Definition' class. + * + * + * @generated + * @ordered + */ + int CONSTRAINT_DEFINITION_OPERATION_COUNT = OCCURRENCE_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl Requirement Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRequirementDefinition() + * @generated + */ + int REQUIREMENT_DEFINITION = 133; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__ALIAS_IDS = CONSTRAINT_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__DECLARED_NAME = CONSTRAINT_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__DECLARED_SHORT_NAME = CONSTRAINT_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__ELEMENT_ID = CONSTRAINT_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__IS_IMPLIED_INCLUDED = CONSTRAINT_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__IS_LIBRARY_ELEMENT = CONSTRAINT_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__NAME = CONSTRAINT_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__QUALIFIED_NAME = CONSTRAINT_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__SHORT_NAME = CONSTRAINT_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__DOCUMENTATION = CONSTRAINT_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_ANNOTATION = CONSTRAINT_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_ELEMENT = CONSTRAINT_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_RELATIONSHIP = CONSTRAINT_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNER = CONSTRAINT_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNING_MEMBERSHIP = CONSTRAINT_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNING_NAMESPACE = CONSTRAINT_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNING_RELATIONSHIP = CONSTRAINT_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__TEXTUAL_REPRESENTATION = CONSTRAINT_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__IMPORTED_MEMBERSHIP = CONSTRAINT_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__MEMBER = CONSTRAINT_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__MEMBERSHIP = CONSTRAINT_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_IMPORT = CONSTRAINT_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_MEMBER = CONSTRAINT_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_MEMBERSHIP = CONSTRAINT_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__IS_ABSTRACT = CONSTRAINT_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__IS_CONJUGATED = CONSTRAINT_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__IS_SUFFICIENT = CONSTRAINT_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__DIFFERENCING_TYPE = CONSTRAINT_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__DIRECTED_FEATURE = CONSTRAINT_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__END_FEATURE = CONSTRAINT_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__FEATURE = CONSTRAINT_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__FEATURE_MEMBERSHIP = CONSTRAINT_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__INHERITED_FEATURE = CONSTRAINT_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__INHERITED_MEMBERSHIP = CONSTRAINT_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__INPUT = CONSTRAINT_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__INTERSECTING_TYPE = CONSTRAINT_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__MULTIPLICITY = CONSTRAINT_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OUTPUT = CONSTRAINT_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_CONJUGATOR = CONSTRAINT_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_DIFFERENCING = CONSTRAINT_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_DISJOINING = CONSTRAINT_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_END_FEATURE = CONSTRAINT_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_FEATURE = CONSTRAINT_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_FEATURE_MEMBERSHIP = CONSTRAINT_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_INTERSECTING = CONSTRAINT_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_SPECIALIZATION = CONSTRAINT_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_UNIONING = CONSTRAINT_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__UNIONING_TYPE = CONSTRAINT_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_SUBCLASSIFICATION = CONSTRAINT_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__IS_VARIATION = CONSTRAINT_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__DIRECTED_USAGE = CONSTRAINT_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_ACTION = CONSTRAINT_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_ALLOCATION = CONSTRAINT_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_ANALYSIS_CASE = CONSTRAINT_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_ATTRIBUTE = CONSTRAINT_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_CALCULATION = CONSTRAINT_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_CASE = CONSTRAINT_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_CONCERN = CONSTRAINT_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_CONNECTION = CONSTRAINT_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_CONSTRAINT = CONSTRAINT_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_ENUMERATION = CONSTRAINT_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_FLOW = CONSTRAINT_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_INTERFACE = CONSTRAINT_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_ITEM = CONSTRAINT_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_METADATA = CONSTRAINT_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_OCCURRENCE = CONSTRAINT_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_PART = CONSTRAINT_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_PORT = CONSTRAINT_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_REFERENCE = CONSTRAINT_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_RENDERING = CONSTRAINT_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_REQUIREMENT = CONSTRAINT_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_STATE = CONSTRAINT_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_TRANSITION = CONSTRAINT_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_USAGE = CONSTRAINT_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_USE_CASE = CONSTRAINT_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_VERIFICATION_CASE = CONSTRAINT_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_VIEW = CONSTRAINT_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__OWNED_VIEWPOINT = CONSTRAINT_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__USAGE = CONSTRAINT_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__VARIANT = CONSTRAINT_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__VARIANT_MEMBERSHIP = CONSTRAINT_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__IS_INDIVIDUAL = CONSTRAINT_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__PARAMETER = CONSTRAINT_DEFINITION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__STEP = CONSTRAINT_DEFINITION__STEP; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__IS_MODEL_LEVEL_EVALUABLE = CONSTRAINT_DEFINITION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__EXPRESSION = CONSTRAINT_DEFINITION__EXPRESSION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__RESULT = CONSTRAINT_DEFINITION__RESULT; + + /** + * The feature id for the 'Req Id' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__REQ_ID = CONSTRAINT_DEFINITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Text' attribute list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__TEXT = CONSTRAINT_DEFINITION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__ACTOR_PARAMETER = CONSTRAINT_DEFINITION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Assumed Constraint' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__ASSUMED_CONSTRAINT = CONSTRAINT_DEFINITION_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Framed Concern' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__FRAMED_CONCERN = CONSTRAINT_DEFINITION_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Required Constraint' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__REQUIRED_CONSTRAINT = CONSTRAINT_DEFINITION_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Stakeholder Parameter' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__STAKEHOLDER_PARAMETER = CONSTRAINT_DEFINITION_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION__SUBJECT_PARAMETER = CONSTRAINT_DEFINITION_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Requirement Definition' class. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION_FEATURE_COUNT = CONSTRAINT_DEFINITION_FEATURE_COUNT + 8; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___EFFECTIVE_NAME = CONSTRAINT_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___EFFECTIVE_SHORT_NAME = CONSTRAINT_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___ESCAPED_NAME = CONSTRAINT_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___LIBRARY_NAMESPACE = CONSTRAINT_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___PATH = CONSTRAINT_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = CONSTRAINT_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONSTRAINT_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___NAMES_OF__ELEMENT = CONSTRAINT_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___QUALIFICATION_OF__STRING = CONSTRAINT_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___RESOLVE__STRING = CONSTRAINT_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___RESOLVE_GLOBAL__STRING = CONSTRAINT_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___RESOLVE_LOCAL__STRING = CONSTRAINT_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___RESOLVE_VISIBLE__STRING = CONSTRAINT_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___UNQUALIFIED_NAME_OF__STRING = CONSTRAINT_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___VISIBILITY_OF__MEMBERSHIP = CONSTRAINT_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONSTRAINT_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONSTRAINT_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___ALL_SUPERTYPES = CONSTRAINT_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___DIRECTION_OF__FEATURE = CONSTRAINT_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONSTRAINT_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONSTRAINT_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONSTRAINT_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___IS_COMPATIBLE_WITH__TYPE = CONSTRAINT_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___MULTIPLICITIES = CONSTRAINT_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONSTRAINT_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = CONSTRAINT_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___SPECIALIZES__TYPE = CONSTRAINT_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = CONSTRAINT_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION___SUPERTYPES__BOOLEAN = CONSTRAINT_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Requirement Definition' class. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_DEFINITION_OPERATION_COUNT = CONSTRAINT_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConcernDefinitionImpl Concern Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConcernDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConcernDefinition() + * @generated + */ + int CONCERN_DEFINITION = 28; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__ALIAS_IDS = REQUIREMENT_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__DECLARED_NAME = REQUIREMENT_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__DECLARED_SHORT_NAME = REQUIREMENT_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__ELEMENT_ID = REQUIREMENT_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__IS_IMPLIED_INCLUDED = REQUIREMENT_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__IS_LIBRARY_ELEMENT = REQUIREMENT_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__NAME = REQUIREMENT_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__QUALIFIED_NAME = REQUIREMENT_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__SHORT_NAME = REQUIREMENT_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__DOCUMENTATION = REQUIREMENT_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_ANNOTATION = REQUIREMENT_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_ELEMENT = REQUIREMENT_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_RELATIONSHIP = REQUIREMENT_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNER = REQUIREMENT_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNING_MEMBERSHIP = REQUIREMENT_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNING_NAMESPACE = REQUIREMENT_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNING_RELATIONSHIP = REQUIREMENT_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__TEXTUAL_REPRESENTATION = REQUIREMENT_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__IMPORTED_MEMBERSHIP = REQUIREMENT_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__MEMBER = REQUIREMENT_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__MEMBERSHIP = REQUIREMENT_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_IMPORT = REQUIREMENT_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_MEMBER = REQUIREMENT_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_MEMBERSHIP = REQUIREMENT_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__IS_ABSTRACT = REQUIREMENT_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__IS_CONJUGATED = REQUIREMENT_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__IS_SUFFICIENT = REQUIREMENT_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__DIFFERENCING_TYPE = REQUIREMENT_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__DIRECTED_FEATURE = REQUIREMENT_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__END_FEATURE = REQUIREMENT_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__FEATURE = REQUIREMENT_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__FEATURE_MEMBERSHIP = REQUIREMENT_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__INHERITED_FEATURE = REQUIREMENT_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__INHERITED_MEMBERSHIP = REQUIREMENT_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__INPUT = REQUIREMENT_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__INTERSECTING_TYPE = REQUIREMENT_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__MULTIPLICITY = REQUIREMENT_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OUTPUT = REQUIREMENT_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_CONJUGATOR = REQUIREMENT_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_DIFFERENCING = REQUIREMENT_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_DISJOINING = REQUIREMENT_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_END_FEATURE = REQUIREMENT_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_FEATURE = REQUIREMENT_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_FEATURE_MEMBERSHIP = REQUIREMENT_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_INTERSECTING = REQUIREMENT_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_SPECIALIZATION = REQUIREMENT_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_UNIONING = REQUIREMENT_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__UNIONING_TYPE = REQUIREMENT_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_SUBCLASSIFICATION = REQUIREMENT_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__IS_VARIATION = REQUIREMENT_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__DIRECTED_USAGE = REQUIREMENT_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_ACTION = REQUIREMENT_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_ALLOCATION = REQUIREMENT_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_ANALYSIS_CASE = REQUIREMENT_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_ATTRIBUTE = REQUIREMENT_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_CALCULATION = REQUIREMENT_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_CASE = REQUIREMENT_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_CONCERN = REQUIREMENT_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_CONNECTION = REQUIREMENT_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_CONSTRAINT = REQUIREMENT_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_ENUMERATION = REQUIREMENT_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_FLOW = REQUIREMENT_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_INTERFACE = REQUIREMENT_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_ITEM = REQUIREMENT_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_METADATA = REQUIREMENT_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_OCCURRENCE = REQUIREMENT_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_PART = REQUIREMENT_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_PORT = REQUIREMENT_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_REFERENCE = REQUIREMENT_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_RENDERING = REQUIREMENT_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_REQUIREMENT = REQUIREMENT_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_STATE = REQUIREMENT_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_TRANSITION = REQUIREMENT_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_USAGE = REQUIREMENT_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_USE_CASE = REQUIREMENT_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_VERIFICATION_CASE = REQUIREMENT_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_VIEW = REQUIREMENT_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__OWNED_VIEWPOINT = REQUIREMENT_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__USAGE = REQUIREMENT_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__VARIANT = REQUIREMENT_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__VARIANT_MEMBERSHIP = REQUIREMENT_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__IS_INDIVIDUAL = REQUIREMENT_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__PARAMETER = REQUIREMENT_DEFINITION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__STEP = REQUIREMENT_DEFINITION__STEP; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__IS_MODEL_LEVEL_EVALUABLE = REQUIREMENT_DEFINITION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__EXPRESSION = REQUIREMENT_DEFINITION__EXPRESSION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__RESULT = REQUIREMENT_DEFINITION__RESULT; + + /** + * The feature id for the 'Req Id' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__REQ_ID = REQUIREMENT_DEFINITION__REQ_ID; + + /** + * The feature id for the 'Text' attribute list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__TEXT = REQUIREMENT_DEFINITION__TEXT; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__ACTOR_PARAMETER = REQUIREMENT_DEFINITION__ACTOR_PARAMETER; + + /** + * The feature id for the 'Assumed Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__ASSUMED_CONSTRAINT = REQUIREMENT_DEFINITION__ASSUMED_CONSTRAINT; + + /** + * The feature id for the 'Framed Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__FRAMED_CONCERN = REQUIREMENT_DEFINITION__FRAMED_CONCERN; + + /** + * The feature id for the 'Required Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__REQUIRED_CONSTRAINT = REQUIREMENT_DEFINITION__REQUIRED_CONSTRAINT; + + /** + * The feature id for the 'Stakeholder Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__STAKEHOLDER_PARAMETER = REQUIREMENT_DEFINITION__STAKEHOLDER_PARAMETER; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION__SUBJECT_PARAMETER = REQUIREMENT_DEFINITION__SUBJECT_PARAMETER; + + /** + * The number of structural features of the 'Concern Definition' class. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION_FEATURE_COUNT = REQUIREMENT_DEFINITION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___EFFECTIVE_NAME = REQUIREMENT_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___EFFECTIVE_SHORT_NAME = REQUIREMENT_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___ESCAPED_NAME = REQUIREMENT_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___LIBRARY_NAMESPACE = REQUIREMENT_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___PATH = REQUIREMENT_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = REQUIREMENT_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = REQUIREMENT_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___NAMES_OF__ELEMENT = REQUIREMENT_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___QUALIFICATION_OF__STRING = REQUIREMENT_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___RESOLVE__STRING = REQUIREMENT_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___RESOLVE_GLOBAL__STRING = REQUIREMENT_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___RESOLVE_LOCAL__STRING = REQUIREMENT_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___RESOLVE_VISIBLE__STRING = REQUIREMENT_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___UNQUALIFIED_NAME_OF__STRING = REQUIREMENT_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___VISIBILITY_OF__MEMBERSHIP = REQUIREMENT_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = REQUIREMENT_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = REQUIREMENT_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___ALL_SUPERTYPES = REQUIREMENT_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___DIRECTION_OF__FEATURE = REQUIREMENT_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = REQUIREMENT_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___IS_COMPATIBLE_WITH__TYPE = REQUIREMENT_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___MULTIPLICITIES = REQUIREMENT_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = REQUIREMENT_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___SPECIALIZES__TYPE = REQUIREMENT_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = REQUIREMENT_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION___SUPERTYPES__BOOLEAN = REQUIREMENT_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Concern Definition' class. + * + * + * @generated + * @ordered + */ + int CONCERN_DEFINITION_OPERATION_COUNT = REQUIREMENT_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl Requirement Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RequirementUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRequirementUsage() + * @generated + */ + int REQUIREMENT_USAGE = 134; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__ALIAS_IDS = CONSTRAINT_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__DECLARED_NAME = CONSTRAINT_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__DECLARED_SHORT_NAME = CONSTRAINT_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__ELEMENT_ID = CONSTRAINT_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_IMPLIED_INCLUDED = CONSTRAINT_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_LIBRARY_ELEMENT = CONSTRAINT_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NAME = CONSTRAINT_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__QUALIFIED_NAME = CONSTRAINT_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__SHORT_NAME = CONSTRAINT_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__DOCUMENTATION = CONSTRAINT_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_ANNOTATION = CONSTRAINT_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_ELEMENT = CONSTRAINT_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_RELATIONSHIP = CONSTRAINT_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNER = CONSTRAINT_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNING_MEMBERSHIP = CONSTRAINT_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNING_NAMESPACE = CONSTRAINT_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNING_RELATIONSHIP = CONSTRAINT_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__TEXTUAL_REPRESENTATION = CONSTRAINT_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IMPORTED_MEMBERSHIP = CONSTRAINT_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__MEMBER = CONSTRAINT_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__MEMBERSHIP = CONSTRAINT_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_IMPORT = CONSTRAINT_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_MEMBER = CONSTRAINT_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_MEMBERSHIP = CONSTRAINT_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_ABSTRACT = CONSTRAINT_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_CONJUGATED = CONSTRAINT_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_SUFFICIENT = CONSTRAINT_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__DIFFERENCING_TYPE = CONSTRAINT_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__DIRECTED_FEATURE = CONSTRAINT_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__END_FEATURE = CONSTRAINT_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__FEATURE = CONSTRAINT_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__FEATURE_MEMBERSHIP = CONSTRAINT_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__INHERITED_FEATURE = CONSTRAINT_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__INHERITED_MEMBERSHIP = CONSTRAINT_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__INPUT = CONSTRAINT_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__INTERSECTING_TYPE = CONSTRAINT_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__MULTIPLICITY = CONSTRAINT_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OUTPUT = CONSTRAINT_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_CONJUGATOR = CONSTRAINT_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_DIFFERENCING = CONSTRAINT_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_DISJOINING = CONSTRAINT_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_END_FEATURE = CONSTRAINT_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_FEATURE = CONSTRAINT_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_FEATURE_MEMBERSHIP = CONSTRAINT_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_INTERSECTING = CONSTRAINT_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_SPECIALIZATION = CONSTRAINT_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_UNIONING = CONSTRAINT_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__UNIONING_TYPE = CONSTRAINT_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__DIRECTION = CONSTRAINT_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_COMPOSITE = CONSTRAINT_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_CONSTANT = CONSTRAINT_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_DERIVED = CONSTRAINT_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_END = CONSTRAINT_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_NONUNIQUE = CONSTRAINT_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_ORDERED = CONSTRAINT_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_PORTION = CONSTRAINT_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_UNIQUE = CONSTRAINT_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_VARIABLE = CONSTRAINT_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__CHAINING_FEATURE = CONSTRAINT_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__CROSS_FEATURE = CONSTRAINT_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__END_OWNING_TYPE = CONSTRAINT_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__FEATURE_TARGET = CONSTRAINT_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__FEATURING_TYPE = CONSTRAINT_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_CROSS_SUBSETTING = CONSTRAINT_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_FEATURE_CHAINING = CONSTRAINT_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_FEATURE_INVERTING = CONSTRAINT_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_REDEFINITION = CONSTRAINT_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_REFERENCE_SUBSETTING = CONSTRAINT_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_SUBSETTING = CONSTRAINT_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_TYPE_FEATURING = CONSTRAINT_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNED_TYPING = CONSTRAINT_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNING_FEATURE_MEMBERSHIP = CONSTRAINT_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNING_TYPE = CONSTRAINT_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__TYPE = CONSTRAINT_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_REFERENCE = CONSTRAINT_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_VARIATION = CONSTRAINT_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__MAY_TIME_VARY = CONSTRAINT_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__DEFINITION = CONSTRAINT_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__DIRECTED_USAGE = CONSTRAINT_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_ACTION = CONSTRAINT_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_ALLOCATION = CONSTRAINT_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_ANALYSIS_CASE = CONSTRAINT_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_ATTRIBUTE = CONSTRAINT_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_CALCULATION = CONSTRAINT_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_CASE = CONSTRAINT_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_CONCERN = CONSTRAINT_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_CONNECTION = CONSTRAINT_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_CONSTRAINT = CONSTRAINT_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_ENUMERATION = CONSTRAINT_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_FLOW = CONSTRAINT_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_INTERFACE = CONSTRAINT_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_ITEM = CONSTRAINT_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_METADATA = CONSTRAINT_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_OCCURRENCE = CONSTRAINT_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_PART = CONSTRAINT_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_PORT = CONSTRAINT_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_REFERENCE = CONSTRAINT_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_RENDERING = CONSTRAINT_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_REQUIREMENT = CONSTRAINT_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_STATE = CONSTRAINT_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_TRANSITION = CONSTRAINT_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_USAGE = CONSTRAINT_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_USE_CASE = CONSTRAINT_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_VERIFICATION_CASE = CONSTRAINT_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_VIEW = CONSTRAINT_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__NESTED_VIEWPOINT = CONSTRAINT_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNING_DEFINITION = CONSTRAINT_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OWNING_USAGE = CONSTRAINT_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__USAGE = CONSTRAINT_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__VARIANT = CONSTRAINT_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__VARIANT_MEMBERSHIP = CONSTRAINT_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_INDIVIDUAL = CONSTRAINT_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__PORTION_KIND = CONSTRAINT_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__INDIVIDUAL_DEFINITION = CONSTRAINT_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__OCCURRENCE_DEFINITION = CONSTRAINT_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__BEHAVIOR = CONSTRAINT_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__PARAMETER = CONSTRAINT_USAGE__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__IS_MODEL_LEVEL_EVALUABLE = CONSTRAINT_USAGE__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__FUNCTION = CONSTRAINT_USAGE__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__RESULT = CONSTRAINT_USAGE__RESULT; + + /** + * The feature id for the 'Predicate' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__PREDICATE = CONSTRAINT_USAGE__PREDICATE; + + /** + * The feature id for the 'Constraint Definition' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__CONSTRAINT_DEFINITION = CONSTRAINT_USAGE__CONSTRAINT_DEFINITION; + + /** + * The feature id for the 'Req Id' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__REQ_ID = CONSTRAINT_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Text' attribute list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__TEXT = CONSTRAINT_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__ACTOR_PARAMETER = CONSTRAINT_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Assumed Constraint' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__ASSUMED_CONSTRAINT = CONSTRAINT_USAGE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Framed Concern' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__FRAMED_CONCERN = CONSTRAINT_USAGE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Required Constraint' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__REQUIRED_CONSTRAINT = CONSTRAINT_USAGE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Requirement Definition' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__REQUIREMENT_DEFINITION = CONSTRAINT_USAGE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Stakeholder Parameter' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__STAKEHOLDER_PARAMETER = CONSTRAINT_USAGE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE__SUBJECT_PARAMETER = CONSTRAINT_USAGE_FEATURE_COUNT + 8; + + /** + * The number of structural features of the 'Requirement Usage' class. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE_FEATURE_COUNT = CONSTRAINT_USAGE_FEATURE_COUNT + 9; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___EFFECTIVE_NAME = CONSTRAINT_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___EFFECTIVE_SHORT_NAME = CONSTRAINT_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___ESCAPED_NAME = CONSTRAINT_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___LIBRARY_NAMESPACE = CONSTRAINT_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___PATH = CONSTRAINT_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CONSTRAINT_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONSTRAINT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___NAMES_OF__ELEMENT = CONSTRAINT_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___QUALIFICATION_OF__STRING = CONSTRAINT_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___RESOLVE__STRING = CONSTRAINT_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___RESOLVE_GLOBAL__STRING = CONSTRAINT_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___RESOLVE_LOCAL__STRING = CONSTRAINT_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___RESOLVE_VISIBLE__STRING = CONSTRAINT_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___UNQUALIFIED_NAME_OF__STRING = CONSTRAINT_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___VISIBILITY_OF__MEMBERSHIP = CONSTRAINT_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONSTRAINT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONSTRAINT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___ALL_SUPERTYPES = CONSTRAINT_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___DIRECTION_OF__FEATURE = CONSTRAINT_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONSTRAINT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONSTRAINT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONSTRAINT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___IS_COMPATIBLE_WITH__TYPE = CONSTRAINT_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___MULTIPLICITIES = CONSTRAINT_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONSTRAINT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CONSTRAINT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___SPECIALIZES__TYPE = CONSTRAINT_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CONSTRAINT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___SUPERTYPES__BOOLEAN = CONSTRAINT_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___ALL_REDEFINED_FEATURES = CONSTRAINT_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___AS_CARTESIAN_PRODUCT = CONSTRAINT_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___CAN_ACCESS__FEATURE = CONSTRAINT_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___DIRECTION_FOR__TYPE = CONSTRAINT_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___IS_CARTESIAN_PRODUCT = CONSTRAINT_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___IS_FEATURED_WITHIN__TYPE = CONSTRAINT_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___IS_FEATURING_TYPE__TYPE = CONSTRAINT_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___IS_OWNED_CROSS_FEATURE = CONSTRAINT_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___NAMING_FEATURE = CONSTRAINT_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___OWNED_CROSS_FEATURE = CONSTRAINT_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___REDEFINES__FEATURE = CONSTRAINT_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___REDEFINES_FROM_LIBRARY__STRING = CONSTRAINT_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CONSTRAINT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___TYPING_FEATURES = CONSTRAINT_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___REFERENCED_FEATURE_TARGET = CONSTRAINT_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___CHECK_CONDITION__ELEMENT = CONSTRAINT_USAGE___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___EVALUATE__ELEMENT = CONSTRAINT_USAGE___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = CONSTRAINT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Requirement Usage' class. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_USAGE_OPERATION_COUNT = CONSTRAINT_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConcernUsageImpl Concern Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConcernUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConcernUsage() + * @generated + */ + int CONCERN_USAGE = 29; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__ALIAS_IDS = REQUIREMENT_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__DECLARED_NAME = REQUIREMENT_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__DECLARED_SHORT_NAME = REQUIREMENT_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__ELEMENT_ID = REQUIREMENT_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_IMPLIED_INCLUDED = REQUIREMENT_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_LIBRARY_ELEMENT = REQUIREMENT_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NAME = REQUIREMENT_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__QUALIFIED_NAME = REQUIREMENT_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__SHORT_NAME = REQUIREMENT_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__DOCUMENTATION = REQUIREMENT_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_ANNOTATION = REQUIREMENT_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_ELEMENT = REQUIREMENT_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_RELATIONSHIP = REQUIREMENT_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNER = REQUIREMENT_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNING_MEMBERSHIP = REQUIREMENT_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNING_NAMESPACE = REQUIREMENT_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNING_RELATIONSHIP = REQUIREMENT_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__TEXTUAL_REPRESENTATION = REQUIREMENT_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IMPORTED_MEMBERSHIP = REQUIREMENT_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__MEMBER = REQUIREMENT_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__MEMBERSHIP = REQUIREMENT_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_IMPORT = REQUIREMENT_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_MEMBER = REQUIREMENT_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_MEMBERSHIP = REQUIREMENT_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_ABSTRACT = REQUIREMENT_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_CONJUGATED = REQUIREMENT_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_SUFFICIENT = REQUIREMENT_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__DIFFERENCING_TYPE = REQUIREMENT_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__DIRECTED_FEATURE = REQUIREMENT_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__END_FEATURE = REQUIREMENT_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__FEATURE = REQUIREMENT_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__FEATURE_MEMBERSHIP = REQUIREMENT_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__INHERITED_FEATURE = REQUIREMENT_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__INHERITED_MEMBERSHIP = REQUIREMENT_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__INPUT = REQUIREMENT_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__INTERSECTING_TYPE = REQUIREMENT_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__MULTIPLICITY = REQUIREMENT_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OUTPUT = REQUIREMENT_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_CONJUGATOR = REQUIREMENT_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_DIFFERENCING = REQUIREMENT_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_DISJOINING = REQUIREMENT_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_END_FEATURE = REQUIREMENT_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_FEATURE = REQUIREMENT_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_FEATURE_MEMBERSHIP = REQUIREMENT_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_INTERSECTING = REQUIREMENT_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_SPECIALIZATION = REQUIREMENT_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_UNIONING = REQUIREMENT_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__UNIONING_TYPE = REQUIREMENT_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__DIRECTION = REQUIREMENT_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_COMPOSITE = REQUIREMENT_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_CONSTANT = REQUIREMENT_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_DERIVED = REQUIREMENT_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_END = REQUIREMENT_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_NONUNIQUE = REQUIREMENT_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_ORDERED = REQUIREMENT_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_PORTION = REQUIREMENT_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_UNIQUE = REQUIREMENT_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_VARIABLE = REQUIREMENT_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__CHAINING_FEATURE = REQUIREMENT_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__CROSS_FEATURE = REQUIREMENT_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__END_OWNING_TYPE = REQUIREMENT_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__FEATURE_TARGET = REQUIREMENT_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__FEATURING_TYPE = REQUIREMENT_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_CROSS_SUBSETTING = REQUIREMENT_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_FEATURE_CHAINING = REQUIREMENT_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_FEATURE_INVERTING = REQUIREMENT_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_REDEFINITION = REQUIREMENT_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_REFERENCE_SUBSETTING = REQUIREMENT_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_SUBSETTING = REQUIREMENT_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_TYPE_FEATURING = REQUIREMENT_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNED_TYPING = REQUIREMENT_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNING_FEATURE_MEMBERSHIP = REQUIREMENT_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNING_TYPE = REQUIREMENT_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__TYPE = REQUIREMENT_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_REFERENCE = REQUIREMENT_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_VARIATION = REQUIREMENT_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__MAY_TIME_VARY = REQUIREMENT_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__DEFINITION = REQUIREMENT_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__DIRECTED_USAGE = REQUIREMENT_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_ACTION = REQUIREMENT_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_ALLOCATION = REQUIREMENT_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_ANALYSIS_CASE = REQUIREMENT_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_ATTRIBUTE = REQUIREMENT_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_CALCULATION = REQUIREMENT_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_CASE = REQUIREMENT_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_CONCERN = REQUIREMENT_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_CONNECTION = REQUIREMENT_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_CONSTRAINT = REQUIREMENT_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_ENUMERATION = REQUIREMENT_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_FLOW = REQUIREMENT_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_INTERFACE = REQUIREMENT_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_ITEM = REQUIREMENT_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_METADATA = REQUIREMENT_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_OCCURRENCE = REQUIREMENT_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_PART = REQUIREMENT_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_PORT = REQUIREMENT_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_REFERENCE = REQUIREMENT_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_RENDERING = REQUIREMENT_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_REQUIREMENT = REQUIREMENT_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_STATE = REQUIREMENT_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_TRANSITION = REQUIREMENT_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_USAGE = REQUIREMENT_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_USE_CASE = REQUIREMENT_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_VERIFICATION_CASE = REQUIREMENT_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_VIEW = REQUIREMENT_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__NESTED_VIEWPOINT = REQUIREMENT_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNING_DEFINITION = REQUIREMENT_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OWNING_USAGE = REQUIREMENT_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__USAGE = REQUIREMENT_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__VARIANT = REQUIREMENT_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__VARIANT_MEMBERSHIP = REQUIREMENT_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_INDIVIDUAL = REQUIREMENT_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__PORTION_KIND = REQUIREMENT_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__INDIVIDUAL_DEFINITION = REQUIREMENT_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__OCCURRENCE_DEFINITION = REQUIREMENT_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__BEHAVIOR = REQUIREMENT_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__PARAMETER = REQUIREMENT_USAGE__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__IS_MODEL_LEVEL_EVALUABLE = REQUIREMENT_USAGE__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__FUNCTION = REQUIREMENT_USAGE__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__RESULT = REQUIREMENT_USAGE__RESULT; + + /** + * The feature id for the 'Predicate' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__PREDICATE = REQUIREMENT_USAGE__PREDICATE; + + /** + * The feature id for the 'Constraint Definition' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__CONSTRAINT_DEFINITION = REQUIREMENT_USAGE__CONSTRAINT_DEFINITION; + + /** + * The feature id for the 'Req Id' attribute. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__REQ_ID = REQUIREMENT_USAGE__REQ_ID; + + /** + * The feature id for the 'Text' attribute list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__TEXT = REQUIREMENT_USAGE__TEXT; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__ACTOR_PARAMETER = REQUIREMENT_USAGE__ACTOR_PARAMETER; + + /** + * The feature id for the 'Assumed Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__ASSUMED_CONSTRAINT = REQUIREMENT_USAGE__ASSUMED_CONSTRAINT; + + /** + * The feature id for the 'Framed Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__FRAMED_CONCERN = REQUIREMENT_USAGE__FRAMED_CONCERN; + + /** + * The feature id for the 'Required Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__REQUIRED_CONSTRAINT = REQUIREMENT_USAGE__REQUIRED_CONSTRAINT; + + /** + * The feature id for the 'Requirement Definition' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__REQUIREMENT_DEFINITION = REQUIREMENT_USAGE__REQUIREMENT_DEFINITION; + + /** + * The feature id for the 'Stakeholder Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__STAKEHOLDER_PARAMETER = REQUIREMENT_USAGE__STAKEHOLDER_PARAMETER; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__SUBJECT_PARAMETER = REQUIREMENT_USAGE__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Concern Definition' reference. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE__CONCERN_DEFINITION = REQUIREMENT_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Concern Usage' class. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE_FEATURE_COUNT = REQUIREMENT_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___EFFECTIVE_NAME = REQUIREMENT_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___EFFECTIVE_SHORT_NAME = REQUIREMENT_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___ESCAPED_NAME = REQUIREMENT_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___LIBRARY_NAMESPACE = REQUIREMENT_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___PATH = REQUIREMENT_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___IMPORTED_MEMBERSHIPS__ELIST = REQUIREMENT_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = REQUIREMENT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___NAMES_OF__ELEMENT = REQUIREMENT_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___QUALIFICATION_OF__STRING = REQUIREMENT_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___RESOLVE__STRING = REQUIREMENT_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___RESOLVE_GLOBAL__STRING = REQUIREMENT_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___RESOLVE_LOCAL__STRING = REQUIREMENT_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___RESOLVE_VISIBLE__STRING = REQUIREMENT_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___UNQUALIFIED_NAME_OF__STRING = REQUIREMENT_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___VISIBILITY_OF__MEMBERSHIP = REQUIREMENT_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = REQUIREMENT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = REQUIREMENT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___ALL_SUPERTYPES = REQUIREMENT_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___DIRECTION_OF__FEATURE = REQUIREMENT_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = REQUIREMENT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___IS_COMPATIBLE_WITH__TYPE = REQUIREMENT_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___MULTIPLICITIES = REQUIREMENT_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = REQUIREMENT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___SPECIALIZES__TYPE = REQUIREMENT_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = REQUIREMENT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___SUPERTYPES__BOOLEAN = REQUIREMENT_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___ALL_REDEFINED_FEATURES = REQUIREMENT_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___AS_CARTESIAN_PRODUCT = REQUIREMENT_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___CAN_ACCESS__FEATURE = REQUIREMENT_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___DIRECTION_FOR__TYPE = REQUIREMENT_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___IS_CARTESIAN_PRODUCT = REQUIREMENT_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___IS_FEATURED_WITHIN__TYPE = REQUIREMENT_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___IS_FEATURING_TYPE__TYPE = REQUIREMENT_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___IS_OWNED_CROSS_FEATURE = REQUIREMENT_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___NAMING_FEATURE = REQUIREMENT_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___OWNED_CROSS_FEATURE = REQUIREMENT_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___REDEFINES__FEATURE = REQUIREMENT_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___REDEFINES_FROM_LIBRARY__STRING = REQUIREMENT_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = REQUIREMENT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___TYPING_FEATURES = REQUIREMENT_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___REFERENCED_FEATURE_TARGET = REQUIREMENT_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___CHECK_CONDITION__ELEMENT = REQUIREMENT_USAGE___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___EVALUATE__ELEMENT = REQUIREMENT_USAGE___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = REQUIREMENT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Concern Usage' class. + * + * + * @generated + * @ordered + */ + int CONCERN_USAGE_OPERATION_COUNT = REQUIREMENT_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.PortDefinitionImpl Port Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PortDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPortDefinition() + * @generated + */ + int PORT_DEFINITION = 123; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__ALIAS_IDS = OCCURRENCE_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__DECLARED_NAME = OCCURRENCE_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__DECLARED_SHORT_NAME = OCCURRENCE_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__ELEMENT_ID = OCCURRENCE_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__IS_IMPLIED_INCLUDED = OCCURRENCE_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__IS_LIBRARY_ELEMENT = OCCURRENCE_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__NAME = OCCURRENCE_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__QUALIFIED_NAME = OCCURRENCE_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__SHORT_NAME = OCCURRENCE_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__DOCUMENTATION = OCCURRENCE_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_ANNOTATION = OCCURRENCE_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_ELEMENT = OCCURRENCE_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_RELATIONSHIP = OCCURRENCE_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNER = OCCURRENCE_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNING_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNING_NAMESPACE = OCCURRENCE_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNING_RELATIONSHIP = OCCURRENCE_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__TEXTUAL_REPRESENTATION = OCCURRENCE_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__IMPORTED_MEMBERSHIP = OCCURRENCE_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__MEMBER = OCCURRENCE_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__MEMBERSHIP = OCCURRENCE_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_IMPORT = OCCURRENCE_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_MEMBER = OCCURRENCE_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__IS_ABSTRACT = OCCURRENCE_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__IS_CONJUGATED = OCCURRENCE_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__IS_SUFFICIENT = OCCURRENCE_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__DIFFERENCING_TYPE = OCCURRENCE_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__DIRECTED_FEATURE = OCCURRENCE_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__END_FEATURE = OCCURRENCE_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__FEATURE = OCCURRENCE_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__FEATURE_MEMBERSHIP = OCCURRENCE_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__INHERITED_FEATURE = OCCURRENCE_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__INHERITED_MEMBERSHIP = OCCURRENCE_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__INPUT = OCCURRENCE_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__INTERSECTING_TYPE = OCCURRENCE_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__MULTIPLICITY = OCCURRENCE_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OUTPUT = OCCURRENCE_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_CONJUGATOR = OCCURRENCE_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_DIFFERENCING = OCCURRENCE_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_DISJOINING = OCCURRENCE_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_END_FEATURE = OCCURRENCE_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_FEATURE = OCCURRENCE_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_FEATURE_MEMBERSHIP = OCCURRENCE_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_INTERSECTING = OCCURRENCE_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_SPECIALIZATION = OCCURRENCE_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_UNIONING = OCCURRENCE_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__UNIONING_TYPE = OCCURRENCE_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_SUBCLASSIFICATION = OCCURRENCE_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__IS_VARIATION = OCCURRENCE_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__DIRECTED_USAGE = OCCURRENCE_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_ACTION = OCCURRENCE_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_ALLOCATION = OCCURRENCE_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_ANALYSIS_CASE = OCCURRENCE_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_ATTRIBUTE = OCCURRENCE_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_CALCULATION = OCCURRENCE_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_CASE = OCCURRENCE_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_CONCERN = OCCURRENCE_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_CONNECTION = OCCURRENCE_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_CONSTRAINT = OCCURRENCE_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_ENUMERATION = OCCURRENCE_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_FLOW = OCCURRENCE_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_INTERFACE = OCCURRENCE_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_ITEM = OCCURRENCE_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_METADATA = OCCURRENCE_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_OCCURRENCE = OCCURRENCE_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_PART = OCCURRENCE_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_PORT = OCCURRENCE_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_REFERENCE = OCCURRENCE_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_RENDERING = OCCURRENCE_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_REQUIREMENT = OCCURRENCE_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_STATE = OCCURRENCE_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_TRANSITION = OCCURRENCE_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_USAGE = OCCURRENCE_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_USE_CASE = OCCURRENCE_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_VERIFICATION_CASE = OCCURRENCE_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_VIEW = OCCURRENCE_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__OWNED_VIEWPOINT = OCCURRENCE_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__USAGE = OCCURRENCE_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__VARIANT = OCCURRENCE_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__VARIANT_MEMBERSHIP = OCCURRENCE_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__IS_INDIVIDUAL = OCCURRENCE_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Conjugated Port Definition' reference. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION__CONJUGATED_PORT_DEFINITION = OCCURRENCE_DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Port Definition' class. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION_FEATURE_COUNT = OCCURRENCE_DEFINITION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___EFFECTIVE_NAME = OCCURRENCE_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___EFFECTIVE_SHORT_NAME = OCCURRENCE_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___ESCAPED_NAME = OCCURRENCE_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___LIBRARY_NAMESPACE = OCCURRENCE_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___PATH = OCCURRENCE_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = OCCURRENCE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OCCURRENCE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___NAMES_OF__ELEMENT = OCCURRENCE_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___QUALIFICATION_OF__STRING = OCCURRENCE_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___RESOLVE__STRING = OCCURRENCE_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___RESOLVE_GLOBAL__STRING = OCCURRENCE_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___RESOLVE_LOCAL__STRING = OCCURRENCE_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___RESOLVE_VISIBLE__STRING = OCCURRENCE_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___UNQUALIFIED_NAME_OF__STRING = OCCURRENCE_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___VISIBILITY_OF__MEMBERSHIP = OCCURRENCE_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OCCURRENCE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OCCURRENCE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___ALL_SUPERTYPES = OCCURRENCE_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___DIRECTION_OF__FEATURE = OCCURRENCE_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OCCURRENCE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___IS_COMPATIBLE_WITH__TYPE = OCCURRENCE_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___MULTIPLICITIES = OCCURRENCE_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = OCCURRENCE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___SPECIALIZES__TYPE = OCCURRENCE_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = OCCURRENCE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION___SUPERTYPES__BOOLEAN = OCCURRENCE_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Port Definition' class. + * + * + * @generated + * @ordered + */ + int PORT_DEFINITION_OPERATION_COUNT = OCCURRENCE_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConjugatedPortDefinitionImpl Conjugated Port Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConjugatedPortDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConjugatedPortDefinition() + * @generated + */ + int CONJUGATED_PORT_DEFINITION = 30; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__ALIAS_IDS = PORT_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__DECLARED_NAME = PORT_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__DECLARED_SHORT_NAME = PORT_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__ELEMENT_ID = PORT_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__IS_IMPLIED_INCLUDED = PORT_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__IS_LIBRARY_ELEMENT = PORT_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__NAME = PORT_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__QUALIFIED_NAME = PORT_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__SHORT_NAME = PORT_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__DOCUMENTATION = PORT_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_ANNOTATION = PORT_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_ELEMENT = PORT_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_RELATIONSHIP = PORT_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNER = PORT_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNING_MEMBERSHIP = PORT_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNING_NAMESPACE = PORT_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNING_RELATIONSHIP = PORT_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__TEXTUAL_REPRESENTATION = PORT_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__IMPORTED_MEMBERSHIP = PORT_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__MEMBER = PORT_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__MEMBERSHIP = PORT_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_IMPORT = PORT_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_MEMBER = PORT_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_MEMBERSHIP = PORT_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__IS_ABSTRACT = PORT_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__IS_CONJUGATED = PORT_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__IS_SUFFICIENT = PORT_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__DIFFERENCING_TYPE = PORT_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__DIRECTED_FEATURE = PORT_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__END_FEATURE = PORT_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__FEATURE = PORT_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__FEATURE_MEMBERSHIP = PORT_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__INHERITED_FEATURE = PORT_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__INHERITED_MEMBERSHIP = PORT_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__INPUT = PORT_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__INTERSECTING_TYPE = PORT_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__MULTIPLICITY = PORT_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OUTPUT = PORT_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_CONJUGATOR = PORT_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_DIFFERENCING = PORT_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_DISJOINING = PORT_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_END_FEATURE = PORT_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_FEATURE = PORT_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_FEATURE_MEMBERSHIP = PORT_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_INTERSECTING = PORT_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_SPECIALIZATION = PORT_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_UNIONING = PORT_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__UNIONING_TYPE = PORT_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_SUBCLASSIFICATION = PORT_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__IS_VARIATION = PORT_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__DIRECTED_USAGE = PORT_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_ACTION = PORT_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_ALLOCATION = PORT_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_ANALYSIS_CASE = PORT_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_ATTRIBUTE = PORT_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_CALCULATION = PORT_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_CASE = PORT_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_CONCERN = PORT_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_CONNECTION = PORT_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_CONSTRAINT = PORT_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_ENUMERATION = PORT_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_FLOW = PORT_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_INTERFACE = PORT_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_ITEM = PORT_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_METADATA = PORT_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_OCCURRENCE = PORT_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_PART = PORT_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_PORT = PORT_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_REFERENCE = PORT_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_RENDERING = PORT_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_REQUIREMENT = PORT_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_STATE = PORT_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_TRANSITION = PORT_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_USAGE = PORT_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_USE_CASE = PORT_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_VERIFICATION_CASE = PORT_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_VIEW = PORT_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_VIEWPOINT = PORT_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__USAGE = PORT_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__VARIANT = PORT_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__VARIANT_MEMBERSHIP = PORT_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__IS_INDIVIDUAL = PORT_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Conjugated Port Definition' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__CONJUGATED_PORT_DEFINITION = PORT_DEFINITION__CONJUGATED_PORT_DEFINITION; + + /** + * The feature id for the 'Original Port Definition' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__ORIGINAL_PORT_DEFINITION = PORT_DEFINITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Port Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION__OWNED_PORT_CONJUGATOR = PORT_DEFINITION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Conjugated Port Definition' class. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION_FEATURE_COUNT = PORT_DEFINITION_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___EFFECTIVE_NAME = PORT_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___EFFECTIVE_SHORT_NAME = PORT_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___ESCAPED_NAME = PORT_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___LIBRARY_NAMESPACE = PORT_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___PATH = PORT_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = PORT_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = PORT_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___NAMES_OF__ELEMENT = PORT_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___QUALIFICATION_OF__STRING = PORT_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___RESOLVE__STRING = PORT_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___RESOLVE_GLOBAL__STRING = PORT_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___RESOLVE_LOCAL__STRING = PORT_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___RESOLVE_VISIBLE__STRING = PORT_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___UNQUALIFIED_NAME_OF__STRING = PORT_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___VISIBILITY_OF__MEMBERSHIP = PORT_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = PORT_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = PORT_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___ALL_SUPERTYPES = PORT_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___DIRECTION_OF__FEATURE = PORT_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = PORT_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PORT_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PORT_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___IS_COMPATIBLE_WITH__TYPE = PORT_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___MULTIPLICITIES = PORT_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PORT_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = PORT_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___SPECIALIZES__TYPE = PORT_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = PORT_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION___SUPERTYPES__BOOLEAN = PORT_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Conjugated Port Definition' class. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_DEFINITION_OPERATION_COUNT = PORT_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SpecializationImpl Specialization}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SpecializationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSpecialization() + * @generated + */ + int SPECIALIZATION = 141; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'General' reference. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__GENERAL = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__OWNING_TYPE = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Specific' reference. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION__SPECIFIC = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Specialization' class. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Specialization' class. + * + * + * @generated + * @ordered + */ + int SPECIALIZATION_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FeatureTypingImpl Feature Typing}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureTypingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureTyping() + * @generated + */ + int FEATURE_TYPING = 64; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__ALIAS_IDS = SPECIALIZATION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__DECLARED_NAME = SPECIALIZATION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__DECLARED_SHORT_NAME = SPECIALIZATION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__ELEMENT_ID = SPECIALIZATION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__IS_IMPLIED_INCLUDED = SPECIALIZATION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__IS_LIBRARY_ELEMENT = SPECIALIZATION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__NAME = SPECIALIZATION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__QUALIFIED_NAME = SPECIALIZATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__SHORT_NAME = SPECIALIZATION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__DOCUMENTATION = SPECIALIZATION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNED_ANNOTATION = SPECIALIZATION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNED_ELEMENT = SPECIALIZATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNED_RELATIONSHIP = SPECIALIZATION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNER = SPECIALIZATION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNING_MEMBERSHIP = SPECIALIZATION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNING_NAMESPACE = SPECIALIZATION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNING_RELATIONSHIP = SPECIALIZATION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__TEXTUAL_REPRESENTATION = SPECIALIZATION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__IS_IMPLIED = SPECIALIZATION__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNED_RELATED_ELEMENT = SPECIALIZATION__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNING_RELATED_ELEMENT = SPECIALIZATION__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__RELATED_ELEMENT = SPECIALIZATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__SOURCE = SPECIALIZATION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__TARGET = SPECIALIZATION__TARGET; + + /** + * The feature id for the 'General' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__GENERAL = SPECIALIZATION__GENERAL; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNING_TYPE = SPECIALIZATION__OWNING_TYPE; + + /** + * The feature id for the 'Specific' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__SPECIFIC = SPECIALIZATION__SPECIFIC; + + /** + * The feature id for the 'Owning Feature' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__OWNING_FEATURE = SPECIALIZATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__TYPE = SPECIALIZATION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Typed Feature' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING__TYPED_FEATURE = SPECIALIZATION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Feature Typing' class. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING_FEATURE_COUNT = SPECIALIZATION_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING___EFFECTIVE_NAME = SPECIALIZATION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING___EFFECTIVE_SHORT_NAME = SPECIALIZATION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING___ESCAPED_NAME = SPECIALIZATION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING___LIBRARY_NAMESPACE = SPECIALIZATION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING___PATH = SPECIALIZATION___PATH; + + /** + * The number of operations of the 'Feature Typing' class. + * + * + * @generated + * @ordered + */ + int FEATURE_TYPING_OPERATION_COUNT = SPECIALIZATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConjugatedPortTypingImpl Conjugated Port Typing}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConjugatedPortTypingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConjugatedPortTyping() + * @generated + */ + int CONJUGATED_PORT_TYPING = 31; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__ALIAS_IDS = FEATURE_TYPING__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__DECLARED_NAME = FEATURE_TYPING__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__DECLARED_SHORT_NAME = FEATURE_TYPING__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__ELEMENT_ID = FEATURE_TYPING__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__IS_IMPLIED_INCLUDED = FEATURE_TYPING__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__IS_LIBRARY_ELEMENT = FEATURE_TYPING__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__NAME = FEATURE_TYPING__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__QUALIFIED_NAME = FEATURE_TYPING__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__SHORT_NAME = FEATURE_TYPING__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__DOCUMENTATION = FEATURE_TYPING__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNED_ANNOTATION = FEATURE_TYPING__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNED_ELEMENT = FEATURE_TYPING__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNED_RELATIONSHIP = FEATURE_TYPING__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNER = FEATURE_TYPING__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNING_MEMBERSHIP = FEATURE_TYPING__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNING_NAMESPACE = FEATURE_TYPING__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNING_RELATIONSHIP = FEATURE_TYPING__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__TEXTUAL_REPRESENTATION = FEATURE_TYPING__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__IS_IMPLIED = FEATURE_TYPING__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNED_RELATED_ELEMENT = FEATURE_TYPING__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNING_RELATED_ELEMENT = FEATURE_TYPING__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__RELATED_ELEMENT = FEATURE_TYPING__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__SOURCE = FEATURE_TYPING__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__TARGET = FEATURE_TYPING__TARGET; + + /** + * The feature id for the 'General' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__GENERAL = FEATURE_TYPING__GENERAL; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNING_TYPE = FEATURE_TYPING__OWNING_TYPE; + + /** + * The feature id for the 'Specific' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__SPECIFIC = FEATURE_TYPING__SPECIFIC; + + /** + * The feature id for the 'Owning Feature' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__OWNING_FEATURE = FEATURE_TYPING__OWNING_FEATURE; + + /** + * The feature id for the 'Type' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__TYPE = FEATURE_TYPING__TYPE; + + /** + * The feature id for the 'Typed Feature' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__TYPED_FEATURE = FEATURE_TYPING__TYPED_FEATURE; + + /** + * The feature id for the 'Conjugated Port Definition' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__CONJUGATED_PORT_DEFINITION = FEATURE_TYPING_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Port Definition' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING__PORT_DEFINITION = FEATURE_TYPING_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Conjugated Port Typing' class. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING_FEATURE_COUNT = FEATURE_TYPING_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING___EFFECTIVE_NAME = FEATURE_TYPING___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING___EFFECTIVE_SHORT_NAME = FEATURE_TYPING___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING___ESCAPED_NAME = FEATURE_TYPING___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING___LIBRARY_NAMESPACE = FEATURE_TYPING___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING___PATH = FEATURE_TYPING___PATH; + + /** + * The number of operations of the 'Conjugated Port Typing' class. + * + * + * @generated + * @ordered + */ + int CONJUGATED_PORT_TYPING_OPERATION_COUNT = FEATURE_TYPING_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConjugationImpl Conjugation}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConjugationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConjugation() + * @generated + */ + int CONJUGATION = 32; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONJUGATION__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATION__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATION__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATION__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATION__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATION__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATION__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATION__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATION__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATION__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATION__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATION__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATION__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATION__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATION__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATION__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONJUGATION__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATION__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int CONJUGATION__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATION__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int CONJUGATION__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATION__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATION__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int CONJUGATION__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Conjugated Type' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATION__CONJUGATED_TYPE = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Original Type' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATION__ORIGINAL_TYPE = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONJUGATION__OWNING_TYPE = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Conjugation' class. + * + * + * @generated + * @ordered + */ + int CONJUGATION_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATION___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATION___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATION___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATION___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONJUGATION___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Conjugation' class. + * + * + * @generated + * @ordered + */ + int CONJUGATION_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ConstructorExpressionImpl Constructor Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConstructorExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConstructorExpression() + * @generated + */ + int CONSTRUCTOR_EXPRESSION = 39; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__ALIAS_IDS = INSTANTIATION_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__DECLARED_NAME = INSTANTIATION_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__DECLARED_SHORT_NAME = INSTANTIATION_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__ELEMENT_ID = INSTANTIATION_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_IMPLIED_INCLUDED = INSTANTIATION_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_LIBRARY_ELEMENT = INSTANTIATION_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__NAME = INSTANTIATION_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__QUALIFIED_NAME = INSTANTIATION_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__SHORT_NAME = INSTANTIATION_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__DOCUMENTATION = INSTANTIATION_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_ANNOTATION = INSTANTIATION_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_ELEMENT = INSTANTIATION_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_RELATIONSHIP = INSTANTIATION_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNER = INSTANTIATION_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNING_MEMBERSHIP = INSTANTIATION_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNING_NAMESPACE = INSTANTIATION_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNING_RELATIONSHIP = INSTANTIATION_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__TEXTUAL_REPRESENTATION = INSTANTIATION_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IMPORTED_MEMBERSHIP = INSTANTIATION_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__MEMBER = INSTANTIATION_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__MEMBERSHIP = INSTANTIATION_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_IMPORT = INSTANTIATION_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_MEMBER = INSTANTIATION_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_MEMBERSHIP = INSTANTIATION_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_ABSTRACT = INSTANTIATION_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_CONJUGATED = INSTANTIATION_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_SUFFICIENT = INSTANTIATION_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__DIFFERENCING_TYPE = INSTANTIATION_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__DIRECTED_FEATURE = INSTANTIATION_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__END_FEATURE = INSTANTIATION_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__FEATURE = INSTANTIATION_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__FEATURE_MEMBERSHIP = INSTANTIATION_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__INHERITED_FEATURE = INSTANTIATION_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__INHERITED_MEMBERSHIP = INSTANTIATION_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__INPUT = INSTANTIATION_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__INTERSECTING_TYPE = INSTANTIATION_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__MULTIPLICITY = INSTANTIATION_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OUTPUT = INSTANTIATION_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_CONJUGATOR = INSTANTIATION_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_DIFFERENCING = INSTANTIATION_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_DISJOINING = INSTANTIATION_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_END_FEATURE = INSTANTIATION_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_FEATURE = INSTANTIATION_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = INSTANTIATION_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_INTERSECTING = INSTANTIATION_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_SPECIALIZATION = INSTANTIATION_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_UNIONING = INSTANTIATION_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__UNIONING_TYPE = INSTANTIATION_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__DIRECTION = INSTANTIATION_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_COMPOSITE = INSTANTIATION_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_CONSTANT = INSTANTIATION_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_DERIVED = INSTANTIATION_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_END = INSTANTIATION_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_NONUNIQUE = INSTANTIATION_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_ORDERED = INSTANTIATION_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_PORTION = INSTANTIATION_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_UNIQUE = INSTANTIATION_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_VARIABLE = INSTANTIATION_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__CHAINING_FEATURE = INSTANTIATION_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__CROSS_FEATURE = INSTANTIATION_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__END_OWNING_TYPE = INSTANTIATION_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__FEATURE_TARGET = INSTANTIATION_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__FEATURING_TYPE = INSTANTIATION_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_CROSS_SUBSETTING = INSTANTIATION_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_FEATURE_CHAINING = INSTANTIATION_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_FEATURE_INVERTING = INSTANTIATION_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_REDEFINITION = INSTANTIATION_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_REFERENCE_SUBSETTING = INSTANTIATION_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_SUBSETTING = INSTANTIATION_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_TYPE_FEATURING = INSTANTIATION_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNED_TYPING = INSTANTIATION_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = INSTANTIATION_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__OWNING_TYPE = INSTANTIATION_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__TYPE = INSTANTIATION_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__BEHAVIOR = INSTANTIATION_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__PARAMETER = INSTANTIATION_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = INSTANTIATION_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__FUNCTION = INSTANTIATION_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__RESULT = INSTANTIATION_EXPRESSION__RESULT; + + /** + * The feature id for the 'Argument' reference list. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__ARGUMENT = INSTANTIATION_EXPRESSION__ARGUMENT; + + /** + * The feature id for the 'Instantiated Type' reference. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION__INSTANTIATED_TYPE = INSTANTIATION_EXPRESSION__INSTANTIATED_TYPE; + + /** + * The number of structural features of the 'Constructor Expression' class. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION_FEATURE_COUNT = INSTANTIATION_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___EFFECTIVE_NAME = INSTANTIATION_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___EFFECTIVE_SHORT_NAME = INSTANTIATION_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___ESCAPED_NAME = INSTANTIATION_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___LIBRARY_NAMESPACE = INSTANTIATION_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___PATH = INSTANTIATION_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = INSTANTIATION_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = INSTANTIATION_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___NAMES_OF__ELEMENT = INSTANTIATION_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___QUALIFICATION_OF__STRING = INSTANTIATION_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___RESOLVE__STRING = INSTANTIATION_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___RESOLVE_GLOBAL__STRING = INSTANTIATION_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___RESOLVE_LOCAL__STRING = INSTANTIATION_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___RESOLVE_VISIBLE__STRING = INSTANTIATION_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = INSTANTIATION_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = INSTANTIATION_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = INSTANTIATION_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = INSTANTIATION_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___ALL_SUPERTYPES = INSTANTIATION_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___DIRECTION_OF__FEATURE = INSTANTIATION_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = INSTANTIATION_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INSTANTIATION_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INSTANTIATION_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = INSTANTIATION_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___MULTIPLICITIES = INSTANTIATION_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INSTANTIATION_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = INSTANTIATION_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___SPECIALIZES__TYPE = INSTANTIATION_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = INSTANTIATION_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___SUPERTYPES__BOOLEAN = INSTANTIATION_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___ALL_REDEFINED_FEATURES = INSTANTIATION_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___AS_CARTESIAN_PRODUCT = INSTANTIATION_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___CAN_ACCESS__FEATURE = INSTANTIATION_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___DIRECTION_FOR__TYPE = INSTANTIATION_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___IS_CARTESIAN_PRODUCT = INSTANTIATION_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___IS_FEATURED_WITHIN__TYPE = INSTANTIATION_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___IS_FEATURING_TYPE__TYPE = INSTANTIATION_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___IS_OWNED_CROSS_FEATURE = INSTANTIATION_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___NAMING_FEATURE = INSTANTIATION_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___OWNED_CROSS_FEATURE = INSTANTIATION_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___REDEFINES__FEATURE = INSTANTIATION_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = INSTANTIATION_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = INSTANTIATION_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___TYPING_FEATURES = INSTANTIATION_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___CHECK_CONDITION__ELEMENT = INSTANTIATION_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___EVALUATE__ELEMENT = INSTANTIATION_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = INSTANTIATION_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The operation id for the 'Instantiated Type' operation. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION___INSTANTIATED_TYPE = INSTANTIATION_EXPRESSION___INSTANTIATED_TYPE; + + /** + * The number of operations of the 'Constructor Expression' class. + * + * + * @generated + * @ordered + */ + int CONSTRUCTOR_EXPRESSION_OPERATION_COUNT = INSTANTIATION_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ControlNodeImpl Control Node}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ControlNodeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getControlNode() + * @generated + */ + int CONTROL_NODE = 40; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The number of structural features of the 'Control Node' class. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Multiplicity Has Bounds' operation. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Control Node' class. + * + * + * @generated + * @ordered + */ + int CONTROL_NODE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SubsettingImpl Subsetting}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SubsettingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSubsetting() + * @generated + */ + int SUBSETTING = 150; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SUBSETTING__ALIAS_IDS = SPECIALIZATION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBSETTING__DECLARED_NAME = SPECIALIZATION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBSETTING__DECLARED_SHORT_NAME = SPECIALIZATION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SUBSETTING__ELEMENT_ID = SPECIALIZATION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SUBSETTING__IS_IMPLIED_INCLUDED = SPECIALIZATION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SUBSETTING__IS_LIBRARY_ELEMENT = SPECIALIZATION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBSETTING__NAME = SPECIALIZATION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBSETTING__QUALIFIED_NAME = SPECIALIZATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBSETTING__SHORT_NAME = SPECIALIZATION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SUBSETTING__DOCUMENTATION = SPECIALIZATION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNED_ANNOTATION = SPECIALIZATION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNED_ELEMENT = SPECIALIZATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNED_RELATIONSHIP = SPECIALIZATION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNER = SPECIALIZATION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNING_MEMBERSHIP = SPECIALIZATION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNING_NAMESPACE = SPECIALIZATION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNING_RELATIONSHIP = SPECIALIZATION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SUBSETTING__TEXTUAL_REPRESENTATION = SPECIALIZATION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int SUBSETTING__IS_IMPLIED = SPECIALIZATION__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNED_RELATED_ELEMENT = SPECIALIZATION__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNING_RELATED_ELEMENT = SPECIALIZATION__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int SUBSETTING__RELATED_ELEMENT = SPECIALIZATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int SUBSETTING__SOURCE = SPECIALIZATION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int SUBSETTING__TARGET = SPECIALIZATION__TARGET; + + /** + * The feature id for the 'General' reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__GENERAL = SPECIALIZATION__GENERAL; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNING_TYPE = SPECIALIZATION__OWNING_TYPE; + + /** + * The feature id for the 'Specific' reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__SPECIFIC = SPECIALIZATION__SPECIFIC; + + /** + * The feature id for the 'Owning Feature' reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__OWNING_FEATURE = SPECIALIZATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Subsetted Feature' reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__SUBSETTED_FEATURE = SPECIALIZATION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Subsetting Feature' reference. + * + * + * @generated + * @ordered + */ + int SUBSETTING__SUBSETTING_FEATURE = SPECIALIZATION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Subsetting' class. + * + * + * @generated + * @ordered + */ + int SUBSETTING_FEATURE_COUNT = SPECIALIZATION_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SUBSETTING___EFFECTIVE_NAME = SPECIALIZATION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SUBSETTING___EFFECTIVE_SHORT_NAME = SPECIALIZATION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SUBSETTING___ESCAPED_NAME = SPECIALIZATION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SUBSETTING___LIBRARY_NAMESPACE = SPECIALIZATION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SUBSETTING___PATH = SPECIALIZATION___PATH; + + /** + * The number of operations of the 'Subsetting' class. + * + * + * @generated + * @ordered + */ + int SUBSETTING_OPERATION_COUNT = SPECIALIZATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.CrossSubsettingImpl Cross Subsetting}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CrossSubsettingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCrossSubsetting() + * @generated + */ + int CROSS_SUBSETTING = 41; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__ALIAS_IDS = SUBSETTING__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__DECLARED_NAME = SUBSETTING__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__DECLARED_SHORT_NAME = SUBSETTING__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__ELEMENT_ID = SUBSETTING__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__IS_IMPLIED_INCLUDED = SUBSETTING__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__IS_LIBRARY_ELEMENT = SUBSETTING__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__NAME = SUBSETTING__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__QUALIFIED_NAME = SUBSETTING__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__SHORT_NAME = SUBSETTING__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__DOCUMENTATION = SUBSETTING__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNED_ANNOTATION = SUBSETTING__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNED_ELEMENT = SUBSETTING__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNED_RELATIONSHIP = SUBSETTING__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNER = SUBSETTING__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNING_MEMBERSHIP = SUBSETTING__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNING_NAMESPACE = SUBSETTING__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNING_RELATIONSHIP = SUBSETTING__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__TEXTUAL_REPRESENTATION = SUBSETTING__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__IS_IMPLIED = SUBSETTING__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNED_RELATED_ELEMENT = SUBSETTING__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNING_RELATED_ELEMENT = SUBSETTING__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__RELATED_ELEMENT = SUBSETTING__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__SOURCE = SUBSETTING__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__TARGET = SUBSETTING__TARGET; + + /** + * The feature id for the 'General' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__GENERAL = SUBSETTING__GENERAL; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNING_TYPE = SUBSETTING__OWNING_TYPE; + + /** + * The feature id for the 'Specific' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__SPECIFIC = SUBSETTING__SPECIFIC; + + /** + * The feature id for the 'Owning Feature' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__OWNING_FEATURE = SUBSETTING__OWNING_FEATURE; + + /** + * The feature id for the 'Subsetted Feature' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__SUBSETTED_FEATURE = SUBSETTING__SUBSETTED_FEATURE; + + /** + * The feature id for the 'Subsetting Feature' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__SUBSETTING_FEATURE = SUBSETTING__SUBSETTING_FEATURE; + + /** + * The feature id for the 'Crossed Feature' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__CROSSED_FEATURE = SUBSETTING_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Crossing Feature' reference. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING__CROSSING_FEATURE = SUBSETTING_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Cross Subsetting' class. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING_FEATURE_COUNT = SUBSETTING_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING___EFFECTIVE_NAME = SUBSETTING___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING___EFFECTIVE_SHORT_NAME = SUBSETTING___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING___ESCAPED_NAME = SUBSETTING___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING___LIBRARY_NAMESPACE = SUBSETTING___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING___PATH = SUBSETTING___PATH; + + /** + * The number of operations of the 'Cross Subsetting' class. + * + * + * @generated + * @ordered + */ + int CROSS_SUBSETTING_OPERATION_COUNT = SUBSETTING_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.DataTypeImpl Data Type}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DataTypeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDataType() + * @generated + */ + int DATA_TYPE = 42; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__ALIAS_IDS = CLASSIFIER__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__DECLARED_NAME = CLASSIFIER__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__DECLARED_SHORT_NAME = CLASSIFIER__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__ELEMENT_ID = CLASSIFIER__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__IS_IMPLIED_INCLUDED = CLASSIFIER__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__IS_LIBRARY_ELEMENT = CLASSIFIER__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__NAME = CLASSIFIER__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__SHORT_NAME = CLASSIFIER__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__DOCUMENTATION = CLASSIFIER__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_ANNOTATION = CLASSIFIER__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_ELEMENT = CLASSIFIER__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_RELATIONSHIP = CLASSIFIER__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNER = CLASSIFIER__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNING_MEMBERSHIP = CLASSIFIER__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNING_NAMESPACE = CLASSIFIER__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNING_RELATIONSHIP = CLASSIFIER__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__TEXTUAL_REPRESENTATION = CLASSIFIER__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__IMPORTED_MEMBERSHIP = CLASSIFIER__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__MEMBER = CLASSIFIER__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__MEMBERSHIP = CLASSIFIER__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_IMPORT = CLASSIFIER__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_MEMBER = CLASSIFIER__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_MEMBERSHIP = CLASSIFIER__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__IS_ABSTRACT = CLASSIFIER__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__IS_CONJUGATED = CLASSIFIER__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__IS_SUFFICIENT = CLASSIFIER__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__DIFFERENCING_TYPE = CLASSIFIER__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__DIRECTED_FEATURE = CLASSIFIER__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__END_FEATURE = CLASSIFIER__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__FEATURE = CLASSIFIER__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__FEATURE_MEMBERSHIP = CLASSIFIER__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__INHERITED_FEATURE = CLASSIFIER__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__INHERITED_MEMBERSHIP = CLASSIFIER__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__INPUT = CLASSIFIER__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__INTERSECTING_TYPE = CLASSIFIER__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__MULTIPLICITY = CLASSIFIER__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OUTPUT = CLASSIFIER__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_CONJUGATOR = CLASSIFIER__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_DIFFERENCING = CLASSIFIER__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_DISJOINING = CLASSIFIER__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_END_FEATURE = CLASSIFIER__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_FEATURE = CLASSIFIER__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_FEATURE_MEMBERSHIP = CLASSIFIER__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_INTERSECTING = CLASSIFIER__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_SPECIALIZATION = CLASSIFIER__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_UNIONING = CLASSIFIER__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__UNIONING_TYPE = CLASSIFIER__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int DATA_TYPE__OWNED_SUBCLASSIFICATION = CLASSIFIER__OWNED_SUBCLASSIFICATION; + + /** + * The number of structural features of the 'Data Type' class. + * + * + * @generated + * @ordered + */ + int DATA_TYPE_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___EFFECTIVE_NAME = CLASSIFIER___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___EFFECTIVE_SHORT_NAME = CLASSIFIER___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___ESCAPED_NAME = CLASSIFIER___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___LIBRARY_NAMESPACE = CLASSIFIER___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___PATH = CLASSIFIER___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___IMPORTED_MEMBERSHIPS__ELIST = CLASSIFIER___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CLASSIFIER___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___NAMES_OF__ELEMENT = CLASSIFIER___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___QUALIFICATION_OF__STRING = CLASSIFIER___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___RESOLVE__STRING = CLASSIFIER___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___RESOLVE_GLOBAL__STRING = CLASSIFIER___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___RESOLVE_LOCAL__STRING = CLASSIFIER___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___RESOLVE_VISIBLE__STRING = CLASSIFIER___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___UNQUALIFIED_NAME_OF__STRING = CLASSIFIER___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___VISIBILITY_OF__MEMBERSHIP = CLASSIFIER___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CLASSIFIER___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CLASSIFIER___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___ALL_SUPERTYPES = CLASSIFIER___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___DIRECTION_OF__FEATURE = CLASSIFIER___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CLASSIFIER___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___IS_COMPATIBLE_WITH__TYPE = CLASSIFIER___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___MULTIPLICITIES = CLASSIFIER___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASSIFIER___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___REMOVE_REDEFINED_FEATURES__ELIST = CLASSIFIER___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___SPECIALIZES__TYPE = CLASSIFIER___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___SPECIALIZES_FROM_LIBRARY__STRING = CLASSIFIER___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int DATA_TYPE___SUPERTYPES__BOOLEAN = CLASSIFIER___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Data Type' class. + * + * + * @generated + * @ordered + */ + int DATA_TYPE_OPERATION_COUNT = CLASSIFIER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.DecisionNodeImpl Decision Node}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DecisionNodeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDecisionNode() + * @generated + */ + int DECISION_NODE = 43; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__ALIAS_IDS = CONTROL_NODE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__DECLARED_NAME = CONTROL_NODE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__DECLARED_SHORT_NAME = CONTROL_NODE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__ELEMENT_ID = CONTROL_NODE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_IMPLIED_INCLUDED = CONTROL_NODE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_LIBRARY_ELEMENT = CONTROL_NODE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NAME = CONTROL_NODE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__QUALIFIED_NAME = CONTROL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__SHORT_NAME = CONTROL_NODE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__DOCUMENTATION = CONTROL_NODE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_ANNOTATION = CONTROL_NODE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_ELEMENT = CONTROL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_RELATIONSHIP = CONTROL_NODE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNER = CONTROL_NODE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNING_MEMBERSHIP = CONTROL_NODE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNING_NAMESPACE = CONTROL_NODE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNING_RELATIONSHIP = CONTROL_NODE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__TEXTUAL_REPRESENTATION = CONTROL_NODE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IMPORTED_MEMBERSHIP = CONTROL_NODE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__MEMBER = CONTROL_NODE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__MEMBERSHIP = CONTROL_NODE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_IMPORT = CONTROL_NODE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_MEMBER = CONTROL_NODE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_MEMBERSHIP = CONTROL_NODE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_ABSTRACT = CONTROL_NODE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_CONJUGATED = CONTROL_NODE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_SUFFICIENT = CONTROL_NODE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__DIFFERENCING_TYPE = CONTROL_NODE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__DIRECTED_FEATURE = CONTROL_NODE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__END_FEATURE = CONTROL_NODE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__FEATURE = CONTROL_NODE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__FEATURE_MEMBERSHIP = CONTROL_NODE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__INHERITED_FEATURE = CONTROL_NODE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__INHERITED_MEMBERSHIP = CONTROL_NODE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__INPUT = CONTROL_NODE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__INTERSECTING_TYPE = CONTROL_NODE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__MULTIPLICITY = CONTROL_NODE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OUTPUT = CONTROL_NODE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_CONJUGATOR = CONTROL_NODE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_DIFFERENCING = CONTROL_NODE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_DISJOINING = CONTROL_NODE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_END_FEATURE = CONTROL_NODE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_FEATURE = CONTROL_NODE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_FEATURE_MEMBERSHIP = CONTROL_NODE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_INTERSECTING = CONTROL_NODE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_SPECIALIZATION = CONTROL_NODE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_UNIONING = CONTROL_NODE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__UNIONING_TYPE = CONTROL_NODE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__DIRECTION = CONTROL_NODE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_COMPOSITE = CONTROL_NODE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_CONSTANT = CONTROL_NODE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_DERIVED = CONTROL_NODE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_END = CONTROL_NODE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_NONUNIQUE = CONTROL_NODE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_ORDERED = CONTROL_NODE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_PORTION = CONTROL_NODE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_UNIQUE = CONTROL_NODE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_VARIABLE = CONTROL_NODE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__CHAINING_FEATURE = CONTROL_NODE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__CROSS_FEATURE = CONTROL_NODE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__END_OWNING_TYPE = CONTROL_NODE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__FEATURE_TARGET = CONTROL_NODE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__FEATURING_TYPE = CONTROL_NODE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_CROSS_SUBSETTING = CONTROL_NODE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_FEATURE_CHAINING = CONTROL_NODE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_FEATURE_INVERTING = CONTROL_NODE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_REDEFINITION = CONTROL_NODE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_REFERENCE_SUBSETTING = CONTROL_NODE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_SUBSETTING = CONTROL_NODE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_TYPE_FEATURING = CONTROL_NODE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNED_TYPING = CONTROL_NODE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNING_FEATURE_MEMBERSHIP = CONTROL_NODE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNING_TYPE = CONTROL_NODE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__TYPE = CONTROL_NODE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_REFERENCE = CONTROL_NODE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_VARIATION = CONTROL_NODE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__MAY_TIME_VARY = CONTROL_NODE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__DEFINITION = CONTROL_NODE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__DIRECTED_USAGE = CONTROL_NODE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_ACTION = CONTROL_NODE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_ALLOCATION = CONTROL_NODE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_ANALYSIS_CASE = CONTROL_NODE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_ATTRIBUTE = CONTROL_NODE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_CALCULATION = CONTROL_NODE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_CASE = CONTROL_NODE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_CONCERN = CONTROL_NODE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_CONNECTION = CONTROL_NODE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_CONSTRAINT = CONTROL_NODE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_ENUMERATION = CONTROL_NODE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_FLOW = CONTROL_NODE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_INTERFACE = CONTROL_NODE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_ITEM = CONTROL_NODE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_METADATA = CONTROL_NODE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_OCCURRENCE = CONTROL_NODE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_PART = CONTROL_NODE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_PORT = CONTROL_NODE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_REFERENCE = CONTROL_NODE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_RENDERING = CONTROL_NODE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_REQUIREMENT = CONTROL_NODE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_STATE = CONTROL_NODE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_TRANSITION = CONTROL_NODE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_USAGE = CONTROL_NODE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_USE_CASE = CONTROL_NODE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_VERIFICATION_CASE = CONTROL_NODE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_VIEW = CONTROL_NODE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__NESTED_VIEWPOINT = CONTROL_NODE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNING_DEFINITION = CONTROL_NODE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OWNING_USAGE = CONTROL_NODE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__USAGE = CONTROL_NODE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__VARIANT = CONTROL_NODE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__VARIANT_MEMBERSHIP = CONTROL_NODE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__IS_INDIVIDUAL = CONTROL_NODE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__PORTION_KIND = CONTROL_NODE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__INDIVIDUAL_DEFINITION = CONTROL_NODE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__OCCURRENCE_DEFINITION = CONTROL_NODE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__BEHAVIOR = CONTROL_NODE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__PARAMETER = CONTROL_NODE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int DECISION_NODE__ACTION_DEFINITION = CONTROL_NODE__ACTION_DEFINITION; + + /** + * The number of structural features of the 'Decision Node' class. + * + * + * @generated + * @ordered + */ + int DECISION_NODE_FEATURE_COUNT = CONTROL_NODE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___EFFECTIVE_NAME = CONTROL_NODE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___EFFECTIVE_SHORT_NAME = CONTROL_NODE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___ESCAPED_NAME = CONTROL_NODE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___LIBRARY_NAMESPACE = CONTROL_NODE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___PATH = CONTROL_NODE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___IMPORTED_MEMBERSHIPS__ELIST = CONTROL_NODE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONTROL_NODE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___NAMES_OF__ELEMENT = CONTROL_NODE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___QUALIFICATION_OF__STRING = CONTROL_NODE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___RESOLVE__STRING = CONTROL_NODE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___RESOLVE_GLOBAL__STRING = CONTROL_NODE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___RESOLVE_LOCAL__STRING = CONTROL_NODE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___RESOLVE_VISIBLE__STRING = CONTROL_NODE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___UNQUALIFIED_NAME_OF__STRING = CONTROL_NODE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___VISIBILITY_OF__MEMBERSHIP = CONTROL_NODE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONTROL_NODE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONTROL_NODE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___ALL_SUPERTYPES = CONTROL_NODE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___DIRECTION_OF__FEATURE = CONTROL_NODE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONTROL_NODE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___IS_COMPATIBLE_WITH__TYPE = CONTROL_NODE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___MULTIPLICITIES = CONTROL_NODE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___REMOVE_REDEFINED_FEATURES__ELIST = CONTROL_NODE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___SPECIALIZES__TYPE = CONTROL_NODE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___SPECIALIZES_FROM_LIBRARY__STRING = CONTROL_NODE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___SUPERTYPES__BOOLEAN = CONTROL_NODE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___ALL_REDEFINED_FEATURES = CONTROL_NODE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___AS_CARTESIAN_PRODUCT = CONTROL_NODE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___CAN_ACCESS__FEATURE = CONTROL_NODE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___DIRECTION_FOR__TYPE = CONTROL_NODE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___IS_CARTESIAN_PRODUCT = CONTROL_NODE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___IS_FEATURED_WITHIN__TYPE = CONTROL_NODE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___IS_FEATURING_TYPE__TYPE = CONTROL_NODE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___IS_OWNED_CROSS_FEATURE = CONTROL_NODE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___NAMING_FEATURE = CONTROL_NODE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___OWNED_CROSS_FEATURE = CONTROL_NODE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___REDEFINES__FEATURE = CONTROL_NODE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___REDEFINES_FROM_LIBRARY__STRING = CONTROL_NODE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___SUBSETS_CHAIN__FEATURE_FEATURE = CONTROL_NODE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___TYPING_FEATURES = CONTROL_NODE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___REFERENCED_FEATURE_TARGET = CONTROL_NODE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___ARGUMENT__INT = CONTROL_NODE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___INPUT_PARAMETER__INT = CONTROL_NODE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___INPUT_PARAMETERS = CONTROL_NODE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___IS_SUBACTION_USAGE = CONTROL_NODE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Multiplicity Has Bounds' operation. + * + * + * @generated + * @ordered + */ + int DECISION_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT = CONTROL_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT; + + /** + * The number of operations of the 'Decision Node' class. + * + * + * @generated + * @ordered + */ + int DECISION_NODE_OPERATION_COUNT = CONTROL_NODE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.DependencyImpl Dependency}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DependencyImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDependency() + * @generated + */ + int DEPENDENCY = 45; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Client' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__CLIENT = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Supplier' reference list. + * + * + * @generated + * @ordered + */ + int DEPENDENCY__SUPPLIER = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Dependency' class. + * + * + * @generated + * @ordered + */ + int DEPENDENCY_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int DEPENDENCY___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int DEPENDENCY___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int DEPENDENCY___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int DEPENDENCY___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int DEPENDENCY___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Dependency' class. + * + * + * @generated + * @ordered + */ + int DEPENDENCY_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.DifferencingImpl Differencing}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DifferencingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDifferencing() + * @generated + */ + int DIFFERENCING = 46; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Differencing Type' reference. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__DIFFERENCING_TYPE = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type Differenced' reference. + * + * + * @generated + * @ordered + */ + int DIFFERENCING__TYPE_DIFFERENCED = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Differencing' class. + * + * + * @generated + * @ordered + */ + int DIFFERENCING_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int DIFFERENCING___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int DIFFERENCING___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int DIFFERENCING___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int DIFFERENCING___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int DIFFERENCING___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Differencing' class. + * + * + * @generated + * @ordered + */ + int DIFFERENCING_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.DisjoiningImpl Disjoining}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DisjoiningImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDisjoining() + * @generated + */ + int DISJOINING = 47; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int DISJOINING__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int DISJOINING__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DISJOINING__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int DISJOINING__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int DISJOINING__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int DISJOINING__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DISJOINING__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DISJOINING__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DISJOINING__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int DISJOINING__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int DISJOINING__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DISJOINING__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int DISJOINING__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DISJOINING__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int DISJOINING__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int DISJOINING__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int DISJOINING__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int DISJOINING__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int DISJOINING__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int DISJOINING__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int DISJOINING__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int DISJOINING__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int DISJOINING__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int DISJOINING__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Disjoining Type' reference. + * + * + * @generated + * @ordered + */ + int DISJOINING__DISJOINING_TYPE = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int DISJOINING__OWNING_TYPE = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Type Disjoined' reference. + * + * + * @generated + * @ordered + */ + int DISJOINING__TYPE_DISJOINED = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Disjoining' class. + * + * + * @generated + * @ordered + */ + int DISJOINING_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int DISJOINING___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int DISJOINING___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int DISJOINING___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int DISJOINING___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int DISJOINING___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Disjoining' class. + * + * + * @generated + * @ordered + */ + int DISJOINING_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.DocumentationImpl Documentation}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DocumentationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDocumentation() + * @generated + */ + int DOCUMENTATION = 48; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__ALIAS_IDS = COMMENT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__DECLARED_NAME = COMMENT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__DECLARED_SHORT_NAME = COMMENT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__ELEMENT_ID = COMMENT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__IS_IMPLIED_INCLUDED = COMMENT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__IS_LIBRARY_ELEMENT = COMMENT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__NAME = COMMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__QUALIFIED_NAME = COMMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__SHORT_NAME = COMMENT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__DOCUMENTATION = COMMENT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__OWNED_ANNOTATION = COMMENT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__OWNED_ELEMENT = COMMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__OWNED_RELATIONSHIP = COMMENT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__OWNER = COMMENT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__OWNING_MEMBERSHIP = COMMENT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__OWNING_NAMESPACE = COMMENT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__OWNING_RELATIONSHIP = COMMENT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__TEXTUAL_REPRESENTATION = COMMENT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Annotated Element' reference list. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__ANNOTATED_ELEMENT = COMMENT__ANNOTATED_ELEMENT; + + /** + * The feature id for the 'Annotation' reference list. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__ANNOTATION = COMMENT__ANNOTATION; + + /** + * The feature id for the 'Owned Annotating Relationship' reference list. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__OWNED_ANNOTATING_RELATIONSHIP = COMMENT__OWNED_ANNOTATING_RELATIONSHIP; + + /** + * The feature id for the 'Owning Annotating Relationship' reference. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__OWNING_ANNOTATING_RELATIONSHIP = COMMENT__OWNING_ANNOTATING_RELATIONSHIP; + + /** + * The feature id for the 'Body' attribute. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__BODY = COMMENT__BODY; + + /** + * The feature id for the 'Locale' attribute. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__LOCALE = COMMENT__LOCALE; + + /** + * The feature id for the 'Documented Element' reference. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION__DOCUMENTED_ELEMENT = COMMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Documentation' class. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION_FEATURE_COUNT = COMMENT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION___EFFECTIVE_NAME = COMMENT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION___EFFECTIVE_SHORT_NAME = COMMENT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION___ESCAPED_NAME = COMMENT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION___LIBRARY_NAMESPACE = COMMENT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION___PATH = COMMENT___PATH; + + /** + * The number of operations of the 'Documentation' class. + * + * + * @generated + * @ordered + */ + int DOCUMENTATION_OPERATION_COUNT = COMMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ElementFilterMembershipImpl Element Filter Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ElementFilterMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getElementFilterMembership() + * @generated + */ + int ELEMENT_FILTER_MEMBERSHIP = 50; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__ALIAS_IDS = OWNING_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__DECLARED_NAME = OWNING_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__DECLARED_SHORT_NAME = OWNING_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__ELEMENT_ID = OWNING_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__IS_IMPLIED_INCLUDED = OWNING_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__IS_LIBRARY_ELEMENT = OWNING_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__NAME = OWNING_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__QUALIFIED_NAME = OWNING_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__SHORT_NAME = OWNING_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__DOCUMENTATION = OWNING_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNED_ANNOTATION = OWNING_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNED_ELEMENT = OWNING_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNED_RELATIONSHIP = OWNING_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNER = OWNING_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNING_MEMBERSHIP = OWNING_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNING_NAMESPACE = OWNING_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNING_RELATIONSHIP = OWNING_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__TEXTUAL_REPRESENTATION = OWNING_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__IS_IMPLIED = OWNING_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNED_RELATED_ELEMENT = OWNING_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNING_RELATED_ELEMENT = OWNING_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__RELATED_ELEMENT = OWNING_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__SOURCE = OWNING_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__TARGET = OWNING_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__MEMBER_ELEMENT_ID = OWNING_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__MEMBER_NAME = OWNING_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__MEMBER_SHORT_NAME = OWNING_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__VISIBILITY = OWNING_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__MEMBER_ELEMENT = OWNING_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = OWNING_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNED_MEMBER_NAME = OWNING_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = OWNING_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__OWNED_MEMBER_ELEMENT = OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Condition' reference. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP__CONDITION = OWNING_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Element Filter Membership' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP_FEATURE_COUNT = OWNING_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP___EFFECTIVE_NAME = OWNING_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP___EFFECTIVE_SHORT_NAME = OWNING_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP___ESCAPED_NAME = OWNING_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP___LIBRARY_NAMESPACE = OWNING_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP___PATH = OWNING_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = OWNING_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Element Filter Membership' class. + * + * + * @generated + * @ordered + */ + int ELEMENT_FILTER_MEMBERSHIP_OPERATION_COUNT = OWNING_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.EndFeatureMembershipImpl End Feature Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.EndFeatureMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getEndFeatureMembership() + * @generated + */ + int END_FEATURE_MEMBERSHIP = 51; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__ALIAS_IDS = FEATURE_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__DECLARED_NAME = FEATURE_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME = FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__ELEMENT_ID = FEATURE_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED = FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT = FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__NAME = FEATURE_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__QUALIFIED_NAME = FEATURE_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__SHORT_NAME = FEATURE_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__DOCUMENTATION = FEATURE_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNED_ANNOTATION = FEATURE_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNER = FEATURE_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP = FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNING_NAMESPACE = FEATURE_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION = FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__IS_IMPLIED = FEATURE_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__RELATED_ELEMENT = FEATURE_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__SOURCE = FEATURE_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__TARGET = FEATURE_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__MEMBER_NAME = FEATURE_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__VISIBILITY = FEATURE_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__MEMBER_ELEMENT = FEATURE_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE = FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP__OWNING_TYPE = FEATURE_MEMBERSHIP__OWNING_TYPE; + + /** + * The number of structural features of the 'End Feature Membership' class. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP_FEATURE_COUNT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP___EFFECTIVE_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP___ESCAPED_NAME = FEATURE_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE = FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP___PATH = FEATURE_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'End Feature Membership' class. + * + * + * @generated + * @ordered + */ + int END_FEATURE_MEMBERSHIP_OPERATION_COUNT = FEATURE_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.EnumerationDefinitionImpl Enumeration Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.EnumerationDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getEnumerationDefinition() + * @generated + */ + int ENUMERATION_DEFINITION = 52; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__ALIAS_IDS = ATTRIBUTE_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__DECLARED_NAME = ATTRIBUTE_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__DECLARED_SHORT_NAME = ATTRIBUTE_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__ELEMENT_ID = ATTRIBUTE_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__IS_IMPLIED_INCLUDED = ATTRIBUTE_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__IS_LIBRARY_ELEMENT = ATTRIBUTE_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__NAME = ATTRIBUTE_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__QUALIFIED_NAME = ATTRIBUTE_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__SHORT_NAME = ATTRIBUTE_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__DOCUMENTATION = ATTRIBUTE_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_ANNOTATION = ATTRIBUTE_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_ELEMENT = ATTRIBUTE_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_RELATIONSHIP = ATTRIBUTE_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNER = ATTRIBUTE_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNING_MEMBERSHIP = ATTRIBUTE_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNING_NAMESPACE = ATTRIBUTE_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNING_RELATIONSHIP = ATTRIBUTE_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__TEXTUAL_REPRESENTATION = ATTRIBUTE_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__IMPORTED_MEMBERSHIP = ATTRIBUTE_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__MEMBER = ATTRIBUTE_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__MEMBERSHIP = ATTRIBUTE_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_IMPORT = ATTRIBUTE_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_MEMBER = ATTRIBUTE_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_MEMBERSHIP = ATTRIBUTE_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__IS_ABSTRACT = ATTRIBUTE_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__IS_CONJUGATED = ATTRIBUTE_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__IS_SUFFICIENT = ATTRIBUTE_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__DIFFERENCING_TYPE = ATTRIBUTE_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__DIRECTED_FEATURE = ATTRIBUTE_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__END_FEATURE = ATTRIBUTE_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__FEATURE = ATTRIBUTE_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__FEATURE_MEMBERSHIP = ATTRIBUTE_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__INHERITED_FEATURE = ATTRIBUTE_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__INHERITED_MEMBERSHIP = ATTRIBUTE_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__INPUT = ATTRIBUTE_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__INTERSECTING_TYPE = ATTRIBUTE_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__MULTIPLICITY = ATTRIBUTE_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OUTPUT = ATTRIBUTE_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_CONJUGATOR = ATTRIBUTE_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_DIFFERENCING = ATTRIBUTE_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_DISJOINING = ATTRIBUTE_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_END_FEATURE = ATTRIBUTE_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_FEATURE = ATTRIBUTE_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_FEATURE_MEMBERSHIP = ATTRIBUTE_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_INTERSECTING = ATTRIBUTE_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_SPECIALIZATION = ATTRIBUTE_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_UNIONING = ATTRIBUTE_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__UNIONING_TYPE = ATTRIBUTE_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_SUBCLASSIFICATION = ATTRIBUTE_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__IS_VARIATION = ATTRIBUTE_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__DIRECTED_USAGE = ATTRIBUTE_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_ACTION = ATTRIBUTE_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_ALLOCATION = ATTRIBUTE_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_ANALYSIS_CASE = ATTRIBUTE_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_ATTRIBUTE = ATTRIBUTE_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_CALCULATION = ATTRIBUTE_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_CASE = ATTRIBUTE_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_CONCERN = ATTRIBUTE_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_CONNECTION = ATTRIBUTE_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_CONSTRAINT = ATTRIBUTE_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_ENUMERATION = ATTRIBUTE_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_FLOW = ATTRIBUTE_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_INTERFACE = ATTRIBUTE_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_ITEM = ATTRIBUTE_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_METADATA = ATTRIBUTE_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_OCCURRENCE = ATTRIBUTE_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_PART = ATTRIBUTE_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_PORT = ATTRIBUTE_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_REFERENCE = ATTRIBUTE_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_RENDERING = ATTRIBUTE_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_REQUIREMENT = ATTRIBUTE_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_STATE = ATTRIBUTE_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_TRANSITION = ATTRIBUTE_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_USAGE = ATTRIBUTE_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_USE_CASE = ATTRIBUTE_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_VERIFICATION_CASE = ATTRIBUTE_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_VIEW = ATTRIBUTE_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__OWNED_VIEWPOINT = ATTRIBUTE_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__USAGE = ATTRIBUTE_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__VARIANT = ATTRIBUTE_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__VARIANT_MEMBERSHIP = ATTRIBUTE_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Enumerated Value' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION__ENUMERATED_VALUE = ATTRIBUTE_DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Enumeration Definition' class. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION_FEATURE_COUNT = ATTRIBUTE_DEFINITION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___EFFECTIVE_NAME = ATTRIBUTE_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___EFFECTIVE_SHORT_NAME = ATTRIBUTE_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___ESCAPED_NAME = ATTRIBUTE_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___LIBRARY_NAMESPACE = ATTRIBUTE_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___PATH = ATTRIBUTE_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = ATTRIBUTE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ATTRIBUTE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___NAMES_OF__ELEMENT = ATTRIBUTE_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___QUALIFICATION_OF__STRING = ATTRIBUTE_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___RESOLVE__STRING = ATTRIBUTE_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___RESOLVE_GLOBAL__STRING = ATTRIBUTE_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___RESOLVE_LOCAL__STRING = ATTRIBUTE_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___RESOLVE_VISIBLE__STRING = ATTRIBUTE_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___UNQUALIFIED_NAME_OF__STRING = ATTRIBUTE_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___VISIBILITY_OF__MEMBERSHIP = ATTRIBUTE_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ATTRIBUTE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ATTRIBUTE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___ALL_SUPERTYPES = ATTRIBUTE_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___DIRECTION_OF__FEATURE = ATTRIBUTE_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ATTRIBUTE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ATTRIBUTE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ATTRIBUTE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___IS_COMPATIBLE_WITH__TYPE = ATTRIBUTE_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___MULTIPLICITIES = ATTRIBUTE_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ATTRIBUTE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = ATTRIBUTE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___SPECIALIZES__TYPE = ATTRIBUTE_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = ATTRIBUTE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION___SUPERTYPES__BOOLEAN = ATTRIBUTE_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Enumeration Definition' class. + * + * + * @generated + * @ordered + */ + int ENUMERATION_DEFINITION_OPERATION_COUNT = ATTRIBUTE_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.EnumerationUsageImpl Enumeration Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.EnumerationUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getEnumerationUsage() + * @generated + */ + int ENUMERATION_USAGE = 53; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__ALIAS_IDS = ATTRIBUTE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__DECLARED_NAME = ATTRIBUTE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__DECLARED_SHORT_NAME = ATTRIBUTE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__ELEMENT_ID = ATTRIBUTE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_IMPLIED_INCLUDED = ATTRIBUTE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_LIBRARY_ELEMENT = ATTRIBUTE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NAME = ATTRIBUTE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__QUALIFIED_NAME = ATTRIBUTE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__SHORT_NAME = ATTRIBUTE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__DOCUMENTATION = ATTRIBUTE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_ANNOTATION = ATTRIBUTE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_ELEMENT = ATTRIBUTE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_RELATIONSHIP = ATTRIBUTE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNER = ATTRIBUTE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNING_MEMBERSHIP = ATTRIBUTE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNING_NAMESPACE = ATTRIBUTE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNING_RELATIONSHIP = ATTRIBUTE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__TEXTUAL_REPRESENTATION = ATTRIBUTE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IMPORTED_MEMBERSHIP = ATTRIBUTE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__MEMBER = ATTRIBUTE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__MEMBERSHIP = ATTRIBUTE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_IMPORT = ATTRIBUTE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_MEMBER = ATTRIBUTE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_MEMBERSHIP = ATTRIBUTE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_ABSTRACT = ATTRIBUTE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_CONJUGATED = ATTRIBUTE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_SUFFICIENT = ATTRIBUTE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__DIFFERENCING_TYPE = ATTRIBUTE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__DIRECTED_FEATURE = ATTRIBUTE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__END_FEATURE = ATTRIBUTE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__FEATURE = ATTRIBUTE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__FEATURE_MEMBERSHIP = ATTRIBUTE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__INHERITED_FEATURE = ATTRIBUTE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__INHERITED_MEMBERSHIP = ATTRIBUTE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__INPUT = ATTRIBUTE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__INTERSECTING_TYPE = ATTRIBUTE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__MULTIPLICITY = ATTRIBUTE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OUTPUT = ATTRIBUTE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_CONJUGATOR = ATTRIBUTE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_DIFFERENCING = ATTRIBUTE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_DISJOINING = ATTRIBUTE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_END_FEATURE = ATTRIBUTE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_FEATURE = ATTRIBUTE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_FEATURE_MEMBERSHIP = ATTRIBUTE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_INTERSECTING = ATTRIBUTE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_SPECIALIZATION = ATTRIBUTE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_UNIONING = ATTRIBUTE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__UNIONING_TYPE = ATTRIBUTE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__DIRECTION = ATTRIBUTE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_COMPOSITE = ATTRIBUTE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_CONSTANT = ATTRIBUTE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_DERIVED = ATTRIBUTE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_END = ATTRIBUTE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_NONUNIQUE = ATTRIBUTE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_ORDERED = ATTRIBUTE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_PORTION = ATTRIBUTE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_UNIQUE = ATTRIBUTE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_VARIABLE = ATTRIBUTE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__CHAINING_FEATURE = ATTRIBUTE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__CROSS_FEATURE = ATTRIBUTE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__END_OWNING_TYPE = ATTRIBUTE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__FEATURE_TARGET = ATTRIBUTE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__FEATURING_TYPE = ATTRIBUTE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_CROSS_SUBSETTING = ATTRIBUTE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_FEATURE_CHAINING = ATTRIBUTE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_FEATURE_INVERTING = ATTRIBUTE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_REDEFINITION = ATTRIBUTE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_REFERENCE_SUBSETTING = ATTRIBUTE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_SUBSETTING = ATTRIBUTE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_TYPE_FEATURING = ATTRIBUTE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNED_TYPING = ATTRIBUTE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNING_FEATURE_MEMBERSHIP = ATTRIBUTE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNING_TYPE = ATTRIBUTE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__TYPE = ATTRIBUTE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_REFERENCE = ATTRIBUTE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__IS_VARIATION = ATTRIBUTE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__MAY_TIME_VARY = ATTRIBUTE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__DEFINITION = ATTRIBUTE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__DIRECTED_USAGE = ATTRIBUTE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_ACTION = ATTRIBUTE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_ALLOCATION = ATTRIBUTE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_ANALYSIS_CASE = ATTRIBUTE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_ATTRIBUTE = ATTRIBUTE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_CALCULATION = ATTRIBUTE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_CASE = ATTRIBUTE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_CONCERN = ATTRIBUTE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_CONNECTION = ATTRIBUTE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_CONSTRAINT = ATTRIBUTE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_ENUMERATION = ATTRIBUTE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_FLOW = ATTRIBUTE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_INTERFACE = ATTRIBUTE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_ITEM = ATTRIBUTE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_METADATA = ATTRIBUTE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_OCCURRENCE = ATTRIBUTE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_PART = ATTRIBUTE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_PORT = ATTRIBUTE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_REFERENCE = ATTRIBUTE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_RENDERING = ATTRIBUTE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_REQUIREMENT = ATTRIBUTE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_STATE = ATTRIBUTE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_TRANSITION = ATTRIBUTE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_USAGE = ATTRIBUTE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_USE_CASE = ATTRIBUTE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_VERIFICATION_CASE = ATTRIBUTE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_VIEW = ATTRIBUTE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__NESTED_VIEWPOINT = ATTRIBUTE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNING_DEFINITION = ATTRIBUTE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__OWNING_USAGE = ATTRIBUTE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__USAGE = ATTRIBUTE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__VARIANT = ATTRIBUTE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__VARIANT_MEMBERSHIP = ATTRIBUTE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Attribute Definition' reference list. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__ATTRIBUTE_DEFINITION = ATTRIBUTE_USAGE__ATTRIBUTE_DEFINITION; + + /** + * The feature id for the 'Enumeration Definition' reference. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE__ENUMERATION_DEFINITION = ATTRIBUTE_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Enumeration Usage' class. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE_FEATURE_COUNT = ATTRIBUTE_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___EFFECTIVE_NAME = ATTRIBUTE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___EFFECTIVE_SHORT_NAME = ATTRIBUTE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___ESCAPED_NAME = ATTRIBUTE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___LIBRARY_NAMESPACE = ATTRIBUTE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___PATH = ATTRIBUTE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ATTRIBUTE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ATTRIBUTE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___NAMES_OF__ELEMENT = ATTRIBUTE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___QUALIFICATION_OF__STRING = ATTRIBUTE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___RESOLVE__STRING = ATTRIBUTE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___RESOLVE_GLOBAL__STRING = ATTRIBUTE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___RESOLVE_LOCAL__STRING = ATTRIBUTE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___RESOLVE_VISIBLE__STRING = ATTRIBUTE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___UNQUALIFIED_NAME_OF__STRING = ATTRIBUTE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___VISIBILITY_OF__MEMBERSHIP = ATTRIBUTE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ATTRIBUTE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ATTRIBUTE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___ALL_SUPERTYPES = ATTRIBUTE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___DIRECTION_OF__FEATURE = ATTRIBUTE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ATTRIBUTE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ATTRIBUTE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ATTRIBUTE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___IS_COMPATIBLE_WITH__TYPE = ATTRIBUTE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___MULTIPLICITIES = ATTRIBUTE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ATTRIBUTE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ATTRIBUTE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___SPECIALIZES__TYPE = ATTRIBUTE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ATTRIBUTE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___SUPERTYPES__BOOLEAN = ATTRIBUTE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___ALL_REDEFINED_FEATURES = ATTRIBUTE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___AS_CARTESIAN_PRODUCT = ATTRIBUTE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___CAN_ACCESS__FEATURE = ATTRIBUTE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___DIRECTION_FOR__TYPE = ATTRIBUTE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___IS_CARTESIAN_PRODUCT = ATTRIBUTE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___IS_FEATURED_WITHIN__TYPE = ATTRIBUTE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___IS_FEATURING_TYPE__TYPE = ATTRIBUTE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___IS_OWNED_CROSS_FEATURE = ATTRIBUTE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___NAMING_FEATURE = ATTRIBUTE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___OWNED_CROSS_FEATURE = ATTRIBUTE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___REDEFINES__FEATURE = ATTRIBUTE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___REDEFINES_FROM_LIBRARY__STRING = ATTRIBUTE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ATTRIBUTE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___TYPING_FEATURES = ATTRIBUTE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE___REFERENCED_FEATURE_TARGET = ATTRIBUTE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Enumeration Usage' class. + * + * + * @generated + * @ordered + */ + int ENUMERATION_USAGE_OPERATION_COUNT = ATTRIBUTE_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.EventOccurrenceUsageImpl Event Occurrence Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.EventOccurrenceUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getEventOccurrenceUsage() + * @generated + */ + int EVENT_OCCURRENCE_USAGE = 54; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__ALIAS_IDS = OCCURRENCE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__DECLARED_NAME = OCCURRENCE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__DECLARED_SHORT_NAME = OCCURRENCE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__ELEMENT_ID = OCCURRENCE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_IMPLIED_INCLUDED = OCCURRENCE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_LIBRARY_ELEMENT = OCCURRENCE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NAME = OCCURRENCE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__QUALIFIED_NAME = OCCURRENCE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__SHORT_NAME = OCCURRENCE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__DOCUMENTATION = OCCURRENCE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_ANNOTATION = OCCURRENCE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_ELEMENT = OCCURRENCE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_RELATIONSHIP = OCCURRENCE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNER = OCCURRENCE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNING_MEMBERSHIP = OCCURRENCE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNING_NAMESPACE = OCCURRENCE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNING_RELATIONSHIP = OCCURRENCE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__TEXTUAL_REPRESENTATION = OCCURRENCE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IMPORTED_MEMBERSHIP = OCCURRENCE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__MEMBER = OCCURRENCE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__MEMBERSHIP = OCCURRENCE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_IMPORT = OCCURRENCE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_MEMBER = OCCURRENCE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_MEMBERSHIP = OCCURRENCE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_ABSTRACT = OCCURRENCE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_CONJUGATED = OCCURRENCE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_SUFFICIENT = OCCURRENCE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__DIFFERENCING_TYPE = OCCURRENCE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__DIRECTED_FEATURE = OCCURRENCE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__END_FEATURE = OCCURRENCE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__FEATURE = OCCURRENCE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__INHERITED_FEATURE = OCCURRENCE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__INHERITED_MEMBERSHIP = OCCURRENCE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__INPUT = OCCURRENCE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__INTERSECTING_TYPE = OCCURRENCE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__MULTIPLICITY = OCCURRENCE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OUTPUT = OCCURRENCE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_CONJUGATOR = OCCURRENCE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_DIFFERENCING = OCCURRENCE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_DISJOINING = OCCURRENCE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_END_FEATURE = OCCURRENCE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_FEATURE = OCCURRENCE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_INTERSECTING = OCCURRENCE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_SPECIALIZATION = OCCURRENCE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_UNIONING = OCCURRENCE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__UNIONING_TYPE = OCCURRENCE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__DIRECTION = OCCURRENCE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_COMPOSITE = OCCURRENCE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_CONSTANT = OCCURRENCE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_DERIVED = OCCURRENCE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_END = OCCURRENCE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_NONUNIQUE = OCCURRENCE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_ORDERED = OCCURRENCE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_PORTION = OCCURRENCE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_UNIQUE = OCCURRENCE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_VARIABLE = OCCURRENCE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__CHAINING_FEATURE = OCCURRENCE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__CROSS_FEATURE = OCCURRENCE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__END_OWNING_TYPE = OCCURRENCE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__FEATURE_TARGET = OCCURRENCE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__FEATURING_TYPE = OCCURRENCE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_CROSS_SUBSETTING = OCCURRENCE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_FEATURE_CHAINING = OCCURRENCE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_FEATURE_INVERTING = OCCURRENCE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_REDEFINITION = OCCURRENCE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_REFERENCE_SUBSETTING = OCCURRENCE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_SUBSETTING = OCCURRENCE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_TYPE_FEATURING = OCCURRENCE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNED_TYPING = OCCURRENCE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNING_FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNING_TYPE = OCCURRENCE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__TYPE = OCCURRENCE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_REFERENCE = OCCURRENCE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_VARIATION = OCCURRENCE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__MAY_TIME_VARY = OCCURRENCE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__DEFINITION = OCCURRENCE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__DIRECTED_USAGE = OCCURRENCE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_ACTION = OCCURRENCE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_ALLOCATION = OCCURRENCE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_ANALYSIS_CASE = OCCURRENCE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_ATTRIBUTE = OCCURRENCE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_CALCULATION = OCCURRENCE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_CASE = OCCURRENCE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_CONCERN = OCCURRENCE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_CONNECTION = OCCURRENCE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_CONSTRAINT = OCCURRENCE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_ENUMERATION = OCCURRENCE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_FLOW = OCCURRENCE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_INTERFACE = OCCURRENCE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_ITEM = OCCURRENCE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_METADATA = OCCURRENCE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_OCCURRENCE = OCCURRENCE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_PART = OCCURRENCE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_PORT = OCCURRENCE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_REFERENCE = OCCURRENCE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_RENDERING = OCCURRENCE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_REQUIREMENT = OCCURRENCE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_STATE = OCCURRENCE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_TRANSITION = OCCURRENCE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_USAGE = OCCURRENCE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_USE_CASE = OCCURRENCE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_VERIFICATION_CASE = OCCURRENCE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_VIEW = OCCURRENCE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__NESTED_VIEWPOINT = OCCURRENCE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNING_DEFINITION = OCCURRENCE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OWNING_USAGE = OCCURRENCE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__USAGE = OCCURRENCE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__VARIANT = OCCURRENCE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__VARIANT_MEMBERSHIP = OCCURRENCE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__IS_INDIVIDUAL = OCCURRENCE_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__PORTION_KIND = OCCURRENCE_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION = OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__OCCURRENCE_DEFINITION = OCCURRENCE_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Event Occurrence' reference. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE = OCCURRENCE_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Event Occurrence Usage' class. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE_FEATURE_COUNT = OCCURRENCE_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___EFFECTIVE_NAME = OCCURRENCE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___EFFECTIVE_SHORT_NAME = OCCURRENCE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___ESCAPED_NAME = OCCURRENCE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___LIBRARY_NAMESPACE = OCCURRENCE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___PATH = OCCURRENCE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = OCCURRENCE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OCCURRENCE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___NAMES_OF__ELEMENT = OCCURRENCE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___QUALIFICATION_OF__STRING = OCCURRENCE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___RESOLVE__STRING = OCCURRENCE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___RESOLVE_GLOBAL__STRING = OCCURRENCE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___RESOLVE_LOCAL__STRING = OCCURRENCE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___RESOLVE_VISIBLE__STRING = OCCURRENCE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___UNQUALIFIED_NAME_OF__STRING = OCCURRENCE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___VISIBILITY_OF__MEMBERSHIP = OCCURRENCE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OCCURRENCE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___ALL_SUPERTYPES = OCCURRENCE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___DIRECTION_OF__FEATURE = OCCURRENCE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OCCURRENCE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___IS_COMPATIBLE_WITH__TYPE = OCCURRENCE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___MULTIPLICITIES = OCCURRENCE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = OCCURRENCE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___SPECIALIZES__TYPE = OCCURRENCE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = OCCURRENCE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___SUPERTYPES__BOOLEAN = OCCURRENCE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES = OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___AS_CARTESIAN_PRODUCT = OCCURRENCE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___CAN_ACCESS__FEATURE = OCCURRENCE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___DIRECTION_FOR__TYPE = OCCURRENCE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___IS_CARTESIAN_PRODUCT = OCCURRENCE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___IS_FEATURED_WITHIN__TYPE = OCCURRENCE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___IS_FEATURING_TYPE__TYPE = OCCURRENCE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___IS_OWNED_CROSS_FEATURE = OCCURRENCE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___NAMING_FEATURE = OCCURRENCE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___OWNED_CROSS_FEATURE = OCCURRENCE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___REDEFINES__FEATURE = OCCURRENCE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___REDEFINES_FROM_LIBRARY__STRING = OCCURRENCE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = OCCURRENCE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___TYPING_FEATURES = OCCURRENCE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE___REFERENCED_FEATURE_TARGET = OCCURRENCE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Event Occurrence Usage' class. + * + * + * @generated + * @ordered + */ + int EVENT_OCCURRENCE_USAGE_OPERATION_COUNT = OCCURRENCE_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.StateUsageImpl State Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StateUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStateUsage() + * @generated + */ + int STATE_USAGE = 145; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Is Parallel' attribute. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__IS_PARALLEL = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Do Action' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__DO_ACTION = ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Entry Action' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__ENTRY_ACTION = ACTION_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Exit Action' reference. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__EXIT_ACTION = ACTION_USAGE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'State Definition' reference list. + * + * + * @generated + * @ordered + */ + int STATE_USAGE__STATE_DEFINITION = ACTION_USAGE_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'State Usage' class. + * + * + * @generated + * @ordered + */ + int STATE_USAGE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 5; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Is Substate Usage' operation. + * + * + * @generated + * @ordered + */ + int STATE_USAGE___IS_SUBSTATE_USAGE__BOOLEAN = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'State Usage' class. + * + * + * @generated + * @ordered + */ + int STATE_USAGE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ExhibitStateUsageImpl Exhibit State Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ExhibitStateUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getExhibitStateUsage() + * @generated + */ + int EXHIBIT_STATE_USAGE = 55; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__ALIAS_IDS = STATE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__DECLARED_NAME = STATE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__DECLARED_SHORT_NAME = STATE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__ELEMENT_ID = STATE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_IMPLIED_INCLUDED = STATE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_LIBRARY_ELEMENT = STATE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NAME = STATE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__QUALIFIED_NAME = STATE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__SHORT_NAME = STATE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__DOCUMENTATION = STATE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_ANNOTATION = STATE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_ELEMENT = STATE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_RELATIONSHIP = STATE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNER = STATE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNING_MEMBERSHIP = STATE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNING_NAMESPACE = STATE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNING_RELATIONSHIP = STATE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__TEXTUAL_REPRESENTATION = STATE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IMPORTED_MEMBERSHIP = STATE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__MEMBER = STATE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__MEMBERSHIP = STATE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_IMPORT = STATE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_MEMBER = STATE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_MEMBERSHIP = STATE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_ABSTRACT = STATE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_CONJUGATED = STATE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_SUFFICIENT = STATE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__DIFFERENCING_TYPE = STATE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__DIRECTED_FEATURE = STATE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__END_FEATURE = STATE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__FEATURE = STATE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__FEATURE_MEMBERSHIP = STATE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__INHERITED_FEATURE = STATE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__INHERITED_MEMBERSHIP = STATE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__INPUT = STATE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__INTERSECTING_TYPE = STATE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__MULTIPLICITY = STATE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OUTPUT = STATE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_CONJUGATOR = STATE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_DIFFERENCING = STATE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_DISJOINING = STATE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_END_FEATURE = STATE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_FEATURE = STATE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_FEATURE_MEMBERSHIP = STATE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_INTERSECTING = STATE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_SPECIALIZATION = STATE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_UNIONING = STATE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__UNIONING_TYPE = STATE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__DIRECTION = STATE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_COMPOSITE = STATE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_CONSTANT = STATE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_DERIVED = STATE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_END = STATE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_NONUNIQUE = STATE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_ORDERED = STATE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_PORTION = STATE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_UNIQUE = STATE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_VARIABLE = STATE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__CHAINING_FEATURE = STATE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__CROSS_FEATURE = STATE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__END_OWNING_TYPE = STATE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__FEATURE_TARGET = STATE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__FEATURING_TYPE = STATE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_CROSS_SUBSETTING = STATE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_FEATURE_CHAINING = STATE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_FEATURE_INVERTING = STATE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_REDEFINITION = STATE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_REFERENCE_SUBSETTING = STATE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_SUBSETTING = STATE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_TYPE_FEATURING = STATE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNED_TYPING = STATE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNING_FEATURE_MEMBERSHIP = STATE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNING_TYPE = STATE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__TYPE = STATE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_REFERENCE = STATE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_VARIATION = STATE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__MAY_TIME_VARY = STATE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__DEFINITION = STATE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__DIRECTED_USAGE = STATE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_ACTION = STATE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_ALLOCATION = STATE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_ANALYSIS_CASE = STATE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_ATTRIBUTE = STATE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_CALCULATION = STATE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_CASE = STATE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_CONCERN = STATE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_CONNECTION = STATE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_CONSTRAINT = STATE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_ENUMERATION = STATE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_FLOW = STATE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_INTERFACE = STATE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_ITEM = STATE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_METADATA = STATE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_OCCURRENCE = STATE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_PART = STATE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_PORT = STATE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_REFERENCE = STATE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_RENDERING = STATE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_REQUIREMENT = STATE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_STATE = STATE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_TRANSITION = STATE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_USAGE = STATE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_USE_CASE = STATE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_VERIFICATION_CASE = STATE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_VIEW = STATE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__NESTED_VIEWPOINT = STATE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNING_DEFINITION = STATE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OWNING_USAGE = STATE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__USAGE = STATE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__VARIANT = STATE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__VARIANT_MEMBERSHIP = STATE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_INDIVIDUAL = STATE_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__PORTION_KIND = STATE_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__INDIVIDUAL_DEFINITION = STATE_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__OCCURRENCE_DEFINITION = STATE_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__BEHAVIOR = STATE_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__PARAMETER = STATE_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__ACTION_DEFINITION = STATE_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Is Parallel' attribute. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__IS_PARALLEL = STATE_USAGE__IS_PARALLEL; + + /** + * The feature id for the 'Do Action' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__DO_ACTION = STATE_USAGE__DO_ACTION; + + /** + * The feature id for the 'Entry Action' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__ENTRY_ACTION = STATE_USAGE__ENTRY_ACTION; + + /** + * The feature id for the 'Exit Action' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__EXIT_ACTION = STATE_USAGE__EXIT_ACTION; + + /** + * The feature id for the 'State Definition' reference list. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__STATE_DEFINITION = STATE_USAGE__STATE_DEFINITION; + + /** + * The feature id for the 'Event Occurrence' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__EVENT_OCCURRENCE = STATE_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Performed Action' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__PERFORMED_ACTION = STATE_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Exhibited State' reference. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE__EXHIBITED_STATE = STATE_USAGE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Exhibit State Usage' class. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE_FEATURE_COUNT = STATE_USAGE_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___EFFECTIVE_NAME = STATE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___EFFECTIVE_SHORT_NAME = STATE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___ESCAPED_NAME = STATE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___LIBRARY_NAMESPACE = STATE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___PATH = STATE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = STATE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = STATE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___NAMES_OF__ELEMENT = STATE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___QUALIFICATION_OF__STRING = STATE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___RESOLVE__STRING = STATE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___RESOLVE_GLOBAL__STRING = STATE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___RESOLVE_LOCAL__STRING = STATE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___RESOLVE_VISIBLE__STRING = STATE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___UNQUALIFIED_NAME_OF__STRING = STATE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___VISIBILITY_OF__MEMBERSHIP = STATE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = STATE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = STATE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___ALL_SUPERTYPES = STATE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___DIRECTION_OF__FEATURE = STATE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = STATE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = STATE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = STATE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___IS_COMPATIBLE_WITH__TYPE = STATE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___MULTIPLICITIES = STATE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = STATE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = STATE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___SPECIALIZES__TYPE = STATE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = STATE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___SUPERTYPES__BOOLEAN = STATE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___ALL_REDEFINED_FEATURES = STATE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___AS_CARTESIAN_PRODUCT = STATE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___CAN_ACCESS__FEATURE = STATE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___DIRECTION_FOR__TYPE = STATE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___IS_CARTESIAN_PRODUCT = STATE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___IS_FEATURED_WITHIN__TYPE = STATE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___IS_FEATURING_TYPE__TYPE = STATE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___IS_OWNED_CROSS_FEATURE = STATE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___NAMING_FEATURE = STATE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___OWNED_CROSS_FEATURE = STATE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___REDEFINES__FEATURE = STATE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___REDEFINES_FROM_LIBRARY__STRING = STATE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = STATE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___TYPING_FEATURES = STATE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___REFERENCED_FEATURE_TARGET = STATE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___ARGUMENT__INT = STATE_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___INPUT_PARAMETER__INT = STATE_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___INPUT_PARAMETERS = STATE_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___IS_SUBACTION_USAGE = STATE_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Is Substate Usage' operation. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE___IS_SUBSTATE_USAGE__BOOLEAN = STATE_USAGE___IS_SUBSTATE_USAGE__BOOLEAN; + + /** + * The number of operations of the 'Exhibit State Usage' class. + * + * + * @generated + * @ordered + */ + int EXHIBIT_STATE_USAGE_OPERATION_COUNT = STATE_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ImportImpl Import}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ImportImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getImport() + * @generated + */ + int IMPORT = 75; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int IMPORT__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int IMPORT__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int IMPORT__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int IMPORT__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int IMPORT__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int IMPORT__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int IMPORT__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int IMPORT__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int IMPORT__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int IMPORT__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int IMPORT__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int IMPORT__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int IMPORT__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int IMPORT__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int IMPORT__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Is Import All' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__IS_IMPORT_ALL = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Recursive' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__IS_RECURSIVE = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int IMPORT__VISIBILITY = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Imported Element' reference. + * + * + * @generated + * @ordered + */ + int IMPORT__IMPORTED_ELEMENT = RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Import Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int IMPORT__IMPORT_OWNING_NAMESPACE = RELATIONSHIP_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Import' class. + * + * + * @generated + * @ordered + */ + int IMPORT_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 5; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int IMPORT___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int IMPORT___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int IMPORT___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int IMPORT___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int IMPORT___PATH = RELATIONSHIP___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int IMPORT___IMPORTED_MEMBERSHIPS__ELIST = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Import' class. + * + * + * @generated + * @ordered + */ + int IMPORT_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ExposeImpl Expose}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ExposeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getExpose() + * @generated + */ + int EXPOSE = 56; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int EXPOSE__ALIAS_IDS = IMPORT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__DECLARED_NAME = IMPORT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__DECLARED_SHORT_NAME = IMPORT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__ELEMENT_ID = IMPORT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__IS_IMPLIED_INCLUDED = IMPORT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__IS_LIBRARY_ELEMENT = IMPORT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__NAME = IMPORT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__QUALIFIED_NAME = IMPORT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__SHORT_NAME = IMPORT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int EXPOSE__DOCUMENTATION = IMPORT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int EXPOSE__OWNED_ANNOTATION = IMPORT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int EXPOSE__OWNED_ELEMENT = IMPORT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPOSE__OWNED_RELATIONSHIP = IMPORT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int EXPOSE__OWNER = IMPORT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int EXPOSE__OWNING_MEMBERSHIP = IMPORT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXPOSE__OWNING_NAMESPACE = IMPORT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int EXPOSE__OWNING_RELATIONSHIP = IMPORT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int EXPOSE__TEXTUAL_REPRESENTATION = IMPORT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__IS_IMPLIED = IMPORT__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int EXPOSE__OWNED_RELATED_ELEMENT = IMPORT__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int EXPOSE__OWNING_RELATED_ELEMENT = IMPORT__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int EXPOSE__RELATED_ELEMENT = IMPORT__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int EXPOSE__SOURCE = IMPORT__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int EXPOSE__TARGET = IMPORT__TARGET; + + /** + * The feature id for the 'Is Import All' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__IS_IMPORT_ALL = IMPORT__IS_IMPORT_ALL; + + /** + * The feature id for the 'Is Recursive' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__IS_RECURSIVE = IMPORT__IS_RECURSIVE; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int EXPOSE__VISIBILITY = IMPORT__VISIBILITY; + + /** + * The feature id for the 'Imported Element' reference. + * + * + * @generated + * @ordered + */ + int EXPOSE__IMPORTED_ELEMENT = IMPORT__IMPORTED_ELEMENT; + + /** + * The feature id for the 'Import Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int EXPOSE__IMPORT_OWNING_NAMESPACE = IMPORT__IMPORT_OWNING_NAMESPACE; + + /** + * The number of structural features of the 'Expose' class. + * + * + * @generated + * @ordered + */ + int EXPOSE_FEATURE_COUNT = IMPORT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int EXPOSE___EFFECTIVE_NAME = IMPORT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int EXPOSE___EFFECTIVE_SHORT_NAME = IMPORT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int EXPOSE___ESCAPED_NAME = IMPORT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int EXPOSE___LIBRARY_NAMESPACE = IMPORT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int EXPOSE___PATH = IMPORT___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int EXPOSE___IMPORTED_MEMBERSHIPS__ELIST = IMPORT___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The number of operations of the 'Expose' class. + * + * + * @generated + * @ordered + */ + int EXPOSE_OPERATION_COUNT = IMPORT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FeatureChainExpressionImpl Feature Chain Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureChainExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureChainExpression() + * @generated + */ + int FEATURE_CHAIN_EXPRESSION = 59; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__ALIAS_IDS = OPERATOR_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__DECLARED_NAME = OPERATOR_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__DECLARED_SHORT_NAME = OPERATOR_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__ELEMENT_ID = OPERATOR_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_IMPLIED_INCLUDED = OPERATOR_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_LIBRARY_ELEMENT = OPERATOR_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__NAME = OPERATOR_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__QUALIFIED_NAME = OPERATOR_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__SHORT_NAME = OPERATOR_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__DOCUMENTATION = OPERATOR_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_ANNOTATION = OPERATOR_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_ELEMENT = OPERATOR_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_RELATIONSHIP = OPERATOR_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNER = OPERATOR_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNING_MEMBERSHIP = OPERATOR_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNING_NAMESPACE = OPERATOR_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNING_RELATIONSHIP = OPERATOR_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__TEXTUAL_REPRESENTATION = OPERATOR_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IMPORTED_MEMBERSHIP = OPERATOR_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__MEMBER = OPERATOR_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__MEMBERSHIP = OPERATOR_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_IMPORT = OPERATOR_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_MEMBER = OPERATOR_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_MEMBERSHIP = OPERATOR_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_ABSTRACT = OPERATOR_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_CONJUGATED = OPERATOR_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_SUFFICIENT = OPERATOR_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__DIFFERENCING_TYPE = OPERATOR_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__DIRECTED_FEATURE = OPERATOR_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__END_FEATURE = OPERATOR_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__FEATURE = OPERATOR_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__INHERITED_FEATURE = OPERATOR_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__INHERITED_MEMBERSHIP = OPERATOR_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__INPUT = OPERATOR_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__INTERSECTING_TYPE = OPERATOR_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__MULTIPLICITY = OPERATOR_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OUTPUT = OPERATOR_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_CONJUGATOR = OPERATOR_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_DIFFERENCING = OPERATOR_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_DISJOINING = OPERATOR_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_END_FEATURE = OPERATOR_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_FEATURE = OPERATOR_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_INTERSECTING = OPERATOR_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_SPECIALIZATION = OPERATOR_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_UNIONING = OPERATOR_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__UNIONING_TYPE = OPERATOR_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__DIRECTION = OPERATOR_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_COMPOSITE = OPERATOR_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_CONSTANT = OPERATOR_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_DERIVED = OPERATOR_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_END = OPERATOR_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_NONUNIQUE = OPERATOR_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_ORDERED = OPERATOR_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_PORTION = OPERATOR_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_UNIQUE = OPERATOR_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_VARIABLE = OPERATOR_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__CHAINING_FEATURE = OPERATOR_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__CROSS_FEATURE = OPERATOR_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__END_OWNING_TYPE = OPERATOR_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__FEATURE_TARGET = OPERATOR_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__FEATURING_TYPE = OPERATOR_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_CROSS_SUBSETTING = OPERATOR_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_FEATURE_CHAINING = OPERATOR_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_FEATURE_INVERTING = OPERATOR_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_REDEFINITION = OPERATOR_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_REFERENCE_SUBSETTING = OPERATOR_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_SUBSETTING = OPERATOR_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_TYPE_FEATURING = OPERATOR_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNED_TYPING = OPERATOR_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OWNING_TYPE = OPERATOR_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__TYPE = OPERATOR_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__BEHAVIOR = OPERATOR_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__PARAMETER = OPERATOR_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = OPERATOR_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__FUNCTION = OPERATOR_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__RESULT = OPERATOR_EXPRESSION__RESULT; + + /** + * The feature id for the 'Argument' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__ARGUMENT = OPERATOR_EXPRESSION__ARGUMENT; + + /** + * The feature id for the 'Instantiated Type' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__INSTANTIATED_TYPE = OPERATOR_EXPRESSION__INSTANTIATED_TYPE; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OPERAND = OPERATOR_EXPRESSION__OPERAND; + + /** + * The feature id for the 'Operator' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__OPERATOR = OPERATOR_EXPRESSION__OPERATOR; + + /** + * The feature id for the 'Target Feature' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION__TARGET_FEATURE = OPERATOR_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Feature Chain Expression' class. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION_FEATURE_COUNT = OPERATOR_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___EFFECTIVE_NAME = OPERATOR_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___EFFECTIVE_SHORT_NAME = OPERATOR_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___ESCAPED_NAME = OPERATOR_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___LIBRARY_NAMESPACE = OPERATOR_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___PATH = OPERATOR_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = OPERATOR_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OPERATOR_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___NAMES_OF__ELEMENT = OPERATOR_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___QUALIFICATION_OF__STRING = OPERATOR_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___RESOLVE__STRING = OPERATOR_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___RESOLVE_GLOBAL__STRING = OPERATOR_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___RESOLVE_LOCAL__STRING = OPERATOR_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___RESOLVE_VISIBLE__STRING = OPERATOR_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = OPERATOR_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = OPERATOR_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OPERATOR_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OPERATOR_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___ALL_SUPERTYPES = OPERATOR_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___DIRECTION_OF__FEATURE = OPERATOR_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OPERATOR_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = OPERATOR_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___MULTIPLICITIES = OPERATOR_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = OPERATOR_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___SPECIALIZES__TYPE = OPERATOR_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = OPERATOR_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___SUPERTYPES__BOOLEAN = OPERATOR_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___ALL_REDEFINED_FEATURES = OPERATOR_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___AS_CARTESIAN_PRODUCT = OPERATOR_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___CAN_ACCESS__FEATURE = OPERATOR_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___DIRECTION_FOR__TYPE = OPERATOR_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___IS_CARTESIAN_PRODUCT = OPERATOR_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___IS_FEATURED_WITHIN__TYPE = OPERATOR_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___IS_FEATURING_TYPE__TYPE = OPERATOR_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___IS_OWNED_CROSS_FEATURE = OPERATOR_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___NAMING_FEATURE = OPERATOR_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___OWNED_CROSS_FEATURE = OPERATOR_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___REDEFINES__FEATURE = OPERATOR_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = OPERATOR_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = OPERATOR_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___TYPING_FEATURES = OPERATOR_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___CHECK_CONDITION__ELEMENT = OPERATOR_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___EVALUATE__ELEMENT = OPERATOR_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = OPERATOR_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The operation id for the 'Instantiated Type' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___INSTANTIATED_TYPE = OPERATOR_EXPRESSION___INSTANTIATED_TYPE; + + /** + * The operation id for the 'Source Target Feature' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION___SOURCE_TARGET_FEATURE = OPERATOR_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Feature Chain Expression' class. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAIN_EXPRESSION_OPERATION_COUNT = OPERATOR_EXPRESSION_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FeatureChainingImpl Feature Chaining}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureChainingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureChaining() + * @generated + */ + int FEATURE_CHAINING = 60; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Chaining Feature' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__CHAINING_FEATURE = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Feature Chained' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING__FEATURE_CHAINED = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Feature Chaining' class. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Feature Chaining' class. + * + * + * @generated + * @ordered + */ + int FEATURE_CHAINING_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FeatureInvertingImpl Feature Inverting}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureInvertingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureInverting() + * @generated + */ + int FEATURE_INVERTING = 61; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Feature Inverted' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__FEATURE_INVERTED = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Inverting Feature' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__INVERTING_FEATURE = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owning Feature' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING__OWNING_FEATURE = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Feature Inverting' class. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Feature Inverting' class. + * + * + * @generated + * @ordered + */ + int FEATURE_INVERTING_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FeatureReferenceExpressionImpl Feature Reference Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureReferenceExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureReferenceExpression() + * @generated + */ + int FEATURE_REFERENCE_EXPRESSION = 63; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__ALIAS_IDS = EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__DECLARED_NAME = EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__DECLARED_SHORT_NAME = EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__ELEMENT_ID = EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_IMPLIED_INCLUDED = EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_LIBRARY_ELEMENT = EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__QUALIFIED_NAME = EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__SHORT_NAME = EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__DOCUMENTATION = EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_ANNOTATION = EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_ELEMENT = EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_RELATIONSHIP = EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNER = EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNING_MEMBERSHIP = EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNING_NAMESPACE = EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNING_RELATIONSHIP = EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__TEXTUAL_REPRESENTATION = EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IMPORTED_MEMBERSHIP = EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__MEMBER = EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__MEMBERSHIP = EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_IMPORT = EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_MEMBER = EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_MEMBERSHIP = EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_ABSTRACT = EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_CONJUGATED = EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_SUFFICIENT = EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__DIFFERENCING_TYPE = EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__DIRECTED_FEATURE = EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__END_FEATURE = EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__FEATURE = EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__FEATURE_MEMBERSHIP = EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__INHERITED_FEATURE = EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__INHERITED_MEMBERSHIP = EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__INPUT = EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__INTERSECTING_TYPE = EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__MULTIPLICITY = EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OUTPUT = EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_CONJUGATOR = EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_DIFFERENCING = EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_DISJOINING = EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_END_FEATURE = EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_FEATURE = EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_INTERSECTING = EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_SPECIALIZATION = EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_UNIONING = EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__UNIONING_TYPE = EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__DIRECTION = EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_COMPOSITE = EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_CONSTANT = EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_DERIVED = EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_END = EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_NONUNIQUE = EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_ORDERED = EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_PORTION = EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_UNIQUE = EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_VARIABLE = EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__CHAINING_FEATURE = EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__CROSS_FEATURE = EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__END_OWNING_TYPE = EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__FEATURE_TARGET = EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__FEATURING_TYPE = EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_CROSS_SUBSETTING = EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_FEATURE_CHAINING = EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_FEATURE_INVERTING = EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_REDEFINITION = EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_REFERENCE_SUBSETTING = EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_SUBSETTING = EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_TYPE_FEATURING = EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNED_TYPING = EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__OWNING_TYPE = EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__BEHAVIOR = EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__PARAMETER = EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__FUNCTION = EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__RESULT = EXPRESSION__RESULT; + + /** + * The feature id for the 'Referent' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION__REFERENT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Feature Reference Expression' class. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___EFFECTIVE_NAME = EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___EFFECTIVE_SHORT_NAME = EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___ESCAPED_NAME = EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___LIBRARY_NAMESPACE = EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___PATH = EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___NAMES_OF__ELEMENT = EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___QUALIFICATION_OF__STRING = EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___RESOLVE__STRING = EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___RESOLVE_GLOBAL__STRING = EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___RESOLVE_LOCAL__STRING = EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___RESOLVE_VISIBLE__STRING = EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___ALL_SUPERTYPES = EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___DIRECTION_OF__FEATURE = EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___MULTIPLICITIES = EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___SPECIALIZES__TYPE = EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___SUPERTYPES__BOOLEAN = EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___ALL_REDEFINED_FEATURES = EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___AS_CARTESIAN_PRODUCT = EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___CAN_ACCESS__FEATURE = EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___DIRECTION_FOR__TYPE = EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___IS_CARTESIAN_PRODUCT = EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___IS_FEATURED_WITHIN__TYPE = EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___IS_FEATURING_TYPE__TYPE = EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___IS_OWNED_CROSS_FEATURE = EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___NAMING_FEATURE = EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___OWNED_CROSS_FEATURE = EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___REDEFINES__FEATURE = EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___TYPING_FEATURES = EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___CHECK_CONDITION__ELEMENT = EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___EVALUATE__ELEMENT = EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Feature Reference Expression' class. + * + * + * @generated + * @ordered + */ + int FEATURE_REFERENCE_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FeatureValueImpl Feature Value}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureValueImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureValue() + * @generated + */ + int FEATURE_VALUE = 65; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__ALIAS_IDS = OWNING_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__DECLARED_NAME = OWNING_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__DECLARED_SHORT_NAME = OWNING_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__ELEMENT_ID = OWNING_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__IS_IMPLIED_INCLUDED = OWNING_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__IS_LIBRARY_ELEMENT = OWNING_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__NAME = OWNING_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__QUALIFIED_NAME = OWNING_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__SHORT_NAME = OWNING_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__DOCUMENTATION = OWNING_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNED_ANNOTATION = OWNING_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNED_ELEMENT = OWNING_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNED_RELATIONSHIP = OWNING_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNER = OWNING_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNING_MEMBERSHIP = OWNING_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNING_NAMESPACE = OWNING_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNING_RELATIONSHIP = OWNING_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__TEXTUAL_REPRESENTATION = OWNING_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__IS_IMPLIED = OWNING_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNED_RELATED_ELEMENT = OWNING_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNING_RELATED_ELEMENT = OWNING_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__RELATED_ELEMENT = OWNING_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__SOURCE = OWNING_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__TARGET = OWNING_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__MEMBER_ELEMENT_ID = OWNING_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__MEMBER_NAME = OWNING_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__MEMBER_SHORT_NAME = OWNING_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__VISIBILITY = OWNING_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__MEMBER_ELEMENT = OWNING_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__MEMBERSHIP_OWNING_NAMESPACE = OWNING_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNED_MEMBER_ELEMENT_ID = OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNED_MEMBER_NAME = OWNING_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNED_MEMBER_SHORT_NAME = OWNING_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__OWNED_MEMBER_ELEMENT = OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Is Default' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__IS_DEFAULT = OWNING_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Is Initial' attribute. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__IS_INITIAL = OWNING_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Feature With Value' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__FEATURE_WITH_VALUE = OWNING_MEMBERSHIP_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Value' reference. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE__VALUE = OWNING_MEMBERSHIP_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Feature Value' class. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE_FEATURE_COUNT = OWNING_MEMBERSHIP_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE___EFFECTIVE_NAME = OWNING_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE___EFFECTIVE_SHORT_NAME = OWNING_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE___ESCAPED_NAME = OWNING_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE___LIBRARY_NAMESPACE = OWNING_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE___PATH = OWNING_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = OWNING_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Feature Value' class. + * + * + * @generated + * @ordered + */ + int FEATURE_VALUE_OPERATION_COUNT = OWNING_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FlowImpl Flow}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FlowImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFlow() + * @generated + */ + int FLOW = 66; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FLOW__ALIAS_IDS = CONNECTOR__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__DECLARED_NAME = CONNECTOR__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__DECLARED_SHORT_NAME = CONNECTOR__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__ELEMENT_ID = CONNECTOR__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_IMPLIED_INCLUDED = CONNECTOR__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_LIBRARY_ELEMENT = CONNECTOR__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__NAME = CONNECTOR__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__QUALIFIED_NAME = CONNECTOR__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__SHORT_NAME = CONNECTOR__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__DOCUMENTATION = CONNECTOR__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_ANNOTATION = CONNECTOR__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_ELEMENT = CONNECTOR__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_RELATIONSHIP = CONNECTOR__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FLOW__OWNER = CONNECTOR__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FLOW__OWNING_MEMBERSHIP = CONNECTOR__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FLOW__OWNING_NAMESPACE = CONNECTOR__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FLOW__OWNING_RELATIONSHIP = CONNECTOR__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__TEXTUAL_REPRESENTATION = CONNECTOR__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__IMPORTED_MEMBERSHIP = CONNECTOR__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__MEMBER = CONNECTOR__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__MEMBERSHIP = CONNECTOR__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_IMPORT = CONNECTOR__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_MEMBER = CONNECTOR__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_MEMBERSHIP = CONNECTOR__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_ABSTRACT = CONNECTOR__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_CONJUGATED = CONNECTOR__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_SUFFICIENT = CONNECTOR__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__DIFFERENCING_TYPE = CONNECTOR__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__DIRECTED_FEATURE = CONNECTOR__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__END_FEATURE = CONNECTOR__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__FEATURE = CONNECTOR__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__FEATURE_MEMBERSHIP = CONNECTOR__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__INHERITED_FEATURE = CONNECTOR__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__INHERITED_MEMBERSHIP = CONNECTOR__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__INPUT = CONNECTOR__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__INTERSECTING_TYPE = CONNECTOR__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int FLOW__MULTIPLICITY = CONNECTOR__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OUTPUT = CONNECTOR__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_CONJUGATOR = CONNECTOR__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_DIFFERENCING = CONNECTOR__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_DISJOINING = CONNECTOR__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_END_FEATURE = CONNECTOR__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_FEATURE = CONNECTOR__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_FEATURE_MEMBERSHIP = CONNECTOR__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_INTERSECTING = CONNECTOR__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_SPECIALIZATION = CONNECTOR__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_UNIONING = CONNECTOR__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__UNIONING_TYPE = CONNECTOR__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__DIRECTION = CONNECTOR__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_COMPOSITE = CONNECTOR__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_CONSTANT = CONNECTOR__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_DERIVED = CONNECTOR__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_END = CONNECTOR__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_NONUNIQUE = CONNECTOR__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_ORDERED = CONNECTOR__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_PORTION = CONNECTOR__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_UNIQUE = CONNECTOR__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_VARIABLE = CONNECTOR__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__CHAINING_FEATURE = CONNECTOR__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW__CROSS_FEATURE = CONNECTOR__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FLOW__END_OWNING_TYPE = CONNECTOR__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int FLOW__FEATURE_TARGET = CONNECTOR__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__FEATURING_TYPE = CONNECTOR__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_CROSS_SUBSETTING = CONNECTOR__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_FEATURE_CHAINING = CONNECTOR__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_FEATURE_INVERTING = CONNECTOR__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_REDEFINITION = CONNECTOR__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_REFERENCE_SUBSETTING = CONNECTOR__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_SUBSETTING = CONNECTOR__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_TYPE_FEATURING = CONNECTOR__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_TYPING = CONNECTOR__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int FLOW__OWNING_FEATURE_MEMBERSHIP = CONNECTOR__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FLOW__OWNING_TYPE = CONNECTOR__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__TYPE = CONNECTOR__TYPE; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int FLOW__IS_IMPLIED = CONNECTOR__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int FLOW__OWNED_RELATED_ELEMENT = CONNECTOR__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int FLOW__OWNING_RELATED_ELEMENT = CONNECTOR__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__RELATED_ELEMENT = CONNECTOR__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__SOURCE = CONNECTOR__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__TARGET = CONNECTOR__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__ASSOCIATION = CONNECTOR__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__CONNECTOR_END = CONNECTOR__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int FLOW__DEFAULT_FEATURING_TYPE = CONNECTOR__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__RELATED_FEATURE = CONNECTOR__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW__SOURCE_FEATURE = CONNECTOR__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__TARGET_FEATURE = CONNECTOR__TARGET_FEATURE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__BEHAVIOR = CONNECTOR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__PARAMETER = CONNECTOR_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Flow End' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__FLOW_END = CONNECTOR_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Interaction' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__INTERACTION = CONNECTOR_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Payload Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW__PAYLOAD_FEATURE = CONNECTOR_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Payload Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW__PAYLOAD_TYPE = CONNECTOR_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Source Output Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW__SOURCE_OUTPUT_FEATURE = CONNECTOR_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Target Input Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW__TARGET_INPUT_FEATURE = CONNECTOR_FEATURE_COUNT + 7; + + /** + * The number of structural features of the 'Flow' class. + * + * + * @generated + * @ordered + */ + int FLOW_FEATURE_COUNT = CONNECTOR_FEATURE_COUNT + 8; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW___EFFECTIVE_NAME = CONNECTOR___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW___EFFECTIVE_SHORT_NAME = CONNECTOR___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW___ESCAPED_NAME = CONNECTOR___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FLOW___LIBRARY_NAMESPACE = CONNECTOR___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FLOW___PATH = CONNECTOR___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW___IMPORTED_MEMBERSHIPS__ELIST = CONNECTOR___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int FLOW___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTOR___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW___NAMES_OF__ELEMENT = CONNECTOR___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW___QUALIFICATION_OF__STRING = CONNECTOR___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int FLOW___RESOLVE__STRING = CONNECTOR___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int FLOW___RESOLVE_GLOBAL__STRING = CONNECTOR___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int FLOW___RESOLVE_LOCAL__STRING = CONNECTOR___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int FLOW___RESOLVE_VISIBLE__STRING = CONNECTOR___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW___UNQUALIFIED_NAME_OF__STRING = CONNECTOR___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW___VISIBILITY_OF__MEMBERSHIP = CONNECTOR___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTOR___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTOR___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FLOW___ALL_SUPERTYPES = CONNECTOR___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW___DIRECTION_OF__FEATURE = CONNECTOR___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int FLOW___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTOR___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int FLOW___IS_COMPATIBLE_WITH__TYPE = CONNECTOR___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int FLOW___MULTIPLICITIES = CONNECTOR___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FLOW___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTOR___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int FLOW___SPECIALIZES__TYPE = CONNECTOR___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int FLOW___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTOR___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FLOW___SUPERTYPES__BOOLEAN = CONNECTOR___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FLOW___ALL_REDEFINED_FEATURES = CONNECTOR___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FLOW___AS_CARTESIAN_PRODUCT = CONNECTOR___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int FLOW___CAN_ACCESS__FEATURE = CONNECTOR___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int FLOW___DIRECTION_FOR__TYPE = CONNECTOR___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FLOW___IS_CARTESIAN_PRODUCT = CONNECTOR___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int FLOW___IS_FEATURED_WITHIN__TYPE = CONNECTOR___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int FLOW___IS_FEATURING_TYPE__TYPE = CONNECTOR___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FLOW___IS_OWNED_CROSS_FEATURE = CONNECTOR___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int FLOW___NAMING_FEATURE = CONNECTOR___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FLOW___OWNED_CROSS_FEATURE = CONNECTOR___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int FLOW___REDEFINES__FEATURE = CONNECTOR___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int FLOW___REDEFINES_FROM_LIBRARY__STRING = CONNECTOR___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int FLOW___SUBSETS_CHAIN__FEATURE_FEATURE = CONNECTOR___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int FLOW___TYPING_FEATURES = CONNECTOR___TYPING_FEATURES; + + /** + * The number of operations of the 'Flow' class. + * + * + * @generated + * @ordered + */ + int FLOW_OPERATION_COUNT = CONNECTOR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl Flow Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FlowDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFlowDefinition() + * @generated + */ + int FLOW_DEFINITION = 67; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__ALIAS_IDS = ACTION_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__DECLARED_NAME = ACTION_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__DECLARED_SHORT_NAME = ACTION_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__ELEMENT_ID = ACTION_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__IS_IMPLIED_INCLUDED = ACTION_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__IS_LIBRARY_ELEMENT = ACTION_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__NAME = ACTION_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__QUALIFIED_NAME = ACTION_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__SHORT_NAME = ACTION_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__DOCUMENTATION = ACTION_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_ANNOTATION = ACTION_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_ELEMENT = ACTION_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_RELATIONSHIP = ACTION_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNER = ACTION_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNING_MEMBERSHIP = ACTION_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNING_NAMESPACE = ACTION_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNING_RELATIONSHIP = ACTION_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__TEXTUAL_REPRESENTATION = ACTION_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__IMPORTED_MEMBERSHIP = ACTION_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__MEMBER = ACTION_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__MEMBERSHIP = ACTION_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_IMPORT = ACTION_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_MEMBER = ACTION_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_MEMBERSHIP = ACTION_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__IS_ABSTRACT = ACTION_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__IS_CONJUGATED = ACTION_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__IS_SUFFICIENT = ACTION_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__DIFFERENCING_TYPE = ACTION_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__DIRECTED_FEATURE = ACTION_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__END_FEATURE = ACTION_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__FEATURE = ACTION_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__FEATURE_MEMBERSHIP = ACTION_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__INHERITED_FEATURE = ACTION_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__INHERITED_MEMBERSHIP = ACTION_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__INPUT = ACTION_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__INTERSECTING_TYPE = ACTION_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__MULTIPLICITY = ACTION_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OUTPUT = ACTION_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_CONJUGATOR = ACTION_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_DIFFERENCING = ACTION_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_DISJOINING = ACTION_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_END_FEATURE = ACTION_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_FEATURE = ACTION_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_FEATURE_MEMBERSHIP = ACTION_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_INTERSECTING = ACTION_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_SPECIALIZATION = ACTION_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_UNIONING = ACTION_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__UNIONING_TYPE = ACTION_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_SUBCLASSIFICATION = ACTION_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__IS_VARIATION = ACTION_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__DIRECTED_USAGE = ACTION_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_ACTION = ACTION_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_ALLOCATION = ACTION_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_ANALYSIS_CASE = ACTION_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_ATTRIBUTE = ACTION_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_CALCULATION = ACTION_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_CASE = ACTION_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_CONCERN = ACTION_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_CONNECTION = ACTION_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_CONSTRAINT = ACTION_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_ENUMERATION = ACTION_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_FLOW = ACTION_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_INTERFACE = ACTION_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_ITEM = ACTION_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_METADATA = ACTION_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_OCCURRENCE = ACTION_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_PART = ACTION_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_PORT = ACTION_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_REFERENCE = ACTION_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_RENDERING = ACTION_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_REQUIREMENT = ACTION_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_STATE = ACTION_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_TRANSITION = ACTION_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_USAGE = ACTION_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_USE_CASE = ACTION_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_VERIFICATION_CASE = ACTION_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_VIEW = ACTION_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_VIEWPOINT = ACTION_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__USAGE = ACTION_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__VARIANT = ACTION_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__VARIANT_MEMBERSHIP = ACTION_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__IS_INDIVIDUAL = ACTION_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__PARAMETER = ACTION_DEFINITION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__STEP = ACTION_DEFINITION__STEP; + + /** + * The feature id for the 'Action' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__ACTION = ACTION_DEFINITION__ACTION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__IS_IMPLIED = ACTION_DEFINITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNED_RELATED_ELEMENT = ACTION_DEFINITION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__OWNING_RELATED_ELEMENT = ACTION_DEFINITION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__RELATED_ELEMENT = ACTION_DEFINITION_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__SOURCE = ACTION_DEFINITION_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__TARGET = ACTION_DEFINITION_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Association End' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__ASSOCIATION_END = ACTION_DEFINITION_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Related Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__RELATED_TYPE = ACTION_DEFINITION_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Source Type' reference. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__SOURCE_TYPE = ACTION_DEFINITION_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Target Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__TARGET_TYPE = ACTION_DEFINITION_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Flow End' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION__FLOW_END = ACTION_DEFINITION_FEATURE_COUNT + 10; + + /** + * The number of structural features of the 'Flow Definition' class. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION_FEATURE_COUNT = ACTION_DEFINITION_FEATURE_COUNT + 11; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___EFFECTIVE_NAME = ACTION_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___EFFECTIVE_SHORT_NAME = ACTION_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___ESCAPED_NAME = ACTION_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___LIBRARY_NAMESPACE = ACTION_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___PATH = ACTION_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = ACTION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___NAMES_OF__ELEMENT = ACTION_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___QUALIFICATION_OF__STRING = ACTION_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___RESOLVE__STRING = ACTION_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___RESOLVE_GLOBAL__STRING = ACTION_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___RESOLVE_LOCAL__STRING = ACTION_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___RESOLVE_VISIBLE__STRING = ACTION_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___UNQUALIFIED_NAME_OF__STRING = ACTION_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___VISIBILITY_OF__MEMBERSHIP = ACTION_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___ALL_SUPERTYPES = ACTION_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___DIRECTION_OF__FEATURE = ACTION_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___IS_COMPATIBLE_WITH__TYPE = ACTION_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___MULTIPLICITIES = ACTION_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___SPECIALIZES__TYPE = ACTION_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION___SUPERTYPES__BOOLEAN = ACTION_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Flow Definition' class. + * + * + * @generated + * @ordered + */ + int FLOW_DEFINITION_OPERATION_COUNT = ACTION_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FlowEndImpl Flow End}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FlowEndImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFlowEnd() + * @generated + */ + int FLOW_END = 68; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FLOW_END__ALIAS_IDS = FEATURE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__DECLARED_NAME = FEATURE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__DECLARED_SHORT_NAME = FEATURE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__ELEMENT_ID = FEATURE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_IMPLIED_INCLUDED = FEATURE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_LIBRARY_ELEMENT = FEATURE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__NAME = FEATURE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__SHORT_NAME = FEATURE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__DOCUMENTATION = FEATURE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_ANNOTATION = FEATURE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_RELATIONSHIP = FEATURE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNER = FEATURE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNING_MEMBERSHIP = FEATURE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNING_NAMESPACE = FEATURE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNING_RELATIONSHIP = FEATURE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__TEXTUAL_REPRESENTATION = FEATURE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__IMPORTED_MEMBERSHIP = FEATURE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__MEMBER = FEATURE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__MEMBERSHIP = FEATURE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_IMPORT = FEATURE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_MEMBER = FEATURE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_MEMBERSHIP = FEATURE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_ABSTRACT = FEATURE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_CONJUGATED = FEATURE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_SUFFICIENT = FEATURE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__DIFFERENCING_TYPE = FEATURE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__DIRECTED_FEATURE = FEATURE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__END_FEATURE = FEATURE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__FEATURE = FEATURE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__FEATURE_MEMBERSHIP = FEATURE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__INHERITED_FEATURE = FEATURE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__INHERITED_MEMBERSHIP = FEATURE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__INPUT = FEATURE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__INTERSECTING_TYPE = FEATURE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__MULTIPLICITY = FEATURE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OUTPUT = FEATURE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_CONJUGATOR = FEATURE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_DIFFERENCING = FEATURE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_DISJOINING = FEATURE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_END_FEATURE = FEATURE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_FEATURE = FEATURE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_FEATURE_MEMBERSHIP = FEATURE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_INTERSECTING = FEATURE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_SPECIALIZATION = FEATURE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_UNIONING = FEATURE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__UNIONING_TYPE = FEATURE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__DIRECTION = FEATURE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_COMPOSITE = FEATURE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_CONSTANT = FEATURE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_DERIVED = FEATURE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_END = FEATURE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_NONUNIQUE = FEATURE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_ORDERED = FEATURE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_PORTION = FEATURE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_UNIQUE = FEATURE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_END__IS_VARIABLE = FEATURE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__CHAINING_FEATURE = FEATURE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__CROSS_FEATURE = FEATURE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__END_OWNING_TYPE = FEATURE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__FEATURE_TARGET = FEATURE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__FEATURING_TYPE = FEATURE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_CROSS_SUBSETTING = FEATURE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_FEATURE_CHAINING = FEATURE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_FEATURE_INVERTING = FEATURE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_REDEFINITION = FEATURE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_REFERENCE_SUBSETTING = FEATURE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_SUBSETTING = FEATURE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_TYPE_FEATURING = FEATURE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNED_TYPING = FEATURE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNING_FEATURE_MEMBERSHIP = FEATURE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FLOW_END__OWNING_TYPE = FEATURE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_END__TYPE = FEATURE__TYPE; + + /** + * The number of structural features of the 'Flow End' class. + * + * + * @generated + * @ordered + */ + int FLOW_END_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___EFFECTIVE_NAME = FEATURE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___EFFECTIVE_SHORT_NAME = FEATURE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___ESCAPED_NAME = FEATURE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___LIBRARY_NAMESPACE = FEATURE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___PATH = FEATURE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___IMPORTED_MEMBERSHIPS__ELIST = FEATURE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = FEATURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___NAMES_OF__ELEMENT = FEATURE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___QUALIFICATION_OF__STRING = FEATURE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___RESOLVE__STRING = FEATURE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___RESOLVE_GLOBAL__STRING = FEATURE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___RESOLVE_LOCAL__STRING = FEATURE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___RESOLVE_VISIBLE__STRING = FEATURE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___UNQUALIFIED_NAME_OF__STRING = FEATURE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___VISIBILITY_OF__MEMBERSHIP = FEATURE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = FEATURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = FEATURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___ALL_SUPERTYPES = FEATURE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___DIRECTION_OF__FEATURE = FEATURE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = FEATURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___IS_COMPATIBLE_WITH__TYPE = FEATURE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___MULTIPLICITIES = FEATURE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___REMOVE_REDEFINED_FEATURES__ELIST = FEATURE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___SPECIALIZES__TYPE = FEATURE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___SPECIALIZES_FROM_LIBRARY__STRING = FEATURE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___SUPERTYPES__BOOLEAN = FEATURE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___ALL_REDEFINED_FEATURES = FEATURE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___AS_CARTESIAN_PRODUCT = FEATURE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___CAN_ACCESS__FEATURE = FEATURE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___DIRECTION_FOR__TYPE = FEATURE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___IS_CARTESIAN_PRODUCT = FEATURE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___IS_FEATURED_WITHIN__TYPE = FEATURE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___IS_FEATURING_TYPE__TYPE = FEATURE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___IS_OWNED_CROSS_FEATURE = FEATURE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___NAMING_FEATURE = FEATURE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___OWNED_CROSS_FEATURE = FEATURE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___REDEFINES__FEATURE = FEATURE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___REDEFINES_FROM_LIBRARY__STRING = FEATURE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___SUBSETS_CHAIN__FEATURE_FEATURE = FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int FLOW_END___TYPING_FEATURES = FEATURE___TYPING_FEATURES; + + /** + * The number of operations of the 'Flow End' class. + * + * + * @generated + * @ordered + */ + int FLOW_END_OPERATION_COUNT = FEATURE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FlowUsageImpl Flow Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FlowUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFlowUsage() + * @generated + */ + int FLOW_USAGE = 69; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__ALIAS_IDS = CONNECTOR_AS_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__DECLARED_NAME = CONNECTOR_AS_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__DECLARED_SHORT_NAME = CONNECTOR_AS_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__ELEMENT_ID = CONNECTOR_AS_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_IMPLIED_INCLUDED = CONNECTOR_AS_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_LIBRARY_ELEMENT = CONNECTOR_AS_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NAME = CONNECTOR_AS_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__QUALIFIED_NAME = CONNECTOR_AS_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__SHORT_NAME = CONNECTOR_AS_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__DOCUMENTATION = CONNECTOR_AS_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_ANNOTATION = CONNECTOR_AS_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_ELEMENT = CONNECTOR_AS_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_RELATIONSHIP = CONNECTOR_AS_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNER = CONNECTOR_AS_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNING_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNING_NAMESPACE = CONNECTOR_AS_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNING_RELATIONSHIP = CONNECTOR_AS_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__TEXTUAL_REPRESENTATION = CONNECTOR_AS_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IMPORTED_MEMBERSHIP = CONNECTOR_AS_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__MEMBER = CONNECTOR_AS_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__MEMBERSHIP = CONNECTOR_AS_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_IMPORT = CONNECTOR_AS_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_MEMBER = CONNECTOR_AS_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_ABSTRACT = CONNECTOR_AS_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_CONJUGATED = CONNECTOR_AS_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_SUFFICIENT = CONNECTOR_AS_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__DIFFERENCING_TYPE = CONNECTOR_AS_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__DIRECTED_FEATURE = CONNECTOR_AS_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__END_FEATURE = CONNECTOR_AS_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__FEATURE = CONNECTOR_AS_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__INHERITED_FEATURE = CONNECTOR_AS_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__INHERITED_MEMBERSHIP = CONNECTOR_AS_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__INPUT = CONNECTOR_AS_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__INTERSECTING_TYPE = CONNECTOR_AS_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__MULTIPLICITY = CONNECTOR_AS_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OUTPUT = CONNECTOR_AS_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_CONJUGATOR = CONNECTOR_AS_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_DIFFERENCING = CONNECTOR_AS_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_DISJOINING = CONNECTOR_AS_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_END_FEATURE = CONNECTOR_AS_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_FEATURE = CONNECTOR_AS_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_INTERSECTING = CONNECTOR_AS_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_SPECIALIZATION = CONNECTOR_AS_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_UNIONING = CONNECTOR_AS_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__UNIONING_TYPE = CONNECTOR_AS_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__DIRECTION = CONNECTOR_AS_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_COMPOSITE = CONNECTOR_AS_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_CONSTANT = CONNECTOR_AS_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_DERIVED = CONNECTOR_AS_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_END = CONNECTOR_AS_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_NONUNIQUE = CONNECTOR_AS_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_ORDERED = CONNECTOR_AS_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_PORTION = CONNECTOR_AS_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_UNIQUE = CONNECTOR_AS_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_VARIABLE = CONNECTOR_AS_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__CHAINING_FEATURE = CONNECTOR_AS_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__CROSS_FEATURE = CONNECTOR_AS_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__END_OWNING_TYPE = CONNECTOR_AS_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__FEATURE_TARGET = CONNECTOR_AS_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__FEATURING_TYPE = CONNECTOR_AS_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_CROSS_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_FEATURE_CHAINING = CONNECTOR_AS_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_FEATURE_INVERTING = CONNECTOR_AS_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_REDEFINITION = CONNECTOR_AS_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_REFERENCE_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_TYPE_FEATURING = CONNECTOR_AS_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_TYPING = CONNECTOR_AS_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNING_FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNING_TYPE = CONNECTOR_AS_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__TYPE = CONNECTOR_AS_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_REFERENCE = CONNECTOR_AS_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_VARIATION = CONNECTOR_AS_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__MAY_TIME_VARY = CONNECTOR_AS_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__DEFINITION = CONNECTOR_AS_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__DIRECTED_USAGE = CONNECTOR_AS_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_ACTION = CONNECTOR_AS_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_ALLOCATION = CONNECTOR_AS_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_ANALYSIS_CASE = CONNECTOR_AS_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_ATTRIBUTE = CONNECTOR_AS_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_CALCULATION = CONNECTOR_AS_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_CASE = CONNECTOR_AS_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_CONCERN = CONNECTOR_AS_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_CONNECTION = CONNECTOR_AS_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_CONSTRAINT = CONNECTOR_AS_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_ENUMERATION = CONNECTOR_AS_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_FLOW = CONNECTOR_AS_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_INTERFACE = CONNECTOR_AS_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_ITEM = CONNECTOR_AS_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_METADATA = CONNECTOR_AS_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_OCCURRENCE = CONNECTOR_AS_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_PART = CONNECTOR_AS_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_PORT = CONNECTOR_AS_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_REFERENCE = CONNECTOR_AS_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_RENDERING = CONNECTOR_AS_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_REQUIREMENT = CONNECTOR_AS_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_STATE = CONNECTOR_AS_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_TRANSITION = CONNECTOR_AS_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_USAGE = CONNECTOR_AS_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_USE_CASE = CONNECTOR_AS_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_VERIFICATION_CASE = CONNECTOR_AS_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_VIEW = CONNECTOR_AS_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__NESTED_VIEWPOINT = CONNECTOR_AS_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNING_DEFINITION = CONNECTOR_AS_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNING_USAGE = CONNECTOR_AS_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__USAGE = CONNECTOR_AS_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__VARIANT = CONNECTOR_AS_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__VARIANT_MEMBERSHIP = CONNECTOR_AS_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_IMPLIED = CONNECTOR_AS_USAGE__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNED_RELATED_ELEMENT = CONNECTOR_AS_USAGE__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OWNING_RELATED_ELEMENT = CONNECTOR_AS_USAGE__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__RELATED_ELEMENT = CONNECTOR_AS_USAGE__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__SOURCE = CONNECTOR_AS_USAGE__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__TARGET = CONNECTOR_AS_USAGE__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__ASSOCIATION = CONNECTOR_AS_USAGE__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__CONNECTOR_END = CONNECTOR_AS_USAGE__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__DEFAULT_FEATURING_TYPE = CONNECTOR_AS_USAGE__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__RELATED_FEATURE = CONNECTOR_AS_USAGE__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__SOURCE_FEATURE = CONNECTOR_AS_USAGE__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__TARGET_FEATURE = CONNECTOR_AS_USAGE__TARGET_FEATURE; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__IS_INDIVIDUAL = CONNECTOR_AS_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__PORTION_KIND = CONNECTOR_AS_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__INDIVIDUAL_DEFINITION = CONNECTOR_AS_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__OCCURRENCE_DEFINITION = CONNECTOR_AS_USAGE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__BEHAVIOR = CONNECTOR_AS_USAGE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__PARAMETER = CONNECTOR_AS_USAGE_FEATURE_COUNT + 5; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__ACTION_DEFINITION = CONNECTOR_AS_USAGE_FEATURE_COUNT + 6; + + /** + * The feature id for the 'Flow End' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__FLOW_END = CONNECTOR_AS_USAGE_FEATURE_COUNT + 7; + + /** + * The feature id for the 'Interaction' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__INTERACTION = CONNECTOR_AS_USAGE_FEATURE_COUNT + 8; + + /** + * The feature id for the 'Payload Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__PAYLOAD_FEATURE = CONNECTOR_AS_USAGE_FEATURE_COUNT + 9; + + /** + * The feature id for the 'Payload Type' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__PAYLOAD_TYPE = CONNECTOR_AS_USAGE_FEATURE_COUNT + 10; + + /** + * The feature id for the 'Source Output Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__SOURCE_OUTPUT_FEATURE = CONNECTOR_AS_USAGE_FEATURE_COUNT + 11; + + /** + * The feature id for the 'Target Input Feature' reference. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__TARGET_INPUT_FEATURE = CONNECTOR_AS_USAGE_FEATURE_COUNT + 12; + + /** + * The feature id for the 'Flow Definition' reference list. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE__FLOW_DEFINITION = CONNECTOR_AS_USAGE_FEATURE_COUNT + 13; + + /** + * The number of structural features of the 'Flow Usage' class. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE_FEATURE_COUNT = CONNECTOR_AS_USAGE_FEATURE_COUNT + 14; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___EFFECTIVE_NAME = CONNECTOR_AS_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___EFFECTIVE_SHORT_NAME = CONNECTOR_AS_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___ESCAPED_NAME = CONNECTOR_AS_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___LIBRARY_NAMESPACE = CONNECTOR_AS_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___PATH = CONNECTOR_AS_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CONNECTOR_AS_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTOR_AS_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___NAMES_OF__ELEMENT = CONNECTOR_AS_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___QUALIFICATION_OF__STRING = CONNECTOR_AS_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___RESOLVE__STRING = CONNECTOR_AS_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___RESOLVE_GLOBAL__STRING = CONNECTOR_AS_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___RESOLVE_LOCAL__STRING = CONNECTOR_AS_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___RESOLVE_VISIBLE__STRING = CONNECTOR_AS_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___UNQUALIFIED_NAME_OF__STRING = CONNECTOR_AS_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___VISIBILITY_OF__MEMBERSHIP = CONNECTOR_AS_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTOR_AS_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___ALL_SUPERTYPES = CONNECTOR_AS_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___DIRECTION_OF__FEATURE = CONNECTOR_AS_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTOR_AS_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___IS_COMPATIBLE_WITH__TYPE = CONNECTOR_AS_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___MULTIPLICITIES = CONNECTOR_AS_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTOR_AS_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___SPECIALIZES__TYPE = CONNECTOR_AS_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTOR_AS_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___SUPERTYPES__BOOLEAN = CONNECTOR_AS_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___ALL_REDEFINED_FEATURES = CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___AS_CARTESIAN_PRODUCT = CONNECTOR_AS_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___CAN_ACCESS__FEATURE = CONNECTOR_AS_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___DIRECTION_FOR__TYPE = CONNECTOR_AS_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___IS_CARTESIAN_PRODUCT = CONNECTOR_AS_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___IS_FEATURED_WITHIN__TYPE = CONNECTOR_AS_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___IS_FEATURING_TYPE__TYPE = CONNECTOR_AS_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___IS_OWNED_CROSS_FEATURE = CONNECTOR_AS_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___NAMING_FEATURE = CONNECTOR_AS_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___OWNED_CROSS_FEATURE = CONNECTOR_AS_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___REDEFINES__FEATURE = CONNECTOR_AS_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___REDEFINES_FROM_LIBRARY__STRING = CONNECTOR_AS_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CONNECTOR_AS_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___TYPING_FEATURES = CONNECTOR_AS_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___REFERENCED_FEATURE_TARGET = CONNECTOR_AS_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___ARGUMENT__INT = CONNECTOR_AS_USAGE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___INPUT_PARAMETER__INT = CONNECTOR_AS_USAGE_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___INPUT_PARAMETERS = CONNECTOR_AS_USAGE_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE___IS_SUBACTION_USAGE = CONNECTOR_AS_USAGE_OPERATION_COUNT + 3; + + /** + * The number of operations of the 'Flow Usage' class. + * + * + * @generated + * @ordered + */ + int FLOW_USAGE_OPERATION_COUNT = CONNECTOR_AS_USAGE_OPERATION_COUNT + 4; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ForkNodeImpl Fork Node}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ForkNodeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getForkNode() + * @generated + */ + int FORK_NODE = 70; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__ALIAS_IDS = CONTROL_NODE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__DECLARED_NAME = CONTROL_NODE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__DECLARED_SHORT_NAME = CONTROL_NODE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__ELEMENT_ID = CONTROL_NODE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_IMPLIED_INCLUDED = CONTROL_NODE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_LIBRARY_ELEMENT = CONTROL_NODE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NAME = CONTROL_NODE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__QUALIFIED_NAME = CONTROL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__SHORT_NAME = CONTROL_NODE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__DOCUMENTATION = CONTROL_NODE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_ANNOTATION = CONTROL_NODE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_ELEMENT = CONTROL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_RELATIONSHIP = CONTROL_NODE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNER = CONTROL_NODE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNING_MEMBERSHIP = CONTROL_NODE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNING_NAMESPACE = CONTROL_NODE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNING_RELATIONSHIP = CONTROL_NODE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__TEXTUAL_REPRESENTATION = CONTROL_NODE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IMPORTED_MEMBERSHIP = CONTROL_NODE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__MEMBER = CONTROL_NODE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__MEMBERSHIP = CONTROL_NODE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_IMPORT = CONTROL_NODE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_MEMBER = CONTROL_NODE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_MEMBERSHIP = CONTROL_NODE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_ABSTRACT = CONTROL_NODE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_CONJUGATED = CONTROL_NODE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_SUFFICIENT = CONTROL_NODE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__DIFFERENCING_TYPE = CONTROL_NODE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__DIRECTED_FEATURE = CONTROL_NODE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__END_FEATURE = CONTROL_NODE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__FEATURE = CONTROL_NODE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__FEATURE_MEMBERSHIP = CONTROL_NODE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__INHERITED_FEATURE = CONTROL_NODE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__INHERITED_MEMBERSHIP = CONTROL_NODE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__INPUT = CONTROL_NODE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__INTERSECTING_TYPE = CONTROL_NODE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__MULTIPLICITY = CONTROL_NODE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OUTPUT = CONTROL_NODE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_CONJUGATOR = CONTROL_NODE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_DIFFERENCING = CONTROL_NODE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_DISJOINING = CONTROL_NODE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_END_FEATURE = CONTROL_NODE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_FEATURE = CONTROL_NODE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_FEATURE_MEMBERSHIP = CONTROL_NODE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_INTERSECTING = CONTROL_NODE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_SPECIALIZATION = CONTROL_NODE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_UNIONING = CONTROL_NODE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__UNIONING_TYPE = CONTROL_NODE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__DIRECTION = CONTROL_NODE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_COMPOSITE = CONTROL_NODE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_CONSTANT = CONTROL_NODE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_DERIVED = CONTROL_NODE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_END = CONTROL_NODE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_NONUNIQUE = CONTROL_NODE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_ORDERED = CONTROL_NODE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_PORTION = CONTROL_NODE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_UNIQUE = CONTROL_NODE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_VARIABLE = CONTROL_NODE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__CHAINING_FEATURE = CONTROL_NODE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__CROSS_FEATURE = CONTROL_NODE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__END_OWNING_TYPE = CONTROL_NODE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__FEATURE_TARGET = CONTROL_NODE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__FEATURING_TYPE = CONTROL_NODE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_CROSS_SUBSETTING = CONTROL_NODE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_FEATURE_CHAINING = CONTROL_NODE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_FEATURE_INVERTING = CONTROL_NODE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_REDEFINITION = CONTROL_NODE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_REFERENCE_SUBSETTING = CONTROL_NODE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_SUBSETTING = CONTROL_NODE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_TYPE_FEATURING = CONTROL_NODE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNED_TYPING = CONTROL_NODE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNING_FEATURE_MEMBERSHIP = CONTROL_NODE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNING_TYPE = CONTROL_NODE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__TYPE = CONTROL_NODE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_REFERENCE = CONTROL_NODE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_VARIATION = CONTROL_NODE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__MAY_TIME_VARY = CONTROL_NODE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__DEFINITION = CONTROL_NODE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__DIRECTED_USAGE = CONTROL_NODE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_ACTION = CONTROL_NODE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_ALLOCATION = CONTROL_NODE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_ANALYSIS_CASE = CONTROL_NODE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_ATTRIBUTE = CONTROL_NODE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_CALCULATION = CONTROL_NODE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_CASE = CONTROL_NODE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_CONCERN = CONTROL_NODE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_CONNECTION = CONTROL_NODE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_CONSTRAINT = CONTROL_NODE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_ENUMERATION = CONTROL_NODE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_FLOW = CONTROL_NODE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_INTERFACE = CONTROL_NODE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_ITEM = CONTROL_NODE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_METADATA = CONTROL_NODE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_OCCURRENCE = CONTROL_NODE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_PART = CONTROL_NODE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_PORT = CONTROL_NODE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_REFERENCE = CONTROL_NODE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_RENDERING = CONTROL_NODE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_REQUIREMENT = CONTROL_NODE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_STATE = CONTROL_NODE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_TRANSITION = CONTROL_NODE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_USAGE = CONTROL_NODE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_USE_CASE = CONTROL_NODE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_VERIFICATION_CASE = CONTROL_NODE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_VIEW = CONTROL_NODE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__NESTED_VIEWPOINT = CONTROL_NODE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNING_DEFINITION = CONTROL_NODE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OWNING_USAGE = CONTROL_NODE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__USAGE = CONTROL_NODE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__VARIANT = CONTROL_NODE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__VARIANT_MEMBERSHIP = CONTROL_NODE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__IS_INDIVIDUAL = CONTROL_NODE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int FORK_NODE__PORTION_KIND = CONTROL_NODE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int FORK_NODE__INDIVIDUAL_DEFINITION = CONTROL_NODE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__OCCURRENCE_DEFINITION = CONTROL_NODE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__BEHAVIOR = CONTROL_NODE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__PARAMETER = CONTROL_NODE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int FORK_NODE__ACTION_DEFINITION = CONTROL_NODE__ACTION_DEFINITION; + + /** + * The number of structural features of the 'Fork Node' class. + * + * + * @generated + * @ordered + */ + int FORK_NODE_FEATURE_COUNT = CONTROL_NODE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___EFFECTIVE_NAME = CONTROL_NODE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___EFFECTIVE_SHORT_NAME = CONTROL_NODE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___ESCAPED_NAME = CONTROL_NODE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___LIBRARY_NAMESPACE = CONTROL_NODE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___PATH = CONTROL_NODE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___IMPORTED_MEMBERSHIPS__ELIST = CONTROL_NODE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONTROL_NODE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___NAMES_OF__ELEMENT = CONTROL_NODE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___QUALIFICATION_OF__STRING = CONTROL_NODE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___RESOLVE__STRING = CONTROL_NODE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___RESOLVE_GLOBAL__STRING = CONTROL_NODE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___RESOLVE_LOCAL__STRING = CONTROL_NODE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___RESOLVE_VISIBLE__STRING = CONTROL_NODE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___UNQUALIFIED_NAME_OF__STRING = CONTROL_NODE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___VISIBILITY_OF__MEMBERSHIP = CONTROL_NODE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONTROL_NODE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONTROL_NODE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___ALL_SUPERTYPES = CONTROL_NODE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___DIRECTION_OF__FEATURE = CONTROL_NODE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONTROL_NODE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___IS_COMPATIBLE_WITH__TYPE = CONTROL_NODE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___MULTIPLICITIES = CONTROL_NODE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___REMOVE_REDEFINED_FEATURES__ELIST = CONTROL_NODE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___SPECIALIZES__TYPE = CONTROL_NODE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___SPECIALIZES_FROM_LIBRARY__STRING = CONTROL_NODE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___SUPERTYPES__BOOLEAN = CONTROL_NODE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___ALL_REDEFINED_FEATURES = CONTROL_NODE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___AS_CARTESIAN_PRODUCT = CONTROL_NODE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___CAN_ACCESS__FEATURE = CONTROL_NODE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___DIRECTION_FOR__TYPE = CONTROL_NODE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___IS_CARTESIAN_PRODUCT = CONTROL_NODE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___IS_FEATURED_WITHIN__TYPE = CONTROL_NODE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___IS_FEATURING_TYPE__TYPE = CONTROL_NODE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___IS_OWNED_CROSS_FEATURE = CONTROL_NODE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___NAMING_FEATURE = CONTROL_NODE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___OWNED_CROSS_FEATURE = CONTROL_NODE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___REDEFINES__FEATURE = CONTROL_NODE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___REDEFINES_FROM_LIBRARY__STRING = CONTROL_NODE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___SUBSETS_CHAIN__FEATURE_FEATURE = CONTROL_NODE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___TYPING_FEATURES = CONTROL_NODE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___REFERENCED_FEATURE_TARGET = CONTROL_NODE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___ARGUMENT__INT = CONTROL_NODE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___INPUT_PARAMETER__INT = CONTROL_NODE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___INPUT_PARAMETERS = CONTROL_NODE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___IS_SUBACTION_USAGE = CONTROL_NODE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Multiplicity Has Bounds' operation. + * + * + * @generated + * @ordered + */ + int FORK_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT = CONTROL_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT; + + /** + * The number of operations of the 'Fork Node' class. + * + * + * @generated + * @ordered + */ + int FORK_NODE_OPERATION_COUNT = CONTROL_NODE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.LoopActionUsageImpl Loop Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LoopActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLoopActionUsage() + * @generated + */ + int LOOP_ACTION_USAGE = 95; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Body Action' reference. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE__BODY_ACTION = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Loop Action Usage' class. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The number of operations of the 'Loop Action Usage' class. + * + * + * @generated + * @ordered + */ + int LOOP_ACTION_USAGE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ForLoopActionUsageImpl For Loop Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ForLoopActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getForLoopActionUsage() + * @generated + */ + int FOR_LOOP_ACTION_USAGE = 71; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__ALIAS_IDS = LOOP_ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__DECLARED_NAME = LOOP_ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__DECLARED_SHORT_NAME = LOOP_ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__ELEMENT_ID = LOOP_ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_IMPLIED_INCLUDED = LOOP_ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_LIBRARY_ELEMENT = LOOP_ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NAME = LOOP_ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__QUALIFIED_NAME = LOOP_ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__SHORT_NAME = LOOP_ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__DOCUMENTATION = LOOP_ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_ANNOTATION = LOOP_ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_ELEMENT = LOOP_ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_RELATIONSHIP = LOOP_ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNER = LOOP_ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNING_MEMBERSHIP = LOOP_ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNING_NAMESPACE = LOOP_ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNING_RELATIONSHIP = LOOP_ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__TEXTUAL_REPRESENTATION = LOOP_ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IMPORTED_MEMBERSHIP = LOOP_ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__MEMBER = LOOP_ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__MEMBERSHIP = LOOP_ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_IMPORT = LOOP_ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_MEMBER = LOOP_ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_MEMBERSHIP = LOOP_ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_ABSTRACT = LOOP_ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_CONJUGATED = LOOP_ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_SUFFICIENT = LOOP_ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__DIFFERENCING_TYPE = LOOP_ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__DIRECTED_FEATURE = LOOP_ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__END_FEATURE = LOOP_ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__FEATURE = LOOP_ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__FEATURE_MEMBERSHIP = LOOP_ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__INHERITED_FEATURE = LOOP_ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__INHERITED_MEMBERSHIP = LOOP_ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__INPUT = LOOP_ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__INTERSECTING_TYPE = LOOP_ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__MULTIPLICITY = LOOP_ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OUTPUT = LOOP_ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_CONJUGATOR = LOOP_ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_DIFFERENCING = LOOP_ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_DISJOINING = LOOP_ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_END_FEATURE = LOOP_ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_FEATURE = LOOP_ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP = LOOP_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_INTERSECTING = LOOP_ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_SPECIALIZATION = LOOP_ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_UNIONING = LOOP_ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__UNIONING_TYPE = LOOP_ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__DIRECTION = LOOP_ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_COMPOSITE = LOOP_ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_CONSTANT = LOOP_ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_DERIVED = LOOP_ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_END = LOOP_ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_NONUNIQUE = LOOP_ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_ORDERED = LOOP_ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_PORTION = LOOP_ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_UNIQUE = LOOP_ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_VARIABLE = LOOP_ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__CHAINING_FEATURE = LOOP_ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__CROSS_FEATURE = LOOP_ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__END_OWNING_TYPE = LOOP_ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__FEATURE_TARGET = LOOP_ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__FEATURING_TYPE = LOOP_ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_CROSS_SUBSETTING = LOOP_ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_FEATURE_CHAINING = LOOP_ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_FEATURE_INVERTING = LOOP_ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_REDEFINITION = LOOP_ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING = LOOP_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_SUBSETTING = LOOP_ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_TYPE_FEATURING = LOOP_ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNED_TYPING = LOOP_ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP = LOOP_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNING_TYPE = LOOP_ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__TYPE = LOOP_ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_REFERENCE = LOOP_ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_VARIATION = LOOP_ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__MAY_TIME_VARY = LOOP_ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__DEFINITION = LOOP_ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__DIRECTED_USAGE = LOOP_ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_ACTION = LOOP_ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_ALLOCATION = LOOP_ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_ANALYSIS_CASE = LOOP_ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_ATTRIBUTE = LOOP_ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_CALCULATION = LOOP_ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_CASE = LOOP_ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_CONCERN = LOOP_ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_CONNECTION = LOOP_ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_CONSTRAINT = LOOP_ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_ENUMERATION = LOOP_ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_FLOW = LOOP_ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_INTERFACE = LOOP_ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_ITEM = LOOP_ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_METADATA = LOOP_ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_OCCURRENCE = LOOP_ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_PART = LOOP_ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_PORT = LOOP_ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_REFERENCE = LOOP_ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_RENDERING = LOOP_ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_REQUIREMENT = LOOP_ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_STATE = LOOP_ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_TRANSITION = LOOP_ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_USAGE = LOOP_ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_USE_CASE = LOOP_ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_VERIFICATION_CASE = LOOP_ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_VIEW = LOOP_ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__NESTED_VIEWPOINT = LOOP_ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNING_DEFINITION = LOOP_ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OWNING_USAGE = LOOP_ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__USAGE = LOOP_ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__VARIANT = LOOP_ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__VARIANT_MEMBERSHIP = LOOP_ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__IS_INDIVIDUAL = LOOP_ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__PORTION_KIND = LOOP_ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__INDIVIDUAL_DEFINITION = LOOP_ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__OCCURRENCE_DEFINITION = LOOP_ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__BEHAVIOR = LOOP_ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__PARAMETER = LOOP_ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__ACTION_DEFINITION = LOOP_ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Body Action' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__BODY_ACTION = LOOP_ACTION_USAGE__BODY_ACTION; + + /** + * The feature id for the 'Loop Variable' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__LOOP_VARIABLE = LOOP_ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Seq Argument' reference. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE__SEQ_ARGUMENT = LOOP_ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'For Loop Action Usage' class. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE_FEATURE_COUNT = LOOP_ACTION_USAGE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___EFFECTIVE_NAME = LOOP_ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___EFFECTIVE_SHORT_NAME = LOOP_ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___ESCAPED_NAME = LOOP_ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___LIBRARY_NAMESPACE = LOOP_ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___PATH = LOOP_ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = LOOP_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = LOOP_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___NAMES_OF__ELEMENT = LOOP_ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___QUALIFICATION_OF__STRING = LOOP_ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___RESOLVE__STRING = LOOP_ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___RESOLVE_GLOBAL__STRING = LOOP_ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___RESOLVE_LOCAL__STRING = LOOP_ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___RESOLVE_VISIBLE__STRING = LOOP_ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING = LOOP_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP = LOOP_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = LOOP_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = LOOP_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___ALL_SUPERTYPES = LOOP_ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___DIRECTION_OF__FEATURE = LOOP_ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = LOOP_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LOOP_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LOOP_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE = LOOP_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___MULTIPLICITIES = LOOP_ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LOOP_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = LOOP_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___SPECIALIZES__TYPE = LOOP_ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = LOOP_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___SUPERTYPES__BOOLEAN = LOOP_ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___ALL_REDEFINED_FEATURES = LOOP_ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___AS_CARTESIAN_PRODUCT = LOOP_ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___CAN_ACCESS__FEATURE = LOOP_ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___DIRECTION_FOR__TYPE = LOOP_ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___IS_CARTESIAN_PRODUCT = LOOP_ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE = LOOP_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___IS_FEATURING_TYPE__TYPE = LOOP_ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___IS_OWNED_CROSS_FEATURE = LOOP_ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___NAMING_FEATURE = LOOP_ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___OWNED_CROSS_FEATURE = LOOP_ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___REDEFINES__FEATURE = LOOP_ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = LOOP_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = LOOP_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___TYPING_FEATURES = LOOP_ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___REFERENCED_FEATURE_TARGET = LOOP_ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___ARGUMENT__INT = LOOP_ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___INPUT_PARAMETER__INT = LOOP_ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___INPUT_PARAMETERS = LOOP_ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE___IS_SUBACTION_USAGE = LOOP_ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The number of operations of the 'For Loop Action Usage' class. + * + * + * @generated + * @ordered + */ + int FOR_LOOP_ACTION_USAGE_OPERATION_COUNT = LOOP_ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.RequirementConstraintMembershipImpl Requirement Constraint Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RequirementConstraintMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRequirementConstraintMembership() + * @generated + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP = 132; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__ALIAS_IDS = FEATURE_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__DECLARED_NAME = FEATURE_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__DECLARED_SHORT_NAME = FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__ELEMENT_ID = FEATURE_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__IS_IMPLIED_INCLUDED = FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__IS_LIBRARY_ELEMENT = FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__NAME = FEATURE_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__QUALIFIED_NAME = FEATURE_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__SHORT_NAME = FEATURE_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__DOCUMENTATION = FEATURE_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_ANNOTATION = FEATURE_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNER = FEATURE_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_MEMBERSHIP = FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_NAMESPACE = FEATURE_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__TEXTUAL_REPRESENTATION = FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__IS_IMPLIED = FEATURE_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__RELATED_ELEMENT = FEATURE_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__SOURCE = FEATURE_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__TARGET = FEATURE_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_NAME = FEATURE_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__VISIBILITY = FEATURE_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_ELEMENT = FEATURE_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_ELEMENT = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_FEATURE = FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_TYPE = FEATURE_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__KIND = FEATURE_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Owned Constraint' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_CONSTRAINT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Referenced Constraint' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP__REFERENCED_CONSTRAINT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Requirement Constraint Membership' class. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP_FEATURE_COUNT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP___EFFECTIVE_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP___EFFECTIVE_SHORT_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP___ESCAPED_NAME = FEATURE_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP___LIBRARY_NAMESPACE = FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP___PATH = FEATURE_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Requirement Constraint Membership' class. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_CONSTRAINT_MEMBERSHIP_OPERATION_COUNT = FEATURE_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FramedConcernMembershipImpl Framed Concern Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FramedConcernMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFramedConcernMembership() + * @generated + */ + int FRAMED_CONCERN_MEMBERSHIP = 72; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__ALIAS_IDS = REQUIREMENT_CONSTRAINT_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__DECLARED_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__DECLARED_SHORT_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__ELEMENT_ID = REQUIREMENT_CONSTRAINT_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__IS_IMPLIED_INCLUDED = REQUIREMENT_CONSTRAINT_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__IS_LIBRARY_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__QUALIFIED_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__SHORT_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__DOCUMENTATION = REQUIREMENT_CONSTRAINT_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_ANNOTATION = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_RELATIONSHIP = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNER = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNING_MEMBERSHIP = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNING_NAMESPACE = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNING_RELATIONSHIP = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__TEXTUAL_REPRESENTATION = REQUIREMENT_CONSTRAINT_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__IS_IMPLIED = REQUIREMENT_CONSTRAINT_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_RELATED_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNING_RELATED_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__RELATED_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__SOURCE = REQUIREMENT_CONSTRAINT_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__TARGET = REQUIREMENT_CONSTRAINT_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__MEMBER_ELEMENT_ID = REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__MEMBER_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__MEMBER_SHORT_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__VISIBILITY = REQUIREMENT_CONSTRAINT_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__MEMBER_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_MEMBER_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_MEMBER_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_MEMBER_FEATURE = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNING_TYPE = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__KIND = REQUIREMENT_CONSTRAINT_MEMBERSHIP__KIND; + + /** + * The feature id for the 'Owned Constraint' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_CONSTRAINT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Referenced Constraint' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__REFERENCED_CONSTRAINT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__REFERENCED_CONSTRAINT; + + /** + * The feature id for the 'Owned Concern' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__OWNED_CONCERN = REQUIREMENT_CONSTRAINT_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Referenced Concern' reference. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP__REFERENCED_CONCERN = REQUIREMENT_CONSTRAINT_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Framed Concern Membership' class. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP_FEATURE_COUNT = REQUIREMENT_CONSTRAINT_MEMBERSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP___EFFECTIVE_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP___EFFECTIVE_SHORT_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP___ESCAPED_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP___LIBRARY_NAMESPACE = REQUIREMENT_CONSTRAINT_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP___PATH = REQUIREMENT_CONSTRAINT_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = REQUIREMENT_CONSTRAINT_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Framed Concern Membership' class. + * + * + * @generated + * @ordered + */ + int FRAMED_CONCERN_MEMBERSHIP_OPERATION_COUNT = REQUIREMENT_CONSTRAINT_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.FunctionImpl Function}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FunctionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFunction() + * @generated + */ + int FUNCTION = 73; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int FUNCTION__ALIAS_IDS = BEHAVIOR__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__DECLARED_NAME = BEHAVIOR__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__DECLARED_SHORT_NAME = BEHAVIOR__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__ELEMENT_ID = BEHAVIOR__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__IS_IMPLIED_INCLUDED = BEHAVIOR__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__IS_LIBRARY_ELEMENT = BEHAVIOR__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__NAME = BEHAVIOR__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__QUALIFIED_NAME = BEHAVIOR__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__SHORT_NAME = BEHAVIOR__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__DOCUMENTATION = BEHAVIOR__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_ANNOTATION = BEHAVIOR__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_ELEMENT = BEHAVIOR__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_RELATIONSHIP = BEHAVIOR__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNER = BEHAVIOR__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNING_MEMBERSHIP = BEHAVIOR__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNING_NAMESPACE = BEHAVIOR__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNING_RELATIONSHIP = BEHAVIOR__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__TEXTUAL_REPRESENTATION = BEHAVIOR__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__IMPORTED_MEMBERSHIP = BEHAVIOR__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__MEMBER = BEHAVIOR__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__MEMBERSHIP = BEHAVIOR__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_IMPORT = BEHAVIOR__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_MEMBER = BEHAVIOR__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_MEMBERSHIP = BEHAVIOR__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__IS_ABSTRACT = BEHAVIOR__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__IS_CONJUGATED = BEHAVIOR__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__IS_SUFFICIENT = BEHAVIOR__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__DIFFERENCING_TYPE = BEHAVIOR__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__DIRECTED_FEATURE = BEHAVIOR__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__END_FEATURE = BEHAVIOR__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__FEATURE = BEHAVIOR__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__FEATURE_MEMBERSHIP = BEHAVIOR__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__INHERITED_FEATURE = BEHAVIOR__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__INHERITED_MEMBERSHIP = BEHAVIOR__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__INPUT = BEHAVIOR__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__INTERSECTING_TYPE = BEHAVIOR__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION__MULTIPLICITY = BEHAVIOR__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OUTPUT = BEHAVIOR__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_CONJUGATOR = BEHAVIOR__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_DIFFERENCING = BEHAVIOR__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_DISJOINING = BEHAVIOR__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_END_FEATURE = BEHAVIOR__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_FEATURE = BEHAVIOR__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_FEATURE_MEMBERSHIP = BEHAVIOR__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_INTERSECTING = BEHAVIOR__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_SPECIALIZATION = BEHAVIOR__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_UNIONING = BEHAVIOR__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__UNIONING_TYPE = BEHAVIOR__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__OWNED_SUBCLASSIFICATION = BEHAVIOR__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__PARAMETER = BEHAVIOR__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__STEP = BEHAVIOR__STEP; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int FUNCTION__IS_MODEL_LEVEL_EVALUABLE = BEHAVIOR_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int FUNCTION__EXPRESSION = BEHAVIOR_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int FUNCTION__RESULT = BEHAVIOR_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Function' class. + * + * + * @generated + * @ordered + */ + int FUNCTION_FEATURE_COUNT = BEHAVIOR_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___EFFECTIVE_NAME = BEHAVIOR___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___EFFECTIVE_SHORT_NAME = BEHAVIOR___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___ESCAPED_NAME = BEHAVIOR___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___LIBRARY_NAMESPACE = BEHAVIOR___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___PATH = BEHAVIOR___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___IMPORTED_MEMBERSHIPS__ELIST = BEHAVIOR___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = BEHAVIOR___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___NAMES_OF__ELEMENT = BEHAVIOR___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___QUALIFICATION_OF__STRING = BEHAVIOR___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___RESOLVE__STRING = BEHAVIOR___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___RESOLVE_GLOBAL__STRING = BEHAVIOR___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___RESOLVE_LOCAL__STRING = BEHAVIOR___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___RESOLVE_VISIBLE__STRING = BEHAVIOR___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___UNQUALIFIED_NAME_OF__STRING = BEHAVIOR___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___VISIBILITY_OF__MEMBERSHIP = BEHAVIOR___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = BEHAVIOR___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = BEHAVIOR___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___ALL_SUPERTYPES = BEHAVIOR___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___DIRECTION_OF__FEATURE = BEHAVIOR___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = BEHAVIOR___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = BEHAVIOR___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = BEHAVIOR___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___IS_COMPATIBLE_WITH__TYPE = BEHAVIOR___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___MULTIPLICITIES = BEHAVIOR___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = BEHAVIOR___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___REMOVE_REDEFINED_FEATURES__ELIST = BEHAVIOR___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___SPECIALIZES__TYPE = BEHAVIOR___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___SPECIALIZES_FROM_LIBRARY__STRING = BEHAVIOR___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int FUNCTION___SUPERTYPES__BOOLEAN = BEHAVIOR___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Function' class. + * + * + * @generated + * @ordered + */ + int FUNCTION_OPERATION_COUNT = BEHAVIOR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.IfActionUsageImpl If Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.IfActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getIfActionUsage() + * @generated + */ + int IF_ACTION_USAGE = 74; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Else Action' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__ELSE_ACTION = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'If Argument' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__IF_ARGUMENT = ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Then Action' reference. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE__THEN_ACTION = ACTION_USAGE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'If Action Usage' class. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The number of operations of the 'If Action Usage' class. + * + * + * @generated + * @ordered + */ + int IF_ACTION_USAGE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.UseCaseUsageImpl Use Case Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.UseCaseUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getUseCaseUsage() + * @generated + */ + int USE_CASE_USAGE = 165; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__ALIAS_IDS = CASE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__DECLARED_NAME = CASE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__DECLARED_SHORT_NAME = CASE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__ELEMENT_ID = CASE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_IMPLIED_INCLUDED = CASE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_LIBRARY_ELEMENT = CASE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NAME = CASE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__QUALIFIED_NAME = CASE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__SHORT_NAME = CASE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__DOCUMENTATION = CASE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_ANNOTATION = CASE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_ELEMENT = CASE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_RELATIONSHIP = CASE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNER = CASE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNING_MEMBERSHIP = CASE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNING_NAMESPACE = CASE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNING_RELATIONSHIP = CASE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__TEXTUAL_REPRESENTATION = CASE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IMPORTED_MEMBERSHIP = CASE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__MEMBER = CASE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__MEMBERSHIP = CASE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_IMPORT = CASE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_MEMBER = CASE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_MEMBERSHIP = CASE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_ABSTRACT = CASE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_CONJUGATED = CASE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_SUFFICIENT = CASE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__DIFFERENCING_TYPE = CASE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__DIRECTED_FEATURE = CASE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__END_FEATURE = CASE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__FEATURE = CASE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__FEATURE_MEMBERSHIP = CASE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__INHERITED_FEATURE = CASE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__INHERITED_MEMBERSHIP = CASE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__INPUT = CASE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__INTERSECTING_TYPE = CASE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__MULTIPLICITY = CASE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OUTPUT = CASE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_CONJUGATOR = CASE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_DIFFERENCING = CASE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_DISJOINING = CASE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_END_FEATURE = CASE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_FEATURE = CASE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_FEATURE_MEMBERSHIP = CASE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_INTERSECTING = CASE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_SPECIALIZATION = CASE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_UNIONING = CASE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__UNIONING_TYPE = CASE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__DIRECTION = CASE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_COMPOSITE = CASE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_CONSTANT = CASE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_DERIVED = CASE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_END = CASE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_NONUNIQUE = CASE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_ORDERED = CASE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_PORTION = CASE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_UNIQUE = CASE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_VARIABLE = CASE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__CHAINING_FEATURE = CASE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__CROSS_FEATURE = CASE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__END_OWNING_TYPE = CASE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__FEATURE_TARGET = CASE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__FEATURING_TYPE = CASE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_CROSS_SUBSETTING = CASE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_FEATURE_CHAINING = CASE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_FEATURE_INVERTING = CASE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_REDEFINITION = CASE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_REFERENCE_SUBSETTING = CASE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_SUBSETTING = CASE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_TYPE_FEATURING = CASE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNED_TYPING = CASE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNING_FEATURE_MEMBERSHIP = CASE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNING_TYPE = CASE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__TYPE = CASE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_REFERENCE = CASE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_VARIATION = CASE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__MAY_TIME_VARY = CASE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__DEFINITION = CASE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__DIRECTED_USAGE = CASE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_ACTION = CASE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_ALLOCATION = CASE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_ANALYSIS_CASE = CASE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_ATTRIBUTE = CASE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_CALCULATION = CASE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_CASE = CASE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_CONCERN = CASE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_CONNECTION = CASE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_CONSTRAINT = CASE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_ENUMERATION = CASE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_FLOW = CASE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_INTERFACE = CASE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_ITEM = CASE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_METADATA = CASE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_OCCURRENCE = CASE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_PART = CASE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_PORT = CASE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_REFERENCE = CASE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_RENDERING = CASE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_REQUIREMENT = CASE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_STATE = CASE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_TRANSITION = CASE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_USAGE = CASE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_USE_CASE = CASE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_VERIFICATION_CASE = CASE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_VIEW = CASE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__NESTED_VIEWPOINT = CASE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNING_DEFINITION = CASE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OWNING_USAGE = CASE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__USAGE = CASE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__VARIANT = CASE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__VARIANT_MEMBERSHIP = CASE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_INDIVIDUAL = CASE_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__PORTION_KIND = CASE_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__INDIVIDUAL_DEFINITION = CASE_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OCCURRENCE_DEFINITION = CASE_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__BEHAVIOR = CASE_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__PARAMETER = CASE_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__ACTION_DEFINITION = CASE_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__IS_MODEL_LEVEL_EVALUABLE = CASE_USAGE__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__FUNCTION = CASE_USAGE__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__RESULT = CASE_USAGE__RESULT; + + /** + * The feature id for the 'Calculation Definition' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__CALCULATION_DEFINITION = CASE_USAGE__CALCULATION_DEFINITION; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__ACTOR_PARAMETER = CASE_USAGE__ACTOR_PARAMETER; + + /** + * The feature id for the 'Case Definition' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__CASE_DEFINITION = CASE_USAGE__CASE_DEFINITION; + + /** + * The feature id for the 'Objective Requirement' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__OBJECTIVE_REQUIREMENT = CASE_USAGE__OBJECTIVE_REQUIREMENT; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__SUBJECT_PARAMETER = CASE_USAGE__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Included Use Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__INCLUDED_USE_CASE = CASE_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Use Case Definition' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE__USE_CASE_DEFINITION = CASE_USAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Use Case Usage' class. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE_FEATURE_COUNT = CASE_USAGE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___EFFECTIVE_NAME = CASE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___EFFECTIVE_SHORT_NAME = CASE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___ESCAPED_NAME = CASE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___LIBRARY_NAMESPACE = CASE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___PATH = CASE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CASE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CASE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___NAMES_OF__ELEMENT = CASE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___QUALIFICATION_OF__STRING = CASE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___RESOLVE__STRING = CASE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___RESOLVE_GLOBAL__STRING = CASE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___RESOLVE_LOCAL__STRING = CASE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___RESOLVE_VISIBLE__STRING = CASE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___UNQUALIFIED_NAME_OF__STRING = CASE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___VISIBILITY_OF__MEMBERSHIP = CASE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CASE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CASE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___ALL_SUPERTYPES = CASE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___DIRECTION_OF__FEATURE = CASE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CASE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___IS_COMPATIBLE_WITH__TYPE = CASE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___MULTIPLICITIES = CASE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CASE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___SPECIALIZES__TYPE = CASE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CASE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___SUPERTYPES__BOOLEAN = CASE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___ALL_REDEFINED_FEATURES = CASE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___AS_CARTESIAN_PRODUCT = CASE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___CAN_ACCESS__FEATURE = CASE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___DIRECTION_FOR__TYPE = CASE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___IS_CARTESIAN_PRODUCT = CASE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___IS_FEATURED_WITHIN__TYPE = CASE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___IS_FEATURING_TYPE__TYPE = CASE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___IS_OWNED_CROSS_FEATURE = CASE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___NAMING_FEATURE = CASE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___OWNED_CROSS_FEATURE = CASE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___REDEFINES__FEATURE = CASE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___REDEFINES_FROM_LIBRARY__STRING = CASE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CASE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___TYPING_FEATURES = CASE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___REFERENCED_FEATURE_TARGET = CASE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___ARGUMENT__INT = CASE_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___INPUT_PARAMETER__INT = CASE_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___INPUT_PARAMETERS = CASE_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___IS_SUBACTION_USAGE = CASE_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___CHECK_CONDITION__ELEMENT = CASE_USAGE___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___EVALUATE__ELEMENT = CASE_USAGE___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = CASE_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Use Case Usage' class. + * + * + * @generated + * @ordered + */ + int USE_CASE_USAGE_OPERATION_COUNT = CASE_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.IncludeUseCaseUsageImpl Include Use Case Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.IncludeUseCaseUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getIncludeUseCaseUsage() + * @generated + */ + int INCLUDE_USE_CASE_USAGE = 76; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__ALIAS_IDS = USE_CASE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__DECLARED_NAME = USE_CASE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__DECLARED_SHORT_NAME = USE_CASE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__ELEMENT_ID = USE_CASE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_IMPLIED_INCLUDED = USE_CASE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_LIBRARY_ELEMENT = USE_CASE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NAME = USE_CASE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__QUALIFIED_NAME = USE_CASE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__SHORT_NAME = USE_CASE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__DOCUMENTATION = USE_CASE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_ANNOTATION = USE_CASE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_ELEMENT = USE_CASE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_RELATIONSHIP = USE_CASE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNER = USE_CASE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNING_MEMBERSHIP = USE_CASE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNING_NAMESPACE = USE_CASE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNING_RELATIONSHIP = USE_CASE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__TEXTUAL_REPRESENTATION = USE_CASE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IMPORTED_MEMBERSHIP = USE_CASE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__MEMBER = USE_CASE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__MEMBERSHIP = USE_CASE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_IMPORT = USE_CASE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_MEMBER = USE_CASE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_MEMBERSHIP = USE_CASE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_ABSTRACT = USE_CASE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_CONJUGATED = USE_CASE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_SUFFICIENT = USE_CASE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__DIFFERENCING_TYPE = USE_CASE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__DIRECTED_FEATURE = USE_CASE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__END_FEATURE = USE_CASE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__FEATURE = USE_CASE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__FEATURE_MEMBERSHIP = USE_CASE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__INHERITED_FEATURE = USE_CASE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__INHERITED_MEMBERSHIP = USE_CASE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__INPUT = USE_CASE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__INTERSECTING_TYPE = USE_CASE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__MULTIPLICITY = USE_CASE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OUTPUT = USE_CASE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_CONJUGATOR = USE_CASE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_DIFFERENCING = USE_CASE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_DISJOINING = USE_CASE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_END_FEATURE = USE_CASE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_FEATURE = USE_CASE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_FEATURE_MEMBERSHIP = USE_CASE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_INTERSECTING = USE_CASE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_SPECIALIZATION = USE_CASE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_UNIONING = USE_CASE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__UNIONING_TYPE = USE_CASE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__DIRECTION = USE_CASE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_COMPOSITE = USE_CASE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_CONSTANT = USE_CASE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_DERIVED = USE_CASE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_END = USE_CASE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_NONUNIQUE = USE_CASE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_ORDERED = USE_CASE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_PORTION = USE_CASE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_UNIQUE = USE_CASE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_VARIABLE = USE_CASE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__CHAINING_FEATURE = USE_CASE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__CROSS_FEATURE = USE_CASE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__END_OWNING_TYPE = USE_CASE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__FEATURE_TARGET = USE_CASE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__FEATURING_TYPE = USE_CASE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_CROSS_SUBSETTING = USE_CASE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_FEATURE_CHAINING = USE_CASE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_FEATURE_INVERTING = USE_CASE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_REDEFINITION = USE_CASE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_REFERENCE_SUBSETTING = USE_CASE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_SUBSETTING = USE_CASE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_TYPE_FEATURING = USE_CASE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNED_TYPING = USE_CASE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNING_FEATURE_MEMBERSHIP = USE_CASE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNING_TYPE = USE_CASE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__TYPE = USE_CASE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_REFERENCE = USE_CASE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_VARIATION = USE_CASE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__MAY_TIME_VARY = USE_CASE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__DEFINITION = USE_CASE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__DIRECTED_USAGE = USE_CASE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_ACTION = USE_CASE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_ALLOCATION = USE_CASE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_ANALYSIS_CASE = USE_CASE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_ATTRIBUTE = USE_CASE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_CALCULATION = USE_CASE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_CASE = USE_CASE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_CONCERN = USE_CASE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_CONNECTION = USE_CASE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_CONSTRAINT = USE_CASE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_ENUMERATION = USE_CASE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_FLOW = USE_CASE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_INTERFACE = USE_CASE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_ITEM = USE_CASE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_METADATA = USE_CASE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_OCCURRENCE = USE_CASE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_PART = USE_CASE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_PORT = USE_CASE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_REFERENCE = USE_CASE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_RENDERING = USE_CASE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_REQUIREMENT = USE_CASE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_STATE = USE_CASE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_TRANSITION = USE_CASE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_USAGE = USE_CASE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_USE_CASE = USE_CASE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_VERIFICATION_CASE = USE_CASE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_VIEW = USE_CASE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__NESTED_VIEWPOINT = USE_CASE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNING_DEFINITION = USE_CASE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OWNING_USAGE = USE_CASE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__USAGE = USE_CASE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__VARIANT = USE_CASE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__VARIANT_MEMBERSHIP = USE_CASE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_INDIVIDUAL = USE_CASE_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__PORTION_KIND = USE_CASE_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__INDIVIDUAL_DEFINITION = USE_CASE_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OCCURRENCE_DEFINITION = USE_CASE_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__BEHAVIOR = USE_CASE_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__PARAMETER = USE_CASE_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__ACTION_DEFINITION = USE_CASE_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__IS_MODEL_LEVEL_EVALUABLE = USE_CASE_USAGE__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__FUNCTION = USE_CASE_USAGE__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__RESULT = USE_CASE_USAGE__RESULT; + + /** + * The feature id for the 'Calculation Definition' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__CALCULATION_DEFINITION = USE_CASE_USAGE__CALCULATION_DEFINITION; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__ACTOR_PARAMETER = USE_CASE_USAGE__ACTOR_PARAMETER; + + /** + * The feature id for the 'Case Definition' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__CASE_DEFINITION = USE_CASE_USAGE__CASE_DEFINITION; + + /** + * The feature id for the 'Objective Requirement' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__OBJECTIVE_REQUIREMENT = USE_CASE_USAGE__OBJECTIVE_REQUIREMENT; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__SUBJECT_PARAMETER = USE_CASE_USAGE__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Included Use Case' reference list. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__INCLUDED_USE_CASE = USE_CASE_USAGE__INCLUDED_USE_CASE; + + /** + * The feature id for the 'Use Case Definition' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__USE_CASE_DEFINITION = USE_CASE_USAGE__USE_CASE_DEFINITION; + + /** + * The feature id for the 'Event Occurrence' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__EVENT_OCCURRENCE = USE_CASE_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Performed Action' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__PERFORMED_ACTION = USE_CASE_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Use Case Included' reference. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE__USE_CASE_INCLUDED = USE_CASE_USAGE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Include Use Case Usage' class. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE_FEATURE_COUNT = USE_CASE_USAGE_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___EFFECTIVE_NAME = USE_CASE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___EFFECTIVE_SHORT_NAME = USE_CASE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___ESCAPED_NAME = USE_CASE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___LIBRARY_NAMESPACE = USE_CASE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___PATH = USE_CASE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = USE_CASE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = USE_CASE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___NAMES_OF__ELEMENT = USE_CASE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___QUALIFICATION_OF__STRING = USE_CASE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___RESOLVE__STRING = USE_CASE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___RESOLVE_GLOBAL__STRING = USE_CASE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___RESOLVE_LOCAL__STRING = USE_CASE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___RESOLVE_VISIBLE__STRING = USE_CASE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___UNQUALIFIED_NAME_OF__STRING = USE_CASE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___VISIBILITY_OF__MEMBERSHIP = USE_CASE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = USE_CASE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = USE_CASE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___ALL_SUPERTYPES = USE_CASE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___DIRECTION_OF__FEATURE = USE_CASE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = USE_CASE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USE_CASE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USE_CASE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___IS_COMPATIBLE_WITH__TYPE = USE_CASE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___MULTIPLICITIES = USE_CASE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USE_CASE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = USE_CASE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___SPECIALIZES__TYPE = USE_CASE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = USE_CASE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___SUPERTYPES__BOOLEAN = USE_CASE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___ALL_REDEFINED_FEATURES = USE_CASE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___AS_CARTESIAN_PRODUCT = USE_CASE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___CAN_ACCESS__FEATURE = USE_CASE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___DIRECTION_FOR__TYPE = USE_CASE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___IS_CARTESIAN_PRODUCT = USE_CASE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___IS_FEATURED_WITHIN__TYPE = USE_CASE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___IS_FEATURING_TYPE__TYPE = USE_CASE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___IS_OWNED_CROSS_FEATURE = USE_CASE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___NAMING_FEATURE = USE_CASE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___OWNED_CROSS_FEATURE = USE_CASE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___REDEFINES__FEATURE = USE_CASE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___REDEFINES_FROM_LIBRARY__STRING = USE_CASE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = USE_CASE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___TYPING_FEATURES = USE_CASE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___REFERENCED_FEATURE_TARGET = USE_CASE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___ARGUMENT__INT = USE_CASE_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___INPUT_PARAMETER__INT = USE_CASE_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___INPUT_PARAMETERS = USE_CASE_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___IS_SUBACTION_USAGE = USE_CASE_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___CHECK_CONDITION__ELEMENT = USE_CASE_USAGE___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___EVALUATE__ELEMENT = USE_CASE_USAGE___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = USE_CASE_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Include Use Case Usage' class. + * + * + * @generated + * @ordered + */ + int INCLUDE_USE_CASE_USAGE_OPERATION_COUNT = USE_CASE_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.IndexExpressionImpl Index Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.IndexExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getIndexExpression() + * @generated + */ + int INDEX_EXPRESSION = 77; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__ALIAS_IDS = OPERATOR_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__DECLARED_NAME = OPERATOR_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__DECLARED_SHORT_NAME = OPERATOR_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__ELEMENT_ID = OPERATOR_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_IMPLIED_INCLUDED = OPERATOR_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_LIBRARY_ELEMENT = OPERATOR_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__NAME = OPERATOR_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__QUALIFIED_NAME = OPERATOR_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__SHORT_NAME = OPERATOR_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__DOCUMENTATION = OPERATOR_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_ANNOTATION = OPERATOR_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_ELEMENT = OPERATOR_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_RELATIONSHIP = OPERATOR_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNER = OPERATOR_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNING_MEMBERSHIP = OPERATOR_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNING_NAMESPACE = OPERATOR_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNING_RELATIONSHIP = OPERATOR_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__TEXTUAL_REPRESENTATION = OPERATOR_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IMPORTED_MEMBERSHIP = OPERATOR_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__MEMBER = OPERATOR_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__MEMBERSHIP = OPERATOR_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_IMPORT = OPERATOR_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_MEMBER = OPERATOR_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_MEMBERSHIP = OPERATOR_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_ABSTRACT = OPERATOR_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_CONJUGATED = OPERATOR_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_SUFFICIENT = OPERATOR_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__DIFFERENCING_TYPE = OPERATOR_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__DIRECTED_FEATURE = OPERATOR_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__END_FEATURE = OPERATOR_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__FEATURE = OPERATOR_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__INHERITED_FEATURE = OPERATOR_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__INHERITED_MEMBERSHIP = OPERATOR_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__INPUT = OPERATOR_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__INTERSECTING_TYPE = OPERATOR_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__MULTIPLICITY = OPERATOR_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OUTPUT = OPERATOR_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_CONJUGATOR = OPERATOR_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_DIFFERENCING = OPERATOR_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_DISJOINING = OPERATOR_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_END_FEATURE = OPERATOR_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_FEATURE = OPERATOR_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_INTERSECTING = OPERATOR_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_SPECIALIZATION = OPERATOR_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_UNIONING = OPERATOR_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__UNIONING_TYPE = OPERATOR_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__DIRECTION = OPERATOR_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_COMPOSITE = OPERATOR_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_CONSTANT = OPERATOR_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_DERIVED = OPERATOR_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_END = OPERATOR_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_NONUNIQUE = OPERATOR_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_ORDERED = OPERATOR_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_PORTION = OPERATOR_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_UNIQUE = OPERATOR_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_VARIABLE = OPERATOR_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__CHAINING_FEATURE = OPERATOR_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__CROSS_FEATURE = OPERATOR_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__END_OWNING_TYPE = OPERATOR_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__FEATURE_TARGET = OPERATOR_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__FEATURING_TYPE = OPERATOR_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_CROSS_SUBSETTING = OPERATOR_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_FEATURE_CHAINING = OPERATOR_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_FEATURE_INVERTING = OPERATOR_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_REDEFINITION = OPERATOR_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_REFERENCE_SUBSETTING = OPERATOR_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_SUBSETTING = OPERATOR_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_TYPE_FEATURING = OPERATOR_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNED_TYPING = OPERATOR_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OWNING_TYPE = OPERATOR_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__TYPE = OPERATOR_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__BEHAVIOR = OPERATOR_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__PARAMETER = OPERATOR_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = OPERATOR_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__FUNCTION = OPERATOR_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__RESULT = OPERATOR_EXPRESSION__RESULT; + + /** + * The feature id for the 'Argument' reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__ARGUMENT = OPERATOR_EXPRESSION__ARGUMENT; + + /** + * The feature id for the 'Instantiated Type' reference. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__INSTANTIATED_TYPE = OPERATOR_EXPRESSION__INSTANTIATED_TYPE; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OPERAND = OPERATOR_EXPRESSION__OPERAND; + + /** + * The feature id for the 'Operator' attribute. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION__OPERATOR = OPERATOR_EXPRESSION__OPERATOR; + + /** + * The number of structural features of the 'Index Expression' class. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION_FEATURE_COUNT = OPERATOR_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___EFFECTIVE_NAME = OPERATOR_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___EFFECTIVE_SHORT_NAME = OPERATOR_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___ESCAPED_NAME = OPERATOR_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___LIBRARY_NAMESPACE = OPERATOR_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___PATH = OPERATOR_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = OPERATOR_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OPERATOR_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___NAMES_OF__ELEMENT = OPERATOR_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___QUALIFICATION_OF__STRING = OPERATOR_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___RESOLVE__STRING = OPERATOR_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___RESOLVE_GLOBAL__STRING = OPERATOR_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___RESOLVE_LOCAL__STRING = OPERATOR_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___RESOLVE_VISIBLE__STRING = OPERATOR_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = OPERATOR_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = OPERATOR_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OPERATOR_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OPERATOR_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___ALL_SUPERTYPES = OPERATOR_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___DIRECTION_OF__FEATURE = OPERATOR_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OPERATOR_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = OPERATOR_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___MULTIPLICITIES = OPERATOR_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = OPERATOR_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___SPECIALIZES__TYPE = OPERATOR_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = OPERATOR_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___SUPERTYPES__BOOLEAN = OPERATOR_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___ALL_REDEFINED_FEATURES = OPERATOR_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___AS_CARTESIAN_PRODUCT = OPERATOR_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___CAN_ACCESS__FEATURE = OPERATOR_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___DIRECTION_FOR__TYPE = OPERATOR_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___IS_CARTESIAN_PRODUCT = OPERATOR_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___IS_FEATURED_WITHIN__TYPE = OPERATOR_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___IS_FEATURING_TYPE__TYPE = OPERATOR_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___IS_OWNED_CROSS_FEATURE = OPERATOR_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___NAMING_FEATURE = OPERATOR_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___OWNED_CROSS_FEATURE = OPERATOR_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___REDEFINES__FEATURE = OPERATOR_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = OPERATOR_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = OPERATOR_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___TYPING_FEATURES = OPERATOR_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___CHECK_CONDITION__ELEMENT = OPERATOR_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___EVALUATE__ELEMENT = OPERATOR_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = OPERATOR_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The operation id for the 'Instantiated Type' operation. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION___INSTANTIATED_TYPE = OPERATOR_EXPRESSION___INSTANTIATED_TYPE; + + /** + * The number of operations of the 'Index Expression' class. + * + * + * @generated + * @ordered + */ + int INDEX_EXPRESSION_OPERATION_COUNT = OPERATOR_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.InteractionImpl Interaction}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InteractionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInteraction() + * @generated + */ + int INTERACTION = 79; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int INTERACTION__ALIAS_IDS = ASSOCIATION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__DECLARED_NAME = ASSOCIATION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__DECLARED_SHORT_NAME = ASSOCIATION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__ELEMENT_ID = ASSOCIATION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__IS_IMPLIED_INCLUDED = ASSOCIATION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__IS_LIBRARY_ELEMENT = ASSOCIATION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__NAME = ASSOCIATION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__QUALIFIED_NAME = ASSOCIATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__SHORT_NAME = ASSOCIATION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__DOCUMENTATION = ASSOCIATION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_ANNOTATION = ASSOCIATION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_ELEMENT = ASSOCIATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_RELATIONSHIP = ASSOCIATION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNER = ASSOCIATION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNING_MEMBERSHIP = ASSOCIATION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNING_NAMESPACE = ASSOCIATION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNING_RELATIONSHIP = ASSOCIATION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__TEXTUAL_REPRESENTATION = ASSOCIATION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__IMPORTED_MEMBERSHIP = ASSOCIATION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__MEMBER = ASSOCIATION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__MEMBERSHIP = ASSOCIATION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_IMPORT = ASSOCIATION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_MEMBER = ASSOCIATION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_MEMBERSHIP = ASSOCIATION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__IS_ABSTRACT = ASSOCIATION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__IS_CONJUGATED = ASSOCIATION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__IS_SUFFICIENT = ASSOCIATION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__DIFFERENCING_TYPE = ASSOCIATION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__DIRECTED_FEATURE = ASSOCIATION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__END_FEATURE = ASSOCIATION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__FEATURE = ASSOCIATION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__FEATURE_MEMBERSHIP = ASSOCIATION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__INHERITED_FEATURE = ASSOCIATION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__INHERITED_MEMBERSHIP = ASSOCIATION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__INPUT = ASSOCIATION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__INTERSECTING_TYPE = ASSOCIATION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__MULTIPLICITY = ASSOCIATION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OUTPUT = ASSOCIATION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_CONJUGATOR = ASSOCIATION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_DIFFERENCING = ASSOCIATION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_DISJOINING = ASSOCIATION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_END_FEATURE = ASSOCIATION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_FEATURE = ASSOCIATION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_FEATURE_MEMBERSHIP = ASSOCIATION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_INTERSECTING = ASSOCIATION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_SPECIALIZATION = ASSOCIATION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_UNIONING = ASSOCIATION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__UNIONING_TYPE = ASSOCIATION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_SUBCLASSIFICATION = ASSOCIATION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int INTERACTION__IS_IMPLIED = ASSOCIATION__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNED_RELATED_ELEMENT = ASSOCIATION__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__OWNING_RELATED_ELEMENT = ASSOCIATION__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__RELATED_ELEMENT = ASSOCIATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__SOURCE = ASSOCIATION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__TARGET = ASSOCIATION__TARGET; + + /** + * The feature id for the 'Association End' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__ASSOCIATION_END = ASSOCIATION__ASSOCIATION_END; + + /** + * The feature id for the 'Related Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__RELATED_TYPE = ASSOCIATION__RELATED_TYPE; + + /** + * The feature id for the 'Source Type' reference. + * + * + * @generated + * @ordered + */ + int INTERACTION__SOURCE_TYPE = ASSOCIATION__SOURCE_TYPE; + + /** + * The feature id for the 'Target Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__TARGET_TYPE = ASSOCIATION__TARGET_TYPE; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__PARAMETER = ASSOCIATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int INTERACTION__STEP = ASSOCIATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Interaction' class. + * + * + * @generated + * @ordered + */ + int INTERACTION_FEATURE_COUNT = ASSOCIATION_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___EFFECTIVE_NAME = ASSOCIATION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___EFFECTIVE_SHORT_NAME = ASSOCIATION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___ESCAPED_NAME = ASSOCIATION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___LIBRARY_NAMESPACE = ASSOCIATION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___PATH = ASSOCIATION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___IMPORTED_MEMBERSHIPS__ELIST = ASSOCIATION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ASSOCIATION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___NAMES_OF__ELEMENT = ASSOCIATION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___QUALIFICATION_OF__STRING = ASSOCIATION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___RESOLVE__STRING = ASSOCIATION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___RESOLVE_GLOBAL__STRING = ASSOCIATION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___RESOLVE_LOCAL__STRING = ASSOCIATION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___RESOLVE_VISIBLE__STRING = ASSOCIATION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___UNQUALIFIED_NAME_OF__STRING = ASSOCIATION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___VISIBILITY_OF__MEMBERSHIP = ASSOCIATION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ASSOCIATION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ASSOCIATION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___ALL_SUPERTYPES = ASSOCIATION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___DIRECTION_OF__FEATURE = ASSOCIATION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ASSOCIATION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ASSOCIATION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ASSOCIATION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___IS_COMPATIBLE_WITH__TYPE = ASSOCIATION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___MULTIPLICITIES = ASSOCIATION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ASSOCIATION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___REMOVE_REDEFINED_FEATURES__ELIST = ASSOCIATION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___SPECIALIZES__TYPE = ASSOCIATION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___SPECIALIZES_FROM_LIBRARY__STRING = ASSOCIATION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INTERACTION___SUPERTYPES__BOOLEAN = ASSOCIATION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Interaction' class. + * + * + * @generated + * @ordered + */ + int INTERACTION_OPERATION_COUNT = ASSOCIATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.InterfaceDefinitionImpl Interface Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InterfaceDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInterfaceDefinition() + * @generated + */ + int INTERFACE_DEFINITION = 80; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__ALIAS_IDS = CONNECTION_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__DECLARED_NAME = CONNECTION_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__DECLARED_SHORT_NAME = CONNECTION_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__ELEMENT_ID = CONNECTION_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__IS_IMPLIED_INCLUDED = CONNECTION_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__IS_LIBRARY_ELEMENT = CONNECTION_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__NAME = CONNECTION_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__QUALIFIED_NAME = CONNECTION_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__SHORT_NAME = CONNECTION_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__DOCUMENTATION = CONNECTION_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_ANNOTATION = CONNECTION_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_ELEMENT = CONNECTION_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_RELATIONSHIP = CONNECTION_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNER = CONNECTION_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNING_MEMBERSHIP = CONNECTION_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNING_NAMESPACE = CONNECTION_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNING_RELATIONSHIP = CONNECTION_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__TEXTUAL_REPRESENTATION = CONNECTION_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__IMPORTED_MEMBERSHIP = CONNECTION_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__MEMBER = CONNECTION_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__MEMBERSHIP = CONNECTION_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_IMPORT = CONNECTION_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_MEMBER = CONNECTION_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_MEMBERSHIP = CONNECTION_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__IS_ABSTRACT = CONNECTION_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__IS_CONJUGATED = CONNECTION_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__IS_SUFFICIENT = CONNECTION_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__DIFFERENCING_TYPE = CONNECTION_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__DIRECTED_FEATURE = CONNECTION_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__END_FEATURE = CONNECTION_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__FEATURE = CONNECTION_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__FEATURE_MEMBERSHIP = CONNECTION_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__INHERITED_FEATURE = CONNECTION_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__INHERITED_MEMBERSHIP = CONNECTION_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__INPUT = CONNECTION_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__INTERSECTING_TYPE = CONNECTION_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__MULTIPLICITY = CONNECTION_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OUTPUT = CONNECTION_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_CONJUGATOR = CONNECTION_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_DIFFERENCING = CONNECTION_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_DISJOINING = CONNECTION_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_END_FEATURE = CONNECTION_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_FEATURE = CONNECTION_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_FEATURE_MEMBERSHIP = CONNECTION_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_INTERSECTING = CONNECTION_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_SPECIALIZATION = CONNECTION_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_UNIONING = CONNECTION_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__UNIONING_TYPE = CONNECTION_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_SUBCLASSIFICATION = CONNECTION_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__IS_VARIATION = CONNECTION_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__DIRECTED_USAGE = CONNECTION_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_ACTION = CONNECTION_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_ALLOCATION = CONNECTION_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_ANALYSIS_CASE = CONNECTION_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_ATTRIBUTE = CONNECTION_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_CALCULATION = CONNECTION_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_CASE = CONNECTION_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_CONCERN = CONNECTION_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_CONNECTION = CONNECTION_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_CONSTRAINT = CONNECTION_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_ENUMERATION = CONNECTION_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_FLOW = CONNECTION_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_INTERFACE = CONNECTION_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_ITEM = CONNECTION_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_METADATA = CONNECTION_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_OCCURRENCE = CONNECTION_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_PART = CONNECTION_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_PORT = CONNECTION_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_REFERENCE = CONNECTION_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_RENDERING = CONNECTION_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_REQUIREMENT = CONNECTION_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_STATE = CONNECTION_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_TRANSITION = CONNECTION_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_USAGE = CONNECTION_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_USE_CASE = CONNECTION_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_VERIFICATION_CASE = CONNECTION_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_VIEW = CONNECTION_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_VIEWPOINT = CONNECTION_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__USAGE = CONNECTION_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__VARIANT = CONNECTION_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__VARIANT_MEMBERSHIP = CONNECTION_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__IS_INDIVIDUAL = CONNECTION_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__IS_IMPLIED = CONNECTION_DEFINITION__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNED_RELATED_ELEMENT = CONNECTION_DEFINITION__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__OWNING_RELATED_ELEMENT = CONNECTION_DEFINITION__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__RELATED_ELEMENT = CONNECTION_DEFINITION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__SOURCE = CONNECTION_DEFINITION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__TARGET = CONNECTION_DEFINITION__TARGET; + + /** + * The feature id for the 'Association End' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__ASSOCIATION_END = CONNECTION_DEFINITION__ASSOCIATION_END; + + /** + * The feature id for the 'Related Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__RELATED_TYPE = CONNECTION_DEFINITION__RELATED_TYPE; + + /** + * The feature id for the 'Source Type' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__SOURCE_TYPE = CONNECTION_DEFINITION__SOURCE_TYPE; + + /** + * The feature id for the 'Target Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__TARGET_TYPE = CONNECTION_DEFINITION__TARGET_TYPE; + + /** + * The feature id for the 'Connection End' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__CONNECTION_END = CONNECTION_DEFINITION__CONNECTION_END; + + /** + * The feature id for the 'Interface End' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION__INTERFACE_END = CONNECTION_DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Interface Definition' class. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION_FEATURE_COUNT = CONNECTION_DEFINITION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___EFFECTIVE_NAME = CONNECTION_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___EFFECTIVE_SHORT_NAME = CONNECTION_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___ESCAPED_NAME = CONNECTION_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___LIBRARY_NAMESPACE = CONNECTION_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___PATH = CONNECTION_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = CONNECTION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___NAMES_OF__ELEMENT = CONNECTION_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___QUALIFICATION_OF__STRING = CONNECTION_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___RESOLVE__STRING = CONNECTION_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___RESOLVE_GLOBAL__STRING = CONNECTION_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___RESOLVE_LOCAL__STRING = CONNECTION_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___RESOLVE_VISIBLE__STRING = CONNECTION_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___UNQUALIFIED_NAME_OF__STRING = CONNECTION_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___VISIBILITY_OF__MEMBERSHIP = CONNECTION_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___ALL_SUPERTYPES = CONNECTION_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___DIRECTION_OF__FEATURE = CONNECTION_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___IS_COMPATIBLE_WITH__TYPE = CONNECTION_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___MULTIPLICITIES = CONNECTION_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___SPECIALIZES__TYPE = CONNECTION_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION___SUPERTYPES__BOOLEAN = CONNECTION_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Interface Definition' class. + * + * + * @generated + * @ordered + */ + int INTERFACE_DEFINITION_OPERATION_COUNT = CONNECTION_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.InterfaceUsageImpl Interface Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InterfaceUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInterfaceUsage() + * @generated + */ + int INTERFACE_USAGE = 81; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__ALIAS_IDS = CONNECTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__DECLARED_NAME = CONNECTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__DECLARED_SHORT_NAME = CONNECTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__ELEMENT_ID = CONNECTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_IMPLIED_INCLUDED = CONNECTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_LIBRARY_ELEMENT = CONNECTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NAME = CONNECTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__QUALIFIED_NAME = CONNECTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__SHORT_NAME = CONNECTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__DOCUMENTATION = CONNECTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_ANNOTATION = CONNECTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_ELEMENT = CONNECTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_RELATIONSHIP = CONNECTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNER = CONNECTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNING_MEMBERSHIP = CONNECTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNING_NAMESPACE = CONNECTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNING_RELATIONSHIP = CONNECTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__TEXTUAL_REPRESENTATION = CONNECTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IMPORTED_MEMBERSHIP = CONNECTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__MEMBER = CONNECTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__MEMBERSHIP = CONNECTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_IMPORT = CONNECTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_MEMBER = CONNECTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_MEMBERSHIP = CONNECTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_ABSTRACT = CONNECTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_CONJUGATED = CONNECTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_SUFFICIENT = CONNECTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__DIFFERENCING_TYPE = CONNECTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__DIRECTED_FEATURE = CONNECTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__END_FEATURE = CONNECTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__FEATURE = CONNECTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__FEATURE_MEMBERSHIP = CONNECTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__INHERITED_FEATURE = CONNECTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__INHERITED_MEMBERSHIP = CONNECTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__INPUT = CONNECTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__INTERSECTING_TYPE = CONNECTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__MULTIPLICITY = CONNECTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OUTPUT = CONNECTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_CONJUGATOR = CONNECTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_DIFFERENCING = CONNECTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_DISJOINING = CONNECTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_END_FEATURE = CONNECTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_FEATURE = CONNECTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_FEATURE_MEMBERSHIP = CONNECTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_INTERSECTING = CONNECTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_SPECIALIZATION = CONNECTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_UNIONING = CONNECTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__UNIONING_TYPE = CONNECTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__DIRECTION = CONNECTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_COMPOSITE = CONNECTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_CONSTANT = CONNECTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_DERIVED = CONNECTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_END = CONNECTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_NONUNIQUE = CONNECTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_ORDERED = CONNECTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_PORTION = CONNECTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_UNIQUE = CONNECTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_VARIABLE = CONNECTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__CHAINING_FEATURE = CONNECTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__CROSS_FEATURE = CONNECTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__END_OWNING_TYPE = CONNECTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__FEATURE_TARGET = CONNECTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__FEATURING_TYPE = CONNECTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_CROSS_SUBSETTING = CONNECTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_FEATURE_CHAINING = CONNECTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_FEATURE_INVERTING = CONNECTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_REDEFINITION = CONNECTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_REFERENCE_SUBSETTING = CONNECTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_SUBSETTING = CONNECTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_TYPE_FEATURING = CONNECTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_TYPING = CONNECTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNING_FEATURE_MEMBERSHIP = CONNECTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNING_TYPE = CONNECTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__TYPE = CONNECTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_REFERENCE = CONNECTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_VARIATION = CONNECTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__MAY_TIME_VARY = CONNECTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__DEFINITION = CONNECTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__DIRECTED_USAGE = CONNECTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_ACTION = CONNECTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_ALLOCATION = CONNECTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_ANALYSIS_CASE = CONNECTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_ATTRIBUTE = CONNECTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_CALCULATION = CONNECTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_CASE = CONNECTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_CONCERN = CONNECTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_CONNECTION = CONNECTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_CONSTRAINT = CONNECTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_ENUMERATION = CONNECTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_FLOW = CONNECTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_INTERFACE = CONNECTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_ITEM = CONNECTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_METADATA = CONNECTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_OCCURRENCE = CONNECTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_PART = CONNECTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_PORT = CONNECTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_REFERENCE = CONNECTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_RENDERING = CONNECTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_REQUIREMENT = CONNECTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_STATE = CONNECTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_TRANSITION = CONNECTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_USAGE = CONNECTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_USE_CASE = CONNECTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_VERIFICATION_CASE = CONNECTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_VIEW = CONNECTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__NESTED_VIEWPOINT = CONNECTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNING_DEFINITION = CONNECTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNING_USAGE = CONNECTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__USAGE = CONNECTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__VARIANT = CONNECTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__VARIANT_MEMBERSHIP = CONNECTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_IMPLIED = CONNECTION_USAGE__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNED_RELATED_ELEMENT = CONNECTION_USAGE__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OWNING_RELATED_ELEMENT = CONNECTION_USAGE__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__RELATED_ELEMENT = CONNECTION_USAGE__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__SOURCE = CONNECTION_USAGE__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__TARGET = CONNECTION_USAGE__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__ASSOCIATION = CONNECTION_USAGE__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__CONNECTOR_END = CONNECTION_USAGE__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__DEFAULT_FEATURING_TYPE = CONNECTION_USAGE__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__RELATED_FEATURE = CONNECTION_USAGE__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__SOURCE_FEATURE = CONNECTION_USAGE__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__TARGET_FEATURE = CONNECTION_USAGE__TARGET_FEATURE; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__IS_INDIVIDUAL = CONNECTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__PORTION_KIND = CONNECTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__INDIVIDUAL_DEFINITION = CONNECTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__OCCURRENCE_DEFINITION = CONNECTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Item Definition' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__ITEM_DEFINITION = CONNECTION_USAGE__ITEM_DEFINITION; + + /** + * The feature id for the 'Part Definition' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__PART_DEFINITION = CONNECTION_USAGE__PART_DEFINITION; + + /** + * The feature id for the 'Connection Definition' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__CONNECTION_DEFINITION = CONNECTION_USAGE__CONNECTION_DEFINITION; + + /** + * The feature id for the 'Interface Definition' reference list. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE__INTERFACE_DEFINITION = CONNECTION_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Interface Usage' class. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE_FEATURE_COUNT = CONNECTION_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___EFFECTIVE_NAME = CONNECTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___EFFECTIVE_SHORT_NAME = CONNECTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___ESCAPED_NAME = CONNECTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___LIBRARY_NAMESPACE = CONNECTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___PATH = CONNECTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CONNECTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___NAMES_OF__ELEMENT = CONNECTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___QUALIFICATION_OF__STRING = CONNECTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___RESOLVE__STRING = CONNECTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___RESOLVE_GLOBAL__STRING = CONNECTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___RESOLVE_LOCAL__STRING = CONNECTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___RESOLVE_VISIBLE__STRING = CONNECTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___UNQUALIFIED_NAME_OF__STRING = CONNECTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___VISIBILITY_OF__MEMBERSHIP = CONNECTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___ALL_SUPERTYPES = CONNECTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___DIRECTION_OF__FEATURE = CONNECTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___IS_COMPATIBLE_WITH__TYPE = CONNECTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___MULTIPLICITIES = CONNECTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___SPECIALIZES__TYPE = CONNECTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___SUPERTYPES__BOOLEAN = CONNECTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___ALL_REDEFINED_FEATURES = CONNECTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___AS_CARTESIAN_PRODUCT = CONNECTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___CAN_ACCESS__FEATURE = CONNECTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___DIRECTION_FOR__TYPE = CONNECTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___IS_CARTESIAN_PRODUCT = CONNECTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___IS_FEATURED_WITHIN__TYPE = CONNECTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___IS_FEATURING_TYPE__TYPE = CONNECTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___IS_OWNED_CROSS_FEATURE = CONNECTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___NAMING_FEATURE = CONNECTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___OWNED_CROSS_FEATURE = CONNECTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___REDEFINES__FEATURE = CONNECTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___REDEFINES_FROM_LIBRARY__STRING = CONNECTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CONNECTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___TYPING_FEATURES = CONNECTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE___REFERENCED_FEATURE_TARGET = CONNECTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Interface Usage' class. + * + * + * @generated + * @ordered + */ + int INTERFACE_USAGE_OPERATION_COUNT = CONNECTION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.IntersectingImpl Intersecting}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.IntersectingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getIntersecting() + * @generated + */ + int INTERSECTING = 82; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int INTERSECTING__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERSECTING__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERSECTING__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int INTERSECTING__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int INTERSECTING__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int INTERSECTING__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERSECTING__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERSECTING__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INTERSECTING__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int INTERSECTING__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int INTERSECTING__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERSECTING__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERSECTING__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INTERSECTING__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int INTERSECTING__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int INTERSECTING__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int INTERSECTING__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int INTERSECTING__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int INTERSECTING__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int INTERSECTING__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int INTERSECTING__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int INTERSECTING__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int INTERSECTING__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int INTERSECTING__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Intersecting Type' reference. + * + * + * @generated + * @ordered + */ + int INTERSECTING__INTERSECTING_TYPE = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Type Intersected' reference. + * + * + * @generated + * @ordered + */ + int INTERSECTING__TYPE_INTERSECTED = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Intersecting' class. + * + * + * @generated + * @ordered + */ + int INTERSECTING_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int INTERSECTING___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int INTERSECTING___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int INTERSECTING___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int INTERSECTING___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int INTERSECTING___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Intersecting' class. + * + * + * @generated + * @ordered + */ + int INTERSECTING_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.InvariantImpl Invariant}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InvariantImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInvariant() + * @generated + */ + int INVARIANT = 83; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int INVARIANT__ALIAS_IDS = BOOLEAN_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__DECLARED_NAME = BOOLEAN_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__DECLARED_SHORT_NAME = BOOLEAN_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__ELEMENT_ID = BOOLEAN_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_IMPLIED_INCLUDED = BOOLEAN_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_LIBRARY_ELEMENT = BOOLEAN_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__NAME = BOOLEAN_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__QUALIFIED_NAME = BOOLEAN_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__SHORT_NAME = BOOLEAN_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__DOCUMENTATION = BOOLEAN_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_ANNOTATION = BOOLEAN_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_ELEMENT = BOOLEAN_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_RELATIONSHIP = BOOLEAN_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNER = BOOLEAN_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNING_MEMBERSHIP = BOOLEAN_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNING_NAMESPACE = BOOLEAN_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNING_RELATIONSHIP = BOOLEAN_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__TEXTUAL_REPRESENTATION = BOOLEAN_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__IMPORTED_MEMBERSHIP = BOOLEAN_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__MEMBER = BOOLEAN_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__MEMBERSHIP = BOOLEAN_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_IMPORT = BOOLEAN_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_MEMBER = BOOLEAN_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_MEMBERSHIP = BOOLEAN_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_ABSTRACT = BOOLEAN_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_CONJUGATED = BOOLEAN_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_SUFFICIENT = BOOLEAN_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__DIFFERENCING_TYPE = BOOLEAN_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__DIRECTED_FEATURE = BOOLEAN_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__END_FEATURE = BOOLEAN_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__FEATURE = BOOLEAN_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__FEATURE_MEMBERSHIP = BOOLEAN_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__INHERITED_FEATURE = BOOLEAN_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__INHERITED_MEMBERSHIP = BOOLEAN_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__INPUT = BOOLEAN_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__INTERSECTING_TYPE = BOOLEAN_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__MULTIPLICITY = BOOLEAN_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OUTPUT = BOOLEAN_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_CONJUGATOR = BOOLEAN_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_DIFFERENCING = BOOLEAN_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_DISJOINING = BOOLEAN_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_END_FEATURE = BOOLEAN_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_FEATURE = BOOLEAN_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_FEATURE_MEMBERSHIP = BOOLEAN_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_INTERSECTING = BOOLEAN_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_SPECIALIZATION = BOOLEAN_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_UNIONING = BOOLEAN_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__UNIONING_TYPE = BOOLEAN_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__DIRECTION = BOOLEAN_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_COMPOSITE = BOOLEAN_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_CONSTANT = BOOLEAN_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_DERIVED = BOOLEAN_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_END = BOOLEAN_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_NONUNIQUE = BOOLEAN_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_ORDERED = BOOLEAN_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_PORTION = BOOLEAN_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_UNIQUE = BOOLEAN_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_VARIABLE = BOOLEAN_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__CHAINING_FEATURE = BOOLEAN_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__CROSS_FEATURE = BOOLEAN_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__END_OWNING_TYPE = BOOLEAN_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__FEATURE_TARGET = BOOLEAN_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__FEATURING_TYPE = BOOLEAN_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_CROSS_SUBSETTING = BOOLEAN_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_FEATURE_CHAINING = BOOLEAN_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_FEATURE_INVERTING = BOOLEAN_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_REDEFINITION = BOOLEAN_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_REFERENCE_SUBSETTING = BOOLEAN_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_SUBSETTING = BOOLEAN_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_TYPE_FEATURING = BOOLEAN_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNED_TYPING = BOOLEAN_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNING_FEATURE_MEMBERSHIP = BOOLEAN_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__OWNING_TYPE = BOOLEAN_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__TYPE = BOOLEAN_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__BEHAVIOR = BOOLEAN_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int INVARIANT__PARAMETER = BOOLEAN_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_MODEL_LEVEL_EVALUABLE = BOOLEAN_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__FUNCTION = BOOLEAN_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__RESULT = BOOLEAN_EXPRESSION__RESULT; + + /** + * The feature id for the 'Predicate' reference. + * + * + * @generated + * @ordered + */ + int INVARIANT__PREDICATE = BOOLEAN_EXPRESSION__PREDICATE; + + /** + * The feature id for the 'Is Negated' attribute. + * + * + * @generated + * @ordered + */ + int INVARIANT__IS_NEGATED = BOOLEAN_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Invariant' class. + * + * + * @generated + * @ordered + */ + int INVARIANT_FEATURE_COUNT = BOOLEAN_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___EFFECTIVE_NAME = BOOLEAN_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___EFFECTIVE_SHORT_NAME = BOOLEAN_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___ESCAPED_NAME = BOOLEAN_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___LIBRARY_NAMESPACE = BOOLEAN_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___PATH = BOOLEAN_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___IMPORTED_MEMBERSHIPS__ELIST = BOOLEAN_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = BOOLEAN_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___NAMES_OF__ELEMENT = BOOLEAN_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___QUALIFICATION_OF__STRING = BOOLEAN_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___RESOLVE__STRING = BOOLEAN_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___RESOLVE_GLOBAL__STRING = BOOLEAN_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___RESOLVE_LOCAL__STRING = BOOLEAN_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___RESOLVE_VISIBLE__STRING = BOOLEAN_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___UNQUALIFIED_NAME_OF__STRING = BOOLEAN_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___VISIBILITY_OF__MEMBERSHIP = BOOLEAN_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = BOOLEAN_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = BOOLEAN_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___ALL_SUPERTYPES = BOOLEAN_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___DIRECTION_OF__FEATURE = BOOLEAN_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = BOOLEAN_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = BOOLEAN_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = BOOLEAN_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___IS_COMPATIBLE_WITH__TYPE = BOOLEAN_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___MULTIPLICITIES = BOOLEAN_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = BOOLEAN_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___REMOVE_REDEFINED_FEATURES__ELIST = BOOLEAN_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___SPECIALIZES__TYPE = BOOLEAN_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___SPECIALIZES_FROM_LIBRARY__STRING = BOOLEAN_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___SUPERTYPES__BOOLEAN = BOOLEAN_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___ALL_REDEFINED_FEATURES = BOOLEAN_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___AS_CARTESIAN_PRODUCT = BOOLEAN_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___CAN_ACCESS__FEATURE = BOOLEAN_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___DIRECTION_FOR__TYPE = BOOLEAN_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___IS_CARTESIAN_PRODUCT = BOOLEAN_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___IS_FEATURED_WITHIN__TYPE = BOOLEAN_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___IS_FEATURING_TYPE__TYPE = BOOLEAN_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___IS_OWNED_CROSS_FEATURE = BOOLEAN_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___NAMING_FEATURE = BOOLEAN_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___OWNED_CROSS_FEATURE = BOOLEAN_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___REDEFINES__FEATURE = BOOLEAN_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___REDEFINES_FROM_LIBRARY__STRING = BOOLEAN_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___SUBSETS_CHAIN__FEATURE_FEATURE = BOOLEAN_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___TYPING_FEATURES = BOOLEAN_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___CHECK_CONDITION__ELEMENT = BOOLEAN_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___EVALUATE__ELEMENT = BOOLEAN_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int INVARIANT___MODEL_LEVEL_EVALUABLE__ELIST = BOOLEAN_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Invariant' class. + * + * + * @generated + * @ordered + */ + int INVARIANT_OPERATION_COUNT = BOOLEAN_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ItemUsageImpl Item Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ItemUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getItemUsage() + * @generated + */ + int ITEM_USAGE = 86; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__ALIAS_IDS = OCCURRENCE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__DECLARED_NAME = OCCURRENCE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__DECLARED_SHORT_NAME = OCCURRENCE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__ELEMENT_ID = OCCURRENCE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_IMPLIED_INCLUDED = OCCURRENCE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_LIBRARY_ELEMENT = OCCURRENCE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NAME = OCCURRENCE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__QUALIFIED_NAME = OCCURRENCE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__SHORT_NAME = OCCURRENCE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__DOCUMENTATION = OCCURRENCE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_ANNOTATION = OCCURRENCE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_ELEMENT = OCCURRENCE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_RELATIONSHIP = OCCURRENCE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNER = OCCURRENCE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNING_MEMBERSHIP = OCCURRENCE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNING_NAMESPACE = OCCURRENCE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNING_RELATIONSHIP = OCCURRENCE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__TEXTUAL_REPRESENTATION = OCCURRENCE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IMPORTED_MEMBERSHIP = OCCURRENCE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__MEMBER = OCCURRENCE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__MEMBERSHIP = OCCURRENCE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_IMPORT = OCCURRENCE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_MEMBER = OCCURRENCE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_MEMBERSHIP = OCCURRENCE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_ABSTRACT = OCCURRENCE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_CONJUGATED = OCCURRENCE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_SUFFICIENT = OCCURRENCE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__DIFFERENCING_TYPE = OCCURRENCE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__DIRECTED_FEATURE = OCCURRENCE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__END_FEATURE = OCCURRENCE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__FEATURE = OCCURRENCE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__INHERITED_FEATURE = OCCURRENCE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__INHERITED_MEMBERSHIP = OCCURRENCE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__INPUT = OCCURRENCE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__INTERSECTING_TYPE = OCCURRENCE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__MULTIPLICITY = OCCURRENCE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OUTPUT = OCCURRENCE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_CONJUGATOR = OCCURRENCE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_DIFFERENCING = OCCURRENCE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_DISJOINING = OCCURRENCE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_END_FEATURE = OCCURRENCE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_FEATURE = OCCURRENCE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_INTERSECTING = OCCURRENCE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_SPECIALIZATION = OCCURRENCE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_UNIONING = OCCURRENCE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__UNIONING_TYPE = OCCURRENCE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__DIRECTION = OCCURRENCE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_COMPOSITE = OCCURRENCE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_CONSTANT = OCCURRENCE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_DERIVED = OCCURRENCE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_END = OCCURRENCE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_NONUNIQUE = OCCURRENCE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_ORDERED = OCCURRENCE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_PORTION = OCCURRENCE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_UNIQUE = OCCURRENCE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_VARIABLE = OCCURRENCE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__CHAINING_FEATURE = OCCURRENCE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__CROSS_FEATURE = OCCURRENCE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__END_OWNING_TYPE = OCCURRENCE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__FEATURE_TARGET = OCCURRENCE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__FEATURING_TYPE = OCCURRENCE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_CROSS_SUBSETTING = OCCURRENCE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_FEATURE_CHAINING = OCCURRENCE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_FEATURE_INVERTING = OCCURRENCE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_REDEFINITION = OCCURRENCE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_REFERENCE_SUBSETTING = OCCURRENCE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_SUBSETTING = OCCURRENCE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_TYPE_FEATURING = OCCURRENCE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNED_TYPING = OCCURRENCE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNING_FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNING_TYPE = OCCURRENCE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__TYPE = OCCURRENCE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_REFERENCE = OCCURRENCE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_VARIATION = OCCURRENCE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__MAY_TIME_VARY = OCCURRENCE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__DEFINITION = OCCURRENCE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__DIRECTED_USAGE = OCCURRENCE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_ACTION = OCCURRENCE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_ALLOCATION = OCCURRENCE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_ANALYSIS_CASE = OCCURRENCE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_ATTRIBUTE = OCCURRENCE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_CALCULATION = OCCURRENCE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_CASE = OCCURRENCE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_CONCERN = OCCURRENCE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_CONNECTION = OCCURRENCE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_CONSTRAINT = OCCURRENCE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_ENUMERATION = OCCURRENCE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_FLOW = OCCURRENCE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_INTERFACE = OCCURRENCE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_ITEM = OCCURRENCE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_METADATA = OCCURRENCE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_OCCURRENCE = OCCURRENCE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_PART = OCCURRENCE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_PORT = OCCURRENCE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_REFERENCE = OCCURRENCE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_RENDERING = OCCURRENCE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_REQUIREMENT = OCCURRENCE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_STATE = OCCURRENCE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_TRANSITION = OCCURRENCE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_USAGE = OCCURRENCE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_USE_CASE = OCCURRENCE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_VERIFICATION_CASE = OCCURRENCE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_VIEW = OCCURRENCE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__NESTED_VIEWPOINT = OCCURRENCE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNING_DEFINITION = OCCURRENCE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OWNING_USAGE = OCCURRENCE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__USAGE = OCCURRENCE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__VARIANT = OCCURRENCE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__VARIANT_MEMBERSHIP = OCCURRENCE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__IS_INDIVIDUAL = OCCURRENCE_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__PORTION_KIND = OCCURRENCE_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__INDIVIDUAL_DEFINITION = OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__OCCURRENCE_DEFINITION = OCCURRENCE_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Item Definition' reference list. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE__ITEM_DEFINITION = OCCURRENCE_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Item Usage' class. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE_FEATURE_COUNT = OCCURRENCE_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___EFFECTIVE_NAME = OCCURRENCE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___EFFECTIVE_SHORT_NAME = OCCURRENCE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___ESCAPED_NAME = OCCURRENCE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___LIBRARY_NAMESPACE = OCCURRENCE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___PATH = OCCURRENCE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___IMPORTED_MEMBERSHIPS__ELIST = OCCURRENCE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OCCURRENCE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___NAMES_OF__ELEMENT = OCCURRENCE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___QUALIFICATION_OF__STRING = OCCURRENCE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___RESOLVE__STRING = OCCURRENCE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___RESOLVE_GLOBAL__STRING = OCCURRENCE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___RESOLVE_LOCAL__STRING = OCCURRENCE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___RESOLVE_VISIBLE__STRING = OCCURRENCE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___UNQUALIFIED_NAME_OF__STRING = OCCURRENCE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___VISIBILITY_OF__MEMBERSHIP = OCCURRENCE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OCCURRENCE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___ALL_SUPERTYPES = OCCURRENCE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___DIRECTION_OF__FEATURE = OCCURRENCE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OCCURRENCE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___IS_COMPATIBLE_WITH__TYPE = OCCURRENCE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___MULTIPLICITIES = OCCURRENCE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = OCCURRENCE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___SPECIALIZES__TYPE = OCCURRENCE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = OCCURRENCE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___SUPERTYPES__BOOLEAN = OCCURRENCE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___ALL_REDEFINED_FEATURES = OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___AS_CARTESIAN_PRODUCT = OCCURRENCE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___CAN_ACCESS__FEATURE = OCCURRENCE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___DIRECTION_FOR__TYPE = OCCURRENCE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___IS_CARTESIAN_PRODUCT = OCCURRENCE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___IS_FEATURED_WITHIN__TYPE = OCCURRENCE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___IS_FEATURING_TYPE__TYPE = OCCURRENCE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___IS_OWNED_CROSS_FEATURE = OCCURRENCE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___NAMING_FEATURE = OCCURRENCE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___OWNED_CROSS_FEATURE = OCCURRENCE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___REDEFINES__FEATURE = OCCURRENCE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___REDEFINES_FROM_LIBRARY__STRING = OCCURRENCE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = OCCURRENCE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___TYPING_FEATURES = OCCURRENCE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE___REFERENCED_FEATURE_TARGET = OCCURRENCE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Item Usage' class. + * + * + * @generated + * @ordered + */ + int ITEM_USAGE_OPERATION_COUNT = OCCURRENCE_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.JoinNodeImpl Join Node}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.JoinNodeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getJoinNode() + * @generated + */ + int JOIN_NODE = 87; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__ALIAS_IDS = CONTROL_NODE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__DECLARED_NAME = CONTROL_NODE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__DECLARED_SHORT_NAME = CONTROL_NODE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__ELEMENT_ID = CONTROL_NODE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_IMPLIED_INCLUDED = CONTROL_NODE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_LIBRARY_ELEMENT = CONTROL_NODE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NAME = CONTROL_NODE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__QUALIFIED_NAME = CONTROL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__SHORT_NAME = CONTROL_NODE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__DOCUMENTATION = CONTROL_NODE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_ANNOTATION = CONTROL_NODE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_ELEMENT = CONTROL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_RELATIONSHIP = CONTROL_NODE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNER = CONTROL_NODE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNING_MEMBERSHIP = CONTROL_NODE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNING_NAMESPACE = CONTROL_NODE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNING_RELATIONSHIP = CONTROL_NODE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__TEXTUAL_REPRESENTATION = CONTROL_NODE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IMPORTED_MEMBERSHIP = CONTROL_NODE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__MEMBER = CONTROL_NODE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__MEMBERSHIP = CONTROL_NODE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_IMPORT = CONTROL_NODE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_MEMBER = CONTROL_NODE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_MEMBERSHIP = CONTROL_NODE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_ABSTRACT = CONTROL_NODE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_CONJUGATED = CONTROL_NODE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_SUFFICIENT = CONTROL_NODE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__DIFFERENCING_TYPE = CONTROL_NODE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__DIRECTED_FEATURE = CONTROL_NODE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__END_FEATURE = CONTROL_NODE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__FEATURE = CONTROL_NODE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__FEATURE_MEMBERSHIP = CONTROL_NODE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__INHERITED_FEATURE = CONTROL_NODE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__INHERITED_MEMBERSHIP = CONTROL_NODE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__INPUT = CONTROL_NODE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__INTERSECTING_TYPE = CONTROL_NODE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__MULTIPLICITY = CONTROL_NODE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OUTPUT = CONTROL_NODE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_CONJUGATOR = CONTROL_NODE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_DIFFERENCING = CONTROL_NODE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_DISJOINING = CONTROL_NODE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_END_FEATURE = CONTROL_NODE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_FEATURE = CONTROL_NODE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_FEATURE_MEMBERSHIP = CONTROL_NODE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_INTERSECTING = CONTROL_NODE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_SPECIALIZATION = CONTROL_NODE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_UNIONING = CONTROL_NODE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__UNIONING_TYPE = CONTROL_NODE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__DIRECTION = CONTROL_NODE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_COMPOSITE = CONTROL_NODE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_CONSTANT = CONTROL_NODE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_DERIVED = CONTROL_NODE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_END = CONTROL_NODE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_NONUNIQUE = CONTROL_NODE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_ORDERED = CONTROL_NODE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_PORTION = CONTROL_NODE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_UNIQUE = CONTROL_NODE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_VARIABLE = CONTROL_NODE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__CHAINING_FEATURE = CONTROL_NODE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__CROSS_FEATURE = CONTROL_NODE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__END_OWNING_TYPE = CONTROL_NODE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__FEATURE_TARGET = CONTROL_NODE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__FEATURING_TYPE = CONTROL_NODE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_CROSS_SUBSETTING = CONTROL_NODE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_FEATURE_CHAINING = CONTROL_NODE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_FEATURE_INVERTING = CONTROL_NODE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_REDEFINITION = CONTROL_NODE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_REFERENCE_SUBSETTING = CONTROL_NODE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_SUBSETTING = CONTROL_NODE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_TYPE_FEATURING = CONTROL_NODE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNED_TYPING = CONTROL_NODE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNING_FEATURE_MEMBERSHIP = CONTROL_NODE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNING_TYPE = CONTROL_NODE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__TYPE = CONTROL_NODE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_REFERENCE = CONTROL_NODE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_VARIATION = CONTROL_NODE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__MAY_TIME_VARY = CONTROL_NODE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__DEFINITION = CONTROL_NODE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__DIRECTED_USAGE = CONTROL_NODE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_ACTION = CONTROL_NODE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_ALLOCATION = CONTROL_NODE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_ANALYSIS_CASE = CONTROL_NODE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_ATTRIBUTE = CONTROL_NODE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_CALCULATION = CONTROL_NODE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_CASE = CONTROL_NODE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_CONCERN = CONTROL_NODE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_CONNECTION = CONTROL_NODE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_CONSTRAINT = CONTROL_NODE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_ENUMERATION = CONTROL_NODE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_FLOW = CONTROL_NODE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_INTERFACE = CONTROL_NODE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_ITEM = CONTROL_NODE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_METADATA = CONTROL_NODE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_OCCURRENCE = CONTROL_NODE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_PART = CONTROL_NODE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_PORT = CONTROL_NODE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_REFERENCE = CONTROL_NODE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_RENDERING = CONTROL_NODE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_REQUIREMENT = CONTROL_NODE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_STATE = CONTROL_NODE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_TRANSITION = CONTROL_NODE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_USAGE = CONTROL_NODE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_USE_CASE = CONTROL_NODE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_VERIFICATION_CASE = CONTROL_NODE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_VIEW = CONTROL_NODE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__NESTED_VIEWPOINT = CONTROL_NODE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNING_DEFINITION = CONTROL_NODE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OWNING_USAGE = CONTROL_NODE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__USAGE = CONTROL_NODE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__VARIANT = CONTROL_NODE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__VARIANT_MEMBERSHIP = CONTROL_NODE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__IS_INDIVIDUAL = CONTROL_NODE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__PORTION_KIND = CONTROL_NODE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__INDIVIDUAL_DEFINITION = CONTROL_NODE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__OCCURRENCE_DEFINITION = CONTROL_NODE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__BEHAVIOR = CONTROL_NODE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__PARAMETER = CONTROL_NODE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int JOIN_NODE__ACTION_DEFINITION = CONTROL_NODE__ACTION_DEFINITION; + + /** + * The number of structural features of the 'Join Node' class. + * + * + * @generated + * @ordered + */ + int JOIN_NODE_FEATURE_COUNT = CONTROL_NODE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___EFFECTIVE_NAME = CONTROL_NODE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___EFFECTIVE_SHORT_NAME = CONTROL_NODE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___ESCAPED_NAME = CONTROL_NODE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___LIBRARY_NAMESPACE = CONTROL_NODE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___PATH = CONTROL_NODE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___IMPORTED_MEMBERSHIPS__ELIST = CONTROL_NODE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONTROL_NODE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___NAMES_OF__ELEMENT = CONTROL_NODE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___QUALIFICATION_OF__STRING = CONTROL_NODE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___RESOLVE__STRING = CONTROL_NODE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___RESOLVE_GLOBAL__STRING = CONTROL_NODE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___RESOLVE_LOCAL__STRING = CONTROL_NODE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___RESOLVE_VISIBLE__STRING = CONTROL_NODE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___UNQUALIFIED_NAME_OF__STRING = CONTROL_NODE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___VISIBILITY_OF__MEMBERSHIP = CONTROL_NODE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONTROL_NODE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONTROL_NODE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___ALL_SUPERTYPES = CONTROL_NODE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___DIRECTION_OF__FEATURE = CONTROL_NODE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONTROL_NODE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___IS_COMPATIBLE_WITH__TYPE = CONTROL_NODE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___MULTIPLICITIES = CONTROL_NODE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___REMOVE_REDEFINED_FEATURES__ELIST = CONTROL_NODE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___SPECIALIZES__TYPE = CONTROL_NODE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___SPECIALIZES_FROM_LIBRARY__STRING = CONTROL_NODE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___SUPERTYPES__BOOLEAN = CONTROL_NODE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___ALL_REDEFINED_FEATURES = CONTROL_NODE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___AS_CARTESIAN_PRODUCT = CONTROL_NODE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___CAN_ACCESS__FEATURE = CONTROL_NODE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___DIRECTION_FOR__TYPE = CONTROL_NODE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___IS_CARTESIAN_PRODUCT = CONTROL_NODE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___IS_FEATURED_WITHIN__TYPE = CONTROL_NODE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___IS_FEATURING_TYPE__TYPE = CONTROL_NODE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___IS_OWNED_CROSS_FEATURE = CONTROL_NODE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___NAMING_FEATURE = CONTROL_NODE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___OWNED_CROSS_FEATURE = CONTROL_NODE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___REDEFINES__FEATURE = CONTROL_NODE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___REDEFINES_FROM_LIBRARY__STRING = CONTROL_NODE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___SUBSETS_CHAIN__FEATURE_FEATURE = CONTROL_NODE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___TYPING_FEATURES = CONTROL_NODE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___REFERENCED_FEATURE_TARGET = CONTROL_NODE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___ARGUMENT__INT = CONTROL_NODE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___INPUT_PARAMETER__INT = CONTROL_NODE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___INPUT_PARAMETERS = CONTROL_NODE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___IS_SUBACTION_USAGE = CONTROL_NODE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Multiplicity Has Bounds' operation. + * + * + * @generated + * @ordered + */ + int JOIN_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT = CONTROL_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT; + + /** + * The number of operations of the 'Join Node' class. + * + * + * @generated + * @ordered + */ + int JOIN_NODE_OPERATION_COUNT = CONTROL_NODE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.PackageImpl Package}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PackageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPackage() + * @generated + */ + int PACKAGE = 116; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int PACKAGE__ALIAS_IDS = NAMESPACE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__DECLARED_NAME = NAMESPACE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__DECLARED_SHORT_NAME = NAMESPACE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__ELEMENT_ID = NAMESPACE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__IS_IMPLIED_INCLUDED = NAMESPACE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__IS_LIBRARY_ELEMENT = NAMESPACE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__NAME = NAMESPACE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__QUALIFIED_NAME = NAMESPACE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PACKAGE__SHORT_NAME = NAMESPACE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__DOCUMENTATION = NAMESPACE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_ANNOTATION = NAMESPACE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_ELEMENT = NAMESPACE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_RELATIONSHIP = NAMESPACE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNER = NAMESPACE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNING_MEMBERSHIP = NAMESPACE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNING_NAMESPACE = NAMESPACE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNING_RELATIONSHIP = NAMESPACE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__TEXTUAL_REPRESENTATION = NAMESPACE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__IMPORTED_MEMBERSHIP = NAMESPACE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__MEMBER = NAMESPACE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__MEMBERSHIP = NAMESPACE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_IMPORT = NAMESPACE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_MEMBER = NAMESPACE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__OWNED_MEMBERSHIP = NAMESPACE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Filter Condition' reference list. + * + * + * @generated + * @ordered + */ + int PACKAGE__FILTER_CONDITION = NAMESPACE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Package' class. + * + * + * @generated + * @ordered + */ + int PACKAGE_FEATURE_COUNT = NAMESPACE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___EFFECTIVE_NAME = NAMESPACE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___EFFECTIVE_SHORT_NAME = NAMESPACE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___ESCAPED_NAME = NAMESPACE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___LIBRARY_NAMESPACE = NAMESPACE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___PATH = NAMESPACE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___IMPORTED_MEMBERSHIPS__ELIST = NAMESPACE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = NAMESPACE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___NAMES_OF__ELEMENT = NAMESPACE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___QUALIFICATION_OF__STRING = NAMESPACE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___RESOLVE__STRING = NAMESPACE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___RESOLVE_GLOBAL__STRING = NAMESPACE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___RESOLVE_LOCAL__STRING = NAMESPACE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___RESOLVE_VISIBLE__STRING = NAMESPACE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___UNQUALIFIED_NAME_OF__STRING = NAMESPACE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___VISIBILITY_OF__MEMBERSHIP = NAMESPACE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = NAMESPACE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'Include As Member' operation. + * + * + * @generated + * @ordered + */ + int PACKAGE___INCLUDE_AS_MEMBER__ELEMENT = NAMESPACE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Package' class. + * + * + * @generated + * @ordered + */ + int PACKAGE_OPERATION_COUNT = NAMESPACE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.LibraryPackageImpl Library Package}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LibraryPackageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLibraryPackage() + * @generated + */ + int LIBRARY_PACKAGE = 88; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__ALIAS_IDS = PACKAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__DECLARED_NAME = PACKAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__DECLARED_SHORT_NAME = PACKAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__ELEMENT_ID = PACKAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__IS_IMPLIED_INCLUDED = PACKAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__IS_LIBRARY_ELEMENT = PACKAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__NAME = PACKAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__QUALIFIED_NAME = PACKAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__SHORT_NAME = PACKAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__DOCUMENTATION = PACKAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__OWNED_ANNOTATION = PACKAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__OWNED_ELEMENT = PACKAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__OWNED_RELATIONSHIP = PACKAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__OWNER = PACKAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__OWNING_MEMBERSHIP = PACKAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__OWNING_NAMESPACE = PACKAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__OWNING_RELATIONSHIP = PACKAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__TEXTUAL_REPRESENTATION = PACKAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__IMPORTED_MEMBERSHIP = PACKAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__MEMBER = PACKAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__MEMBERSHIP = PACKAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__OWNED_IMPORT = PACKAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__OWNED_MEMBER = PACKAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__OWNED_MEMBERSHIP = PACKAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Filter Condition' reference list. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__FILTER_CONDITION = PACKAGE__FILTER_CONDITION; + + /** + * The feature id for the 'Is Standard' attribute. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE__IS_STANDARD = PACKAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Library Package' class. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE_FEATURE_COUNT = PACKAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___EFFECTIVE_NAME = PACKAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___EFFECTIVE_SHORT_NAME = PACKAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___ESCAPED_NAME = PACKAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___LIBRARY_NAMESPACE = PACKAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___PATH = PACKAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___IMPORTED_MEMBERSHIPS__ELIST = PACKAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = PACKAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___NAMES_OF__ELEMENT = PACKAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___QUALIFICATION_OF__STRING = PACKAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___RESOLVE__STRING = PACKAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___RESOLVE_GLOBAL__STRING = PACKAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___RESOLVE_LOCAL__STRING = PACKAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___RESOLVE_VISIBLE__STRING = PACKAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___UNQUALIFIED_NAME_OF__STRING = PACKAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___VISIBILITY_OF__MEMBERSHIP = PACKAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = PACKAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'Include As Member' operation. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE___INCLUDE_AS_MEMBER__ELEMENT = PACKAGE___INCLUDE_AS_MEMBER__ELEMENT; + + /** + * The number of operations of the 'Library Package' class. + * + * + * @generated + * @ordered + */ + int LIBRARY_PACKAGE_OPERATION_COUNT = PACKAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.LiteralExpressionImpl Literal Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralExpression() + * @generated + */ + int LITERAL_EXPRESSION = 90; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__ALIAS_IDS = EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__DECLARED_NAME = EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__DECLARED_SHORT_NAME = EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__ELEMENT_ID = EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_IMPLIED_INCLUDED = EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_LIBRARY_ELEMENT = EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__QUALIFIED_NAME = EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__SHORT_NAME = EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__DOCUMENTATION = EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_ANNOTATION = EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_ELEMENT = EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_RELATIONSHIP = EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNER = EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNING_MEMBERSHIP = EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNING_NAMESPACE = EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNING_RELATIONSHIP = EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__TEXTUAL_REPRESENTATION = EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IMPORTED_MEMBERSHIP = EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__MEMBER = EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__MEMBERSHIP = EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_IMPORT = EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_MEMBER = EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_MEMBERSHIP = EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_ABSTRACT = EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_CONJUGATED = EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_SUFFICIENT = EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__DIFFERENCING_TYPE = EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__DIRECTED_FEATURE = EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__END_FEATURE = EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__FEATURE = EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__FEATURE_MEMBERSHIP = EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__INHERITED_FEATURE = EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__INHERITED_MEMBERSHIP = EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__INPUT = EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__INTERSECTING_TYPE = EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__MULTIPLICITY = EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OUTPUT = EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_CONJUGATOR = EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_DIFFERENCING = EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_DISJOINING = EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_END_FEATURE = EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_FEATURE = EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_INTERSECTING = EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_SPECIALIZATION = EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_UNIONING = EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__UNIONING_TYPE = EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__DIRECTION = EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_COMPOSITE = EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_CONSTANT = EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_DERIVED = EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_END = EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_NONUNIQUE = EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_ORDERED = EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_PORTION = EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_UNIQUE = EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_VARIABLE = EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__CHAINING_FEATURE = EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__CROSS_FEATURE = EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__END_OWNING_TYPE = EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__FEATURE_TARGET = EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__FEATURING_TYPE = EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_CROSS_SUBSETTING = EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_FEATURE_CHAINING = EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_FEATURE_INVERTING = EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_REDEFINITION = EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_REFERENCE_SUBSETTING = EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_SUBSETTING = EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_TYPE_FEATURING = EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNED_TYPING = EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__OWNING_TYPE = EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__BEHAVIOR = EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__PARAMETER = EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__FUNCTION = EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION__RESULT = EXPRESSION__RESULT; + + /** + * The number of structural features of the 'Literal Expression' class. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___EFFECTIVE_NAME = EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___EFFECTIVE_SHORT_NAME = EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___ESCAPED_NAME = EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___LIBRARY_NAMESPACE = EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___PATH = EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___NAMES_OF__ELEMENT = EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___QUALIFICATION_OF__STRING = EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___RESOLVE__STRING = EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___RESOLVE_GLOBAL__STRING = EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___RESOLVE_LOCAL__STRING = EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___RESOLVE_VISIBLE__STRING = EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___ALL_SUPERTYPES = EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___DIRECTION_OF__FEATURE = EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___MULTIPLICITIES = EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___SPECIALIZES__TYPE = EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___SUPERTYPES__BOOLEAN = EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES = EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___AS_CARTESIAN_PRODUCT = EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___CAN_ACCESS__FEATURE = EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___DIRECTION_FOR__TYPE = EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___IS_CARTESIAN_PRODUCT = EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___IS_FEATURED_WITHIN__TYPE = EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___IS_FEATURING_TYPE__TYPE = EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___IS_OWNED_CROSS_FEATURE = EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___NAMING_FEATURE = EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___OWNED_CROSS_FEATURE = EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___REDEFINES__FEATURE = EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___TYPING_FEATURES = EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___CHECK_CONDITION__ELEMENT = EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___EVALUATE__ELEMENT = EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Literal Expression' class. + * + * + * @generated + * @ordered + */ + int LITERAL_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.LiteralBooleanImpl Literal Boolean}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralBooleanImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralBoolean() + * @generated + */ + int LITERAL_BOOLEAN = 89; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__ALIAS_IDS = LITERAL_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__DECLARED_NAME = LITERAL_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__DECLARED_SHORT_NAME = LITERAL_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__ELEMENT_ID = LITERAL_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_IMPLIED_INCLUDED = LITERAL_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_LIBRARY_ELEMENT = LITERAL_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__NAME = LITERAL_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__QUALIFIED_NAME = LITERAL_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__SHORT_NAME = LITERAL_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__DOCUMENTATION = LITERAL_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_ANNOTATION = LITERAL_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_ELEMENT = LITERAL_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_RELATIONSHIP = LITERAL_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNER = LITERAL_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNING_MEMBERSHIP = LITERAL_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNING_NAMESPACE = LITERAL_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNING_RELATIONSHIP = LITERAL_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__TEXTUAL_REPRESENTATION = LITERAL_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IMPORTED_MEMBERSHIP = LITERAL_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__MEMBER = LITERAL_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__MEMBERSHIP = LITERAL_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_IMPORT = LITERAL_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_MEMBER = LITERAL_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_MEMBERSHIP = LITERAL_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_ABSTRACT = LITERAL_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_CONJUGATED = LITERAL_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_SUFFICIENT = LITERAL_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__DIFFERENCING_TYPE = LITERAL_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__DIRECTED_FEATURE = LITERAL_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__END_FEATURE = LITERAL_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__FEATURE = LITERAL_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__INHERITED_FEATURE = LITERAL_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__INHERITED_MEMBERSHIP = LITERAL_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__INPUT = LITERAL_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__INTERSECTING_TYPE = LITERAL_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__MULTIPLICITY = LITERAL_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OUTPUT = LITERAL_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_CONJUGATOR = LITERAL_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_DIFFERENCING = LITERAL_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_DISJOINING = LITERAL_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_END_FEATURE = LITERAL_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_FEATURE = LITERAL_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_INTERSECTING = LITERAL_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_SPECIALIZATION = LITERAL_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_UNIONING = LITERAL_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__UNIONING_TYPE = LITERAL_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__DIRECTION = LITERAL_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_COMPOSITE = LITERAL_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_CONSTANT = LITERAL_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_DERIVED = LITERAL_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_END = LITERAL_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_NONUNIQUE = LITERAL_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_ORDERED = LITERAL_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_PORTION = LITERAL_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_UNIQUE = LITERAL_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_VARIABLE = LITERAL_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__CHAINING_FEATURE = LITERAL_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__CROSS_FEATURE = LITERAL_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__END_OWNING_TYPE = LITERAL_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__FEATURE_TARGET = LITERAL_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__FEATURING_TYPE = LITERAL_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_CROSS_SUBSETTING = LITERAL_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_FEATURE_CHAINING = LITERAL_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_FEATURE_INVERTING = LITERAL_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_REDEFINITION = LITERAL_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_REFERENCE_SUBSETTING = LITERAL_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_SUBSETTING = LITERAL_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_TYPE_FEATURING = LITERAL_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNED_TYPING = LITERAL_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNING_FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__OWNING_TYPE = LITERAL_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__TYPE = LITERAL_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__BEHAVIOR = LITERAL_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__PARAMETER = LITERAL_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__IS_MODEL_LEVEL_EVALUABLE = LITERAL_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__FUNCTION = LITERAL_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__RESULT = LITERAL_EXPRESSION__RESULT; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN__VALUE = LITERAL_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Literal Boolean' class. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN_FEATURE_COUNT = LITERAL_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___EFFECTIVE_NAME = LITERAL_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___EFFECTIVE_SHORT_NAME = LITERAL_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___ESCAPED_NAME = LITERAL_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___LIBRARY_NAMESPACE = LITERAL_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___PATH = LITERAL_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___IMPORTED_MEMBERSHIPS__ELIST = LITERAL_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = LITERAL_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___NAMES_OF__ELEMENT = LITERAL_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___QUALIFICATION_OF__STRING = LITERAL_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___RESOLVE__STRING = LITERAL_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___RESOLVE_GLOBAL__STRING = LITERAL_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___RESOLVE_LOCAL__STRING = LITERAL_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___RESOLVE_VISIBLE__STRING = LITERAL_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___UNQUALIFIED_NAME_OF__STRING = LITERAL_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___VISIBILITY_OF__MEMBERSHIP = LITERAL_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = LITERAL_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___ALL_SUPERTYPES = LITERAL_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___DIRECTION_OF__FEATURE = LITERAL_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = LITERAL_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___IS_COMPATIBLE_WITH__TYPE = LITERAL_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___MULTIPLICITIES = LITERAL_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___REMOVE_REDEFINED_FEATURES__ELIST = LITERAL_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___SPECIALIZES__TYPE = LITERAL_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___SPECIALIZES_FROM_LIBRARY__STRING = LITERAL_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___SUPERTYPES__BOOLEAN = LITERAL_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___ALL_REDEFINED_FEATURES = LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___AS_CARTESIAN_PRODUCT = LITERAL_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___CAN_ACCESS__FEATURE = LITERAL_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___DIRECTION_FOR__TYPE = LITERAL_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___IS_CARTESIAN_PRODUCT = LITERAL_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___IS_FEATURED_WITHIN__TYPE = LITERAL_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___IS_FEATURING_TYPE__TYPE = LITERAL_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___IS_OWNED_CROSS_FEATURE = LITERAL_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___NAMING_FEATURE = LITERAL_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___OWNED_CROSS_FEATURE = LITERAL_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___REDEFINES__FEATURE = LITERAL_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___REDEFINES_FROM_LIBRARY__STRING = LITERAL_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___SUBSETS_CHAIN__FEATURE_FEATURE = LITERAL_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___TYPING_FEATURES = LITERAL_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___CHECK_CONDITION__ELEMENT = LITERAL_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___EVALUATE__ELEMENT = LITERAL_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN___MODEL_LEVEL_EVALUABLE__ELIST = LITERAL_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Literal Boolean' class. + * + * + * @generated + * @ordered + */ + int LITERAL_BOOLEAN_OPERATION_COUNT = LITERAL_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.LiteralInfinityImpl Literal Infinity}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralInfinityImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralInfinity() + * @generated + */ + int LITERAL_INFINITY = 91; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__ALIAS_IDS = LITERAL_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__DECLARED_NAME = LITERAL_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__DECLARED_SHORT_NAME = LITERAL_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__ELEMENT_ID = LITERAL_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_IMPLIED_INCLUDED = LITERAL_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_LIBRARY_ELEMENT = LITERAL_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__NAME = LITERAL_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__QUALIFIED_NAME = LITERAL_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__SHORT_NAME = LITERAL_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__DOCUMENTATION = LITERAL_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_ANNOTATION = LITERAL_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_ELEMENT = LITERAL_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_RELATIONSHIP = LITERAL_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNER = LITERAL_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNING_MEMBERSHIP = LITERAL_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNING_NAMESPACE = LITERAL_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNING_RELATIONSHIP = LITERAL_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__TEXTUAL_REPRESENTATION = LITERAL_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IMPORTED_MEMBERSHIP = LITERAL_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__MEMBER = LITERAL_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__MEMBERSHIP = LITERAL_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_IMPORT = LITERAL_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_MEMBER = LITERAL_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_MEMBERSHIP = LITERAL_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_ABSTRACT = LITERAL_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_CONJUGATED = LITERAL_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_SUFFICIENT = LITERAL_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__DIFFERENCING_TYPE = LITERAL_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__DIRECTED_FEATURE = LITERAL_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__END_FEATURE = LITERAL_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__FEATURE = LITERAL_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__INHERITED_FEATURE = LITERAL_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__INHERITED_MEMBERSHIP = LITERAL_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__INPUT = LITERAL_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__INTERSECTING_TYPE = LITERAL_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__MULTIPLICITY = LITERAL_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OUTPUT = LITERAL_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_CONJUGATOR = LITERAL_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_DIFFERENCING = LITERAL_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_DISJOINING = LITERAL_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_END_FEATURE = LITERAL_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_FEATURE = LITERAL_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_INTERSECTING = LITERAL_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_SPECIALIZATION = LITERAL_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_UNIONING = LITERAL_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__UNIONING_TYPE = LITERAL_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__DIRECTION = LITERAL_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_COMPOSITE = LITERAL_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_CONSTANT = LITERAL_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_DERIVED = LITERAL_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_END = LITERAL_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_NONUNIQUE = LITERAL_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_ORDERED = LITERAL_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_PORTION = LITERAL_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_UNIQUE = LITERAL_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_VARIABLE = LITERAL_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__CHAINING_FEATURE = LITERAL_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__CROSS_FEATURE = LITERAL_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__END_OWNING_TYPE = LITERAL_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__FEATURE_TARGET = LITERAL_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__FEATURING_TYPE = LITERAL_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_CROSS_SUBSETTING = LITERAL_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_FEATURE_CHAINING = LITERAL_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_FEATURE_INVERTING = LITERAL_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_REDEFINITION = LITERAL_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_REFERENCE_SUBSETTING = LITERAL_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_SUBSETTING = LITERAL_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_TYPE_FEATURING = LITERAL_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNED_TYPING = LITERAL_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNING_FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__OWNING_TYPE = LITERAL_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__TYPE = LITERAL_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__BEHAVIOR = LITERAL_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__PARAMETER = LITERAL_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__IS_MODEL_LEVEL_EVALUABLE = LITERAL_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__FUNCTION = LITERAL_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY__RESULT = LITERAL_EXPRESSION__RESULT; + + /** + * The number of structural features of the 'Literal Infinity' class. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY_FEATURE_COUNT = LITERAL_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___EFFECTIVE_NAME = LITERAL_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___EFFECTIVE_SHORT_NAME = LITERAL_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___ESCAPED_NAME = LITERAL_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___LIBRARY_NAMESPACE = LITERAL_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___PATH = LITERAL_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___IMPORTED_MEMBERSHIPS__ELIST = LITERAL_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = LITERAL_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___NAMES_OF__ELEMENT = LITERAL_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___QUALIFICATION_OF__STRING = LITERAL_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___RESOLVE__STRING = LITERAL_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___RESOLVE_GLOBAL__STRING = LITERAL_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___RESOLVE_LOCAL__STRING = LITERAL_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___RESOLVE_VISIBLE__STRING = LITERAL_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___UNQUALIFIED_NAME_OF__STRING = LITERAL_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___VISIBILITY_OF__MEMBERSHIP = LITERAL_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = LITERAL_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___ALL_SUPERTYPES = LITERAL_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___DIRECTION_OF__FEATURE = LITERAL_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = LITERAL_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___IS_COMPATIBLE_WITH__TYPE = LITERAL_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___MULTIPLICITIES = LITERAL_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___REMOVE_REDEFINED_FEATURES__ELIST = LITERAL_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___SPECIALIZES__TYPE = LITERAL_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___SPECIALIZES_FROM_LIBRARY__STRING = LITERAL_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___SUPERTYPES__BOOLEAN = LITERAL_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___ALL_REDEFINED_FEATURES = LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___AS_CARTESIAN_PRODUCT = LITERAL_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___CAN_ACCESS__FEATURE = LITERAL_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___DIRECTION_FOR__TYPE = LITERAL_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___IS_CARTESIAN_PRODUCT = LITERAL_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___IS_FEATURED_WITHIN__TYPE = LITERAL_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___IS_FEATURING_TYPE__TYPE = LITERAL_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___IS_OWNED_CROSS_FEATURE = LITERAL_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___NAMING_FEATURE = LITERAL_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___OWNED_CROSS_FEATURE = LITERAL_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___REDEFINES__FEATURE = LITERAL_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___REDEFINES_FROM_LIBRARY__STRING = LITERAL_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___SUBSETS_CHAIN__FEATURE_FEATURE = LITERAL_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___TYPING_FEATURES = LITERAL_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___CHECK_CONDITION__ELEMENT = LITERAL_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___EVALUATE__ELEMENT = LITERAL_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY___MODEL_LEVEL_EVALUABLE__ELIST = LITERAL_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Literal Infinity' class. + * + * + * @generated + * @ordered + */ + int LITERAL_INFINITY_OPERATION_COUNT = LITERAL_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.LiteralIntegerImpl Literal Integer}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralIntegerImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralInteger() + * @generated + */ + int LITERAL_INTEGER = 92; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__ALIAS_IDS = LITERAL_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__DECLARED_NAME = LITERAL_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__DECLARED_SHORT_NAME = LITERAL_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__ELEMENT_ID = LITERAL_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_IMPLIED_INCLUDED = LITERAL_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_LIBRARY_ELEMENT = LITERAL_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__NAME = LITERAL_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__QUALIFIED_NAME = LITERAL_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__SHORT_NAME = LITERAL_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__DOCUMENTATION = LITERAL_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_ANNOTATION = LITERAL_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_ELEMENT = LITERAL_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_RELATIONSHIP = LITERAL_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNER = LITERAL_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNING_MEMBERSHIP = LITERAL_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNING_NAMESPACE = LITERAL_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNING_RELATIONSHIP = LITERAL_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__TEXTUAL_REPRESENTATION = LITERAL_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IMPORTED_MEMBERSHIP = LITERAL_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__MEMBER = LITERAL_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__MEMBERSHIP = LITERAL_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_IMPORT = LITERAL_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_MEMBER = LITERAL_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_MEMBERSHIP = LITERAL_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_ABSTRACT = LITERAL_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_CONJUGATED = LITERAL_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_SUFFICIENT = LITERAL_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__DIFFERENCING_TYPE = LITERAL_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__DIRECTED_FEATURE = LITERAL_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__END_FEATURE = LITERAL_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__FEATURE = LITERAL_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__INHERITED_FEATURE = LITERAL_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__INHERITED_MEMBERSHIP = LITERAL_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__INPUT = LITERAL_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__INTERSECTING_TYPE = LITERAL_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__MULTIPLICITY = LITERAL_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OUTPUT = LITERAL_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_CONJUGATOR = LITERAL_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_DIFFERENCING = LITERAL_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_DISJOINING = LITERAL_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_END_FEATURE = LITERAL_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_FEATURE = LITERAL_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_INTERSECTING = LITERAL_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_SPECIALIZATION = LITERAL_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_UNIONING = LITERAL_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__UNIONING_TYPE = LITERAL_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__DIRECTION = LITERAL_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_COMPOSITE = LITERAL_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_CONSTANT = LITERAL_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_DERIVED = LITERAL_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_END = LITERAL_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_NONUNIQUE = LITERAL_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_ORDERED = LITERAL_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_PORTION = LITERAL_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_UNIQUE = LITERAL_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_VARIABLE = LITERAL_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__CHAINING_FEATURE = LITERAL_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__CROSS_FEATURE = LITERAL_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__END_OWNING_TYPE = LITERAL_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__FEATURE_TARGET = LITERAL_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__FEATURING_TYPE = LITERAL_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_CROSS_SUBSETTING = LITERAL_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_FEATURE_CHAINING = LITERAL_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_FEATURE_INVERTING = LITERAL_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_REDEFINITION = LITERAL_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_REFERENCE_SUBSETTING = LITERAL_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_SUBSETTING = LITERAL_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_TYPE_FEATURING = LITERAL_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNED_TYPING = LITERAL_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNING_FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__OWNING_TYPE = LITERAL_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__TYPE = LITERAL_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__BEHAVIOR = LITERAL_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__PARAMETER = LITERAL_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__IS_MODEL_LEVEL_EVALUABLE = LITERAL_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__FUNCTION = LITERAL_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__RESULT = LITERAL_EXPRESSION__RESULT; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER__VALUE = LITERAL_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Literal Integer' class. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER_FEATURE_COUNT = LITERAL_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___EFFECTIVE_NAME = LITERAL_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___EFFECTIVE_SHORT_NAME = LITERAL_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___ESCAPED_NAME = LITERAL_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___LIBRARY_NAMESPACE = LITERAL_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___PATH = LITERAL_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___IMPORTED_MEMBERSHIPS__ELIST = LITERAL_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = LITERAL_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___NAMES_OF__ELEMENT = LITERAL_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___QUALIFICATION_OF__STRING = LITERAL_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___RESOLVE__STRING = LITERAL_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___RESOLVE_GLOBAL__STRING = LITERAL_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___RESOLVE_LOCAL__STRING = LITERAL_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___RESOLVE_VISIBLE__STRING = LITERAL_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___UNQUALIFIED_NAME_OF__STRING = LITERAL_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___VISIBILITY_OF__MEMBERSHIP = LITERAL_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = LITERAL_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___ALL_SUPERTYPES = LITERAL_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___DIRECTION_OF__FEATURE = LITERAL_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = LITERAL_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___IS_COMPATIBLE_WITH__TYPE = LITERAL_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___MULTIPLICITIES = LITERAL_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___REMOVE_REDEFINED_FEATURES__ELIST = LITERAL_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___SPECIALIZES__TYPE = LITERAL_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___SPECIALIZES_FROM_LIBRARY__STRING = LITERAL_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___SUPERTYPES__BOOLEAN = LITERAL_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___ALL_REDEFINED_FEATURES = LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___AS_CARTESIAN_PRODUCT = LITERAL_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___CAN_ACCESS__FEATURE = LITERAL_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___DIRECTION_FOR__TYPE = LITERAL_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___IS_CARTESIAN_PRODUCT = LITERAL_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___IS_FEATURED_WITHIN__TYPE = LITERAL_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___IS_FEATURING_TYPE__TYPE = LITERAL_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___IS_OWNED_CROSS_FEATURE = LITERAL_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___NAMING_FEATURE = LITERAL_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___OWNED_CROSS_FEATURE = LITERAL_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___REDEFINES__FEATURE = LITERAL_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___REDEFINES_FROM_LIBRARY__STRING = LITERAL_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___SUBSETS_CHAIN__FEATURE_FEATURE = LITERAL_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___TYPING_FEATURES = LITERAL_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___CHECK_CONDITION__ELEMENT = LITERAL_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___EVALUATE__ELEMENT = LITERAL_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER___MODEL_LEVEL_EVALUABLE__ELIST = LITERAL_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Literal Integer' class. + * + * + * @generated + * @ordered + */ + int LITERAL_INTEGER_OPERATION_COUNT = LITERAL_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.LiteralRationalImpl Literal Rational}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralRationalImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralRational() + * @generated + */ + int LITERAL_RATIONAL = 93; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__ALIAS_IDS = LITERAL_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__DECLARED_NAME = LITERAL_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__DECLARED_SHORT_NAME = LITERAL_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__ELEMENT_ID = LITERAL_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_IMPLIED_INCLUDED = LITERAL_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_LIBRARY_ELEMENT = LITERAL_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__NAME = LITERAL_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__QUALIFIED_NAME = LITERAL_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__SHORT_NAME = LITERAL_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__DOCUMENTATION = LITERAL_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_ANNOTATION = LITERAL_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_ELEMENT = LITERAL_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_RELATIONSHIP = LITERAL_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNER = LITERAL_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNING_MEMBERSHIP = LITERAL_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNING_NAMESPACE = LITERAL_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNING_RELATIONSHIP = LITERAL_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__TEXTUAL_REPRESENTATION = LITERAL_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IMPORTED_MEMBERSHIP = LITERAL_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__MEMBER = LITERAL_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__MEMBERSHIP = LITERAL_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_IMPORT = LITERAL_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_MEMBER = LITERAL_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_MEMBERSHIP = LITERAL_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_ABSTRACT = LITERAL_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_CONJUGATED = LITERAL_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_SUFFICIENT = LITERAL_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__DIFFERENCING_TYPE = LITERAL_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__DIRECTED_FEATURE = LITERAL_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__END_FEATURE = LITERAL_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__FEATURE = LITERAL_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__INHERITED_FEATURE = LITERAL_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__INHERITED_MEMBERSHIP = LITERAL_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__INPUT = LITERAL_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__INTERSECTING_TYPE = LITERAL_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__MULTIPLICITY = LITERAL_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OUTPUT = LITERAL_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_CONJUGATOR = LITERAL_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_DIFFERENCING = LITERAL_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_DISJOINING = LITERAL_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_END_FEATURE = LITERAL_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_FEATURE = LITERAL_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_INTERSECTING = LITERAL_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_SPECIALIZATION = LITERAL_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_UNIONING = LITERAL_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__UNIONING_TYPE = LITERAL_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__DIRECTION = LITERAL_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_COMPOSITE = LITERAL_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_CONSTANT = LITERAL_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_DERIVED = LITERAL_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_END = LITERAL_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_NONUNIQUE = LITERAL_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_ORDERED = LITERAL_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_PORTION = LITERAL_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_UNIQUE = LITERAL_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_VARIABLE = LITERAL_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__CHAINING_FEATURE = LITERAL_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__CROSS_FEATURE = LITERAL_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__END_OWNING_TYPE = LITERAL_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__FEATURE_TARGET = LITERAL_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__FEATURING_TYPE = LITERAL_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_CROSS_SUBSETTING = LITERAL_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_FEATURE_CHAINING = LITERAL_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_FEATURE_INVERTING = LITERAL_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_REDEFINITION = LITERAL_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_REFERENCE_SUBSETTING = LITERAL_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_SUBSETTING = LITERAL_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_TYPE_FEATURING = LITERAL_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNED_TYPING = LITERAL_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNING_FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__OWNING_TYPE = LITERAL_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__TYPE = LITERAL_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__BEHAVIOR = LITERAL_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__PARAMETER = LITERAL_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__IS_MODEL_LEVEL_EVALUABLE = LITERAL_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__FUNCTION = LITERAL_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__RESULT = LITERAL_EXPRESSION__RESULT; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL__VALUE = LITERAL_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Literal Rational' class. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL_FEATURE_COUNT = LITERAL_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___EFFECTIVE_NAME = LITERAL_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___EFFECTIVE_SHORT_NAME = LITERAL_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___ESCAPED_NAME = LITERAL_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___LIBRARY_NAMESPACE = LITERAL_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___PATH = LITERAL_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___IMPORTED_MEMBERSHIPS__ELIST = LITERAL_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = LITERAL_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___NAMES_OF__ELEMENT = LITERAL_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___QUALIFICATION_OF__STRING = LITERAL_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___RESOLVE__STRING = LITERAL_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___RESOLVE_GLOBAL__STRING = LITERAL_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___RESOLVE_LOCAL__STRING = LITERAL_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___RESOLVE_VISIBLE__STRING = LITERAL_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___UNQUALIFIED_NAME_OF__STRING = LITERAL_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___VISIBILITY_OF__MEMBERSHIP = LITERAL_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = LITERAL_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___ALL_SUPERTYPES = LITERAL_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___DIRECTION_OF__FEATURE = LITERAL_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = LITERAL_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___IS_COMPATIBLE_WITH__TYPE = LITERAL_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___MULTIPLICITIES = LITERAL_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___REMOVE_REDEFINED_FEATURES__ELIST = LITERAL_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___SPECIALIZES__TYPE = LITERAL_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___SPECIALIZES_FROM_LIBRARY__STRING = LITERAL_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___SUPERTYPES__BOOLEAN = LITERAL_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___ALL_REDEFINED_FEATURES = LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___AS_CARTESIAN_PRODUCT = LITERAL_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___CAN_ACCESS__FEATURE = LITERAL_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___DIRECTION_FOR__TYPE = LITERAL_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___IS_CARTESIAN_PRODUCT = LITERAL_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___IS_FEATURED_WITHIN__TYPE = LITERAL_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___IS_FEATURING_TYPE__TYPE = LITERAL_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___IS_OWNED_CROSS_FEATURE = LITERAL_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___NAMING_FEATURE = LITERAL_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___OWNED_CROSS_FEATURE = LITERAL_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___REDEFINES__FEATURE = LITERAL_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___REDEFINES_FROM_LIBRARY__STRING = LITERAL_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___SUBSETS_CHAIN__FEATURE_FEATURE = LITERAL_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___TYPING_FEATURES = LITERAL_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___CHECK_CONDITION__ELEMENT = LITERAL_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___EVALUATE__ELEMENT = LITERAL_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL___MODEL_LEVEL_EVALUABLE__ELIST = LITERAL_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Literal Rational' class. + * + * + * @generated + * @ordered + */ + int LITERAL_RATIONAL_OPERATION_COUNT = LITERAL_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.LiteralStringImpl Literal String}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralStringImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralString() + * @generated + */ + int LITERAL_STRING = 94; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__ALIAS_IDS = LITERAL_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__DECLARED_NAME = LITERAL_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__DECLARED_SHORT_NAME = LITERAL_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__ELEMENT_ID = LITERAL_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_IMPLIED_INCLUDED = LITERAL_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_LIBRARY_ELEMENT = LITERAL_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__NAME = LITERAL_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__QUALIFIED_NAME = LITERAL_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__SHORT_NAME = LITERAL_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__DOCUMENTATION = LITERAL_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_ANNOTATION = LITERAL_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_ELEMENT = LITERAL_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_RELATIONSHIP = LITERAL_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNER = LITERAL_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNING_MEMBERSHIP = LITERAL_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNING_NAMESPACE = LITERAL_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNING_RELATIONSHIP = LITERAL_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__TEXTUAL_REPRESENTATION = LITERAL_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IMPORTED_MEMBERSHIP = LITERAL_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__MEMBER = LITERAL_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__MEMBERSHIP = LITERAL_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_IMPORT = LITERAL_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_MEMBER = LITERAL_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_MEMBERSHIP = LITERAL_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_ABSTRACT = LITERAL_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_CONJUGATED = LITERAL_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_SUFFICIENT = LITERAL_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__DIFFERENCING_TYPE = LITERAL_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__DIRECTED_FEATURE = LITERAL_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__END_FEATURE = LITERAL_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__FEATURE = LITERAL_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__INHERITED_FEATURE = LITERAL_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__INHERITED_MEMBERSHIP = LITERAL_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__INPUT = LITERAL_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__INTERSECTING_TYPE = LITERAL_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__MULTIPLICITY = LITERAL_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OUTPUT = LITERAL_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_CONJUGATOR = LITERAL_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_DIFFERENCING = LITERAL_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_DISJOINING = LITERAL_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_END_FEATURE = LITERAL_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_FEATURE = LITERAL_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_INTERSECTING = LITERAL_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_SPECIALIZATION = LITERAL_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_UNIONING = LITERAL_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__UNIONING_TYPE = LITERAL_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__DIRECTION = LITERAL_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_COMPOSITE = LITERAL_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_CONSTANT = LITERAL_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_DERIVED = LITERAL_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_END = LITERAL_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_NONUNIQUE = LITERAL_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_ORDERED = LITERAL_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_PORTION = LITERAL_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_UNIQUE = LITERAL_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_VARIABLE = LITERAL_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__CHAINING_FEATURE = LITERAL_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__CROSS_FEATURE = LITERAL_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__END_OWNING_TYPE = LITERAL_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__FEATURE_TARGET = LITERAL_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__FEATURING_TYPE = LITERAL_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_CROSS_SUBSETTING = LITERAL_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_FEATURE_CHAINING = LITERAL_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_FEATURE_INVERTING = LITERAL_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_REDEFINITION = LITERAL_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_REFERENCE_SUBSETTING = LITERAL_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_SUBSETTING = LITERAL_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_TYPE_FEATURING = LITERAL_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNED_TYPING = LITERAL_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNING_FEATURE_MEMBERSHIP = LITERAL_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__OWNING_TYPE = LITERAL_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__TYPE = LITERAL_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__BEHAVIOR = LITERAL_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__PARAMETER = LITERAL_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__IS_MODEL_LEVEL_EVALUABLE = LITERAL_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__FUNCTION = LITERAL_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__RESULT = LITERAL_EXPRESSION__RESULT; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING__VALUE = LITERAL_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Literal String' class. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING_FEATURE_COUNT = LITERAL_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___EFFECTIVE_NAME = LITERAL_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___EFFECTIVE_SHORT_NAME = LITERAL_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___ESCAPED_NAME = LITERAL_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___LIBRARY_NAMESPACE = LITERAL_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___PATH = LITERAL_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___IMPORTED_MEMBERSHIPS__ELIST = LITERAL_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = LITERAL_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___NAMES_OF__ELEMENT = LITERAL_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___QUALIFICATION_OF__STRING = LITERAL_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___RESOLVE__STRING = LITERAL_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___RESOLVE_GLOBAL__STRING = LITERAL_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___RESOLVE_LOCAL__STRING = LITERAL_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___RESOLVE_VISIBLE__STRING = LITERAL_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___UNQUALIFIED_NAME_OF__STRING = LITERAL_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___VISIBILITY_OF__MEMBERSHIP = LITERAL_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = LITERAL_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___ALL_SUPERTYPES = LITERAL_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___DIRECTION_OF__FEATURE = LITERAL_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = LITERAL_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___IS_COMPATIBLE_WITH__TYPE = LITERAL_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___MULTIPLICITIES = LITERAL_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LITERAL_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___REMOVE_REDEFINED_FEATURES__ELIST = LITERAL_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___SPECIALIZES__TYPE = LITERAL_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___SPECIALIZES_FROM_LIBRARY__STRING = LITERAL_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___SUPERTYPES__BOOLEAN = LITERAL_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___ALL_REDEFINED_FEATURES = LITERAL_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___AS_CARTESIAN_PRODUCT = LITERAL_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___CAN_ACCESS__FEATURE = LITERAL_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___DIRECTION_FOR__TYPE = LITERAL_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___IS_CARTESIAN_PRODUCT = LITERAL_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___IS_FEATURED_WITHIN__TYPE = LITERAL_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___IS_FEATURING_TYPE__TYPE = LITERAL_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___IS_OWNED_CROSS_FEATURE = LITERAL_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___NAMING_FEATURE = LITERAL_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___OWNED_CROSS_FEATURE = LITERAL_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___REDEFINES__FEATURE = LITERAL_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___REDEFINES_FROM_LIBRARY__STRING = LITERAL_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___SUBSETS_CHAIN__FEATURE_FEATURE = LITERAL_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___TYPING_FEATURES = LITERAL_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___CHECK_CONDITION__ELEMENT = LITERAL_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___EVALUATE__ELEMENT = LITERAL_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING___MODEL_LEVEL_EVALUABLE__ELIST = LITERAL_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Literal String' class. + * + * + * @generated + * @ordered + */ + int LITERAL_STRING_OPERATION_COUNT = LITERAL_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MembershipImportImpl Membership Import}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MembershipImportImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMembershipImport() + * @generated + */ + int MEMBERSHIP_IMPORT = 98; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__ALIAS_IDS = IMPORT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__DECLARED_NAME = IMPORT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__DECLARED_SHORT_NAME = IMPORT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__ELEMENT_ID = IMPORT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__IS_IMPLIED_INCLUDED = IMPORT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__IS_LIBRARY_ELEMENT = IMPORT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__NAME = IMPORT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__QUALIFIED_NAME = IMPORT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__SHORT_NAME = IMPORT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__DOCUMENTATION = IMPORT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__OWNED_ANNOTATION = IMPORT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__OWNED_ELEMENT = IMPORT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__OWNED_RELATIONSHIP = IMPORT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__OWNER = IMPORT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__OWNING_MEMBERSHIP = IMPORT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__OWNING_NAMESPACE = IMPORT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__OWNING_RELATIONSHIP = IMPORT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__TEXTUAL_REPRESENTATION = IMPORT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__IS_IMPLIED = IMPORT__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__OWNED_RELATED_ELEMENT = IMPORT__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__OWNING_RELATED_ELEMENT = IMPORT__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__RELATED_ELEMENT = IMPORT__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__SOURCE = IMPORT__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__TARGET = IMPORT__TARGET; + + /** + * The feature id for the 'Is Import All' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__IS_IMPORT_ALL = IMPORT__IS_IMPORT_ALL; + + /** + * The feature id for the 'Is Recursive' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__IS_RECURSIVE = IMPORT__IS_RECURSIVE; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__VISIBILITY = IMPORT__VISIBILITY; + + /** + * The feature id for the 'Imported Element' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__IMPORTED_ELEMENT = IMPORT__IMPORTED_ELEMENT; + + /** + * The feature id for the 'Import Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__IMPORT_OWNING_NAMESPACE = IMPORT__IMPORT_OWNING_NAMESPACE; + + /** + * The feature id for the 'Imported Membership' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT__IMPORTED_MEMBERSHIP = IMPORT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Membership Import' class. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT_FEATURE_COUNT = IMPORT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT___EFFECTIVE_NAME = IMPORT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT___EFFECTIVE_SHORT_NAME = IMPORT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT___ESCAPED_NAME = IMPORT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT___LIBRARY_NAMESPACE = IMPORT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT___PATH = IMPORT___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT___IMPORTED_MEMBERSHIPS__ELIST = IMPORT___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The number of operations of the 'Membership Import' class. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_IMPORT_OPERATION_COUNT = IMPORT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MembershipExposeImpl Membership Expose}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MembershipExposeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMembershipExpose() + * @generated + */ + int MEMBERSHIP_EXPOSE = 97; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__ALIAS_IDS = MEMBERSHIP_IMPORT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__DECLARED_NAME = MEMBERSHIP_IMPORT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__DECLARED_SHORT_NAME = MEMBERSHIP_IMPORT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__ELEMENT_ID = MEMBERSHIP_IMPORT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__IS_IMPLIED_INCLUDED = MEMBERSHIP_IMPORT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__IS_LIBRARY_ELEMENT = MEMBERSHIP_IMPORT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__NAME = MEMBERSHIP_IMPORT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__QUALIFIED_NAME = MEMBERSHIP_IMPORT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__SHORT_NAME = MEMBERSHIP_IMPORT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__DOCUMENTATION = MEMBERSHIP_IMPORT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__OWNED_ANNOTATION = MEMBERSHIP_IMPORT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__OWNED_ELEMENT = MEMBERSHIP_IMPORT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__OWNED_RELATIONSHIP = MEMBERSHIP_IMPORT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__OWNER = MEMBERSHIP_IMPORT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__OWNING_MEMBERSHIP = MEMBERSHIP_IMPORT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__OWNING_NAMESPACE = MEMBERSHIP_IMPORT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__OWNING_RELATIONSHIP = MEMBERSHIP_IMPORT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__TEXTUAL_REPRESENTATION = MEMBERSHIP_IMPORT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__IS_IMPLIED = MEMBERSHIP_IMPORT__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__OWNED_RELATED_ELEMENT = MEMBERSHIP_IMPORT__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__OWNING_RELATED_ELEMENT = MEMBERSHIP_IMPORT__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__RELATED_ELEMENT = MEMBERSHIP_IMPORT__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__SOURCE = MEMBERSHIP_IMPORT__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__TARGET = MEMBERSHIP_IMPORT__TARGET; + + /** + * The feature id for the 'Is Import All' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__IS_IMPORT_ALL = MEMBERSHIP_IMPORT__IS_IMPORT_ALL; + + /** + * The feature id for the 'Is Recursive' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__IS_RECURSIVE = MEMBERSHIP_IMPORT__IS_RECURSIVE; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__VISIBILITY = MEMBERSHIP_IMPORT__VISIBILITY; + + /** + * The feature id for the 'Imported Element' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__IMPORTED_ELEMENT = MEMBERSHIP_IMPORT__IMPORTED_ELEMENT; + + /** + * The feature id for the 'Import Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__IMPORT_OWNING_NAMESPACE = MEMBERSHIP_IMPORT__IMPORT_OWNING_NAMESPACE; + + /** + * The feature id for the 'Imported Membership' reference. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE__IMPORTED_MEMBERSHIP = MEMBERSHIP_IMPORT__IMPORTED_MEMBERSHIP; + + /** + * The number of structural features of the 'Membership Expose' class. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE_FEATURE_COUNT = MEMBERSHIP_IMPORT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE___EFFECTIVE_NAME = MEMBERSHIP_IMPORT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE___EFFECTIVE_SHORT_NAME = MEMBERSHIP_IMPORT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE___ESCAPED_NAME = MEMBERSHIP_IMPORT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE___LIBRARY_NAMESPACE = MEMBERSHIP_IMPORT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE___PATH = MEMBERSHIP_IMPORT___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE___IMPORTED_MEMBERSHIPS__ELIST = MEMBERSHIP_IMPORT___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The number of operations of the 'Membership Expose' class. + * + * + * @generated + * @ordered + */ + int MEMBERSHIP_EXPOSE_OPERATION_COUNT = MEMBERSHIP_IMPORT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MergeNodeImpl Merge Node}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MergeNodeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMergeNode() + * @generated + */ + int MERGE_NODE = 99; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__ALIAS_IDS = CONTROL_NODE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__DECLARED_NAME = CONTROL_NODE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__DECLARED_SHORT_NAME = CONTROL_NODE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__ELEMENT_ID = CONTROL_NODE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_IMPLIED_INCLUDED = CONTROL_NODE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_LIBRARY_ELEMENT = CONTROL_NODE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NAME = CONTROL_NODE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__QUALIFIED_NAME = CONTROL_NODE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__SHORT_NAME = CONTROL_NODE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__DOCUMENTATION = CONTROL_NODE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_ANNOTATION = CONTROL_NODE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_ELEMENT = CONTROL_NODE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_RELATIONSHIP = CONTROL_NODE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNER = CONTROL_NODE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNING_MEMBERSHIP = CONTROL_NODE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNING_NAMESPACE = CONTROL_NODE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNING_RELATIONSHIP = CONTROL_NODE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__TEXTUAL_REPRESENTATION = CONTROL_NODE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IMPORTED_MEMBERSHIP = CONTROL_NODE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__MEMBER = CONTROL_NODE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__MEMBERSHIP = CONTROL_NODE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_IMPORT = CONTROL_NODE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_MEMBER = CONTROL_NODE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_MEMBERSHIP = CONTROL_NODE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_ABSTRACT = CONTROL_NODE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_CONJUGATED = CONTROL_NODE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_SUFFICIENT = CONTROL_NODE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__DIFFERENCING_TYPE = CONTROL_NODE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__DIRECTED_FEATURE = CONTROL_NODE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__END_FEATURE = CONTROL_NODE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__FEATURE = CONTROL_NODE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__FEATURE_MEMBERSHIP = CONTROL_NODE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__INHERITED_FEATURE = CONTROL_NODE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__INHERITED_MEMBERSHIP = CONTROL_NODE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__INPUT = CONTROL_NODE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__INTERSECTING_TYPE = CONTROL_NODE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__MULTIPLICITY = CONTROL_NODE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OUTPUT = CONTROL_NODE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_CONJUGATOR = CONTROL_NODE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_DIFFERENCING = CONTROL_NODE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_DISJOINING = CONTROL_NODE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_END_FEATURE = CONTROL_NODE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_FEATURE = CONTROL_NODE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_FEATURE_MEMBERSHIP = CONTROL_NODE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_INTERSECTING = CONTROL_NODE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_SPECIALIZATION = CONTROL_NODE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_UNIONING = CONTROL_NODE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__UNIONING_TYPE = CONTROL_NODE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__DIRECTION = CONTROL_NODE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_COMPOSITE = CONTROL_NODE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_CONSTANT = CONTROL_NODE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_DERIVED = CONTROL_NODE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_END = CONTROL_NODE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_NONUNIQUE = CONTROL_NODE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_ORDERED = CONTROL_NODE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_PORTION = CONTROL_NODE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_UNIQUE = CONTROL_NODE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_VARIABLE = CONTROL_NODE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__CHAINING_FEATURE = CONTROL_NODE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__CROSS_FEATURE = CONTROL_NODE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__END_OWNING_TYPE = CONTROL_NODE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__FEATURE_TARGET = CONTROL_NODE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__FEATURING_TYPE = CONTROL_NODE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_CROSS_SUBSETTING = CONTROL_NODE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_FEATURE_CHAINING = CONTROL_NODE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_FEATURE_INVERTING = CONTROL_NODE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_REDEFINITION = CONTROL_NODE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_REFERENCE_SUBSETTING = CONTROL_NODE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_SUBSETTING = CONTROL_NODE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_TYPE_FEATURING = CONTROL_NODE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNED_TYPING = CONTROL_NODE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNING_FEATURE_MEMBERSHIP = CONTROL_NODE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNING_TYPE = CONTROL_NODE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__TYPE = CONTROL_NODE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_REFERENCE = CONTROL_NODE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_VARIATION = CONTROL_NODE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__MAY_TIME_VARY = CONTROL_NODE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__DEFINITION = CONTROL_NODE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__DIRECTED_USAGE = CONTROL_NODE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_ACTION = CONTROL_NODE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_ALLOCATION = CONTROL_NODE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_ANALYSIS_CASE = CONTROL_NODE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_ATTRIBUTE = CONTROL_NODE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_CALCULATION = CONTROL_NODE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_CASE = CONTROL_NODE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_CONCERN = CONTROL_NODE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_CONNECTION = CONTROL_NODE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_CONSTRAINT = CONTROL_NODE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_ENUMERATION = CONTROL_NODE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_FLOW = CONTROL_NODE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_INTERFACE = CONTROL_NODE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_ITEM = CONTROL_NODE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_METADATA = CONTROL_NODE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_OCCURRENCE = CONTROL_NODE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_PART = CONTROL_NODE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_PORT = CONTROL_NODE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_REFERENCE = CONTROL_NODE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_RENDERING = CONTROL_NODE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_REQUIREMENT = CONTROL_NODE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_STATE = CONTROL_NODE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_TRANSITION = CONTROL_NODE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_USAGE = CONTROL_NODE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_USE_CASE = CONTROL_NODE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_VERIFICATION_CASE = CONTROL_NODE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_VIEW = CONTROL_NODE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__NESTED_VIEWPOINT = CONTROL_NODE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNING_DEFINITION = CONTROL_NODE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OWNING_USAGE = CONTROL_NODE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__USAGE = CONTROL_NODE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__VARIANT = CONTROL_NODE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__VARIANT_MEMBERSHIP = CONTROL_NODE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__IS_INDIVIDUAL = CONTROL_NODE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__PORTION_KIND = CONTROL_NODE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__INDIVIDUAL_DEFINITION = CONTROL_NODE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__OCCURRENCE_DEFINITION = CONTROL_NODE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__BEHAVIOR = CONTROL_NODE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__PARAMETER = CONTROL_NODE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int MERGE_NODE__ACTION_DEFINITION = CONTROL_NODE__ACTION_DEFINITION; + + /** + * The number of structural features of the 'Merge Node' class. + * + * + * @generated + * @ordered + */ + int MERGE_NODE_FEATURE_COUNT = CONTROL_NODE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___EFFECTIVE_NAME = CONTROL_NODE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___EFFECTIVE_SHORT_NAME = CONTROL_NODE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___ESCAPED_NAME = CONTROL_NODE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___LIBRARY_NAMESPACE = CONTROL_NODE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___PATH = CONTROL_NODE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___IMPORTED_MEMBERSHIPS__ELIST = CONTROL_NODE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONTROL_NODE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___NAMES_OF__ELEMENT = CONTROL_NODE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___QUALIFICATION_OF__STRING = CONTROL_NODE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___RESOLVE__STRING = CONTROL_NODE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___RESOLVE_GLOBAL__STRING = CONTROL_NODE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___RESOLVE_LOCAL__STRING = CONTROL_NODE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___RESOLVE_VISIBLE__STRING = CONTROL_NODE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___UNQUALIFIED_NAME_OF__STRING = CONTROL_NODE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___VISIBILITY_OF__MEMBERSHIP = CONTROL_NODE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONTROL_NODE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONTROL_NODE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___ALL_SUPERTYPES = CONTROL_NODE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___DIRECTION_OF__FEATURE = CONTROL_NODE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONTROL_NODE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___IS_COMPATIBLE_WITH__TYPE = CONTROL_NODE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___MULTIPLICITIES = CONTROL_NODE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONTROL_NODE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___REMOVE_REDEFINED_FEATURES__ELIST = CONTROL_NODE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___SPECIALIZES__TYPE = CONTROL_NODE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___SPECIALIZES_FROM_LIBRARY__STRING = CONTROL_NODE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___SUPERTYPES__BOOLEAN = CONTROL_NODE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___ALL_REDEFINED_FEATURES = CONTROL_NODE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___AS_CARTESIAN_PRODUCT = CONTROL_NODE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___CAN_ACCESS__FEATURE = CONTROL_NODE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___DIRECTION_FOR__TYPE = CONTROL_NODE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___IS_CARTESIAN_PRODUCT = CONTROL_NODE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___IS_FEATURED_WITHIN__TYPE = CONTROL_NODE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___IS_FEATURING_TYPE__TYPE = CONTROL_NODE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___IS_OWNED_CROSS_FEATURE = CONTROL_NODE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___NAMING_FEATURE = CONTROL_NODE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___OWNED_CROSS_FEATURE = CONTROL_NODE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___REDEFINES__FEATURE = CONTROL_NODE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___REDEFINES_FROM_LIBRARY__STRING = CONTROL_NODE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___SUBSETS_CHAIN__FEATURE_FEATURE = CONTROL_NODE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___TYPING_FEATURES = CONTROL_NODE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___REFERENCED_FEATURE_TARGET = CONTROL_NODE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___ARGUMENT__INT = CONTROL_NODE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___INPUT_PARAMETER__INT = CONTROL_NODE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___INPUT_PARAMETERS = CONTROL_NODE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___IS_SUBACTION_USAGE = CONTROL_NODE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Multiplicity Has Bounds' operation. + * + * + * @generated + * @ordered + */ + int MERGE_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT = CONTROL_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT; + + /** + * The number of operations of the 'Merge Node' class. + * + * + * @generated + * @ordered + */ + int MERGE_NODE_OPERATION_COUNT = CONTROL_NODE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.StructureImpl Structure}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StructureImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStructure() + * @generated + */ + int STRUCTURE = 147; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__ALIAS_IDS = CLASS__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__DECLARED_NAME = CLASS__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__DECLARED_SHORT_NAME = CLASS__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__ELEMENT_ID = CLASS__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__IS_IMPLIED_INCLUDED = CLASS__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__IS_LIBRARY_ELEMENT = CLASS__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__NAME = CLASS__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__QUALIFIED_NAME = CLASS__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__SHORT_NAME = CLASS__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__DOCUMENTATION = CLASS__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_ANNOTATION = CLASS__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_ELEMENT = CLASS__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_RELATIONSHIP = CLASS__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNER = CLASS__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNING_MEMBERSHIP = CLASS__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNING_NAMESPACE = CLASS__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNING_RELATIONSHIP = CLASS__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__TEXTUAL_REPRESENTATION = CLASS__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__IMPORTED_MEMBERSHIP = CLASS__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__MEMBER = CLASS__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__MEMBERSHIP = CLASS__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_IMPORT = CLASS__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_MEMBER = CLASS__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_MEMBERSHIP = CLASS__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__IS_ABSTRACT = CLASS__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__IS_CONJUGATED = CLASS__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int STRUCTURE__IS_SUFFICIENT = CLASS__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__DIFFERENCING_TYPE = CLASS__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__DIRECTED_FEATURE = CLASS__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__END_FEATURE = CLASS__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__FEATURE = CLASS__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__FEATURE_MEMBERSHIP = CLASS__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__INHERITED_FEATURE = CLASS__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__INHERITED_MEMBERSHIP = CLASS__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__INPUT = CLASS__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__INTERSECTING_TYPE = CLASS__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURE__MULTIPLICITY = CLASS__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OUTPUT = CLASS__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_CONJUGATOR = CLASS__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_DIFFERENCING = CLASS__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_DISJOINING = CLASS__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_END_FEATURE = CLASS__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_FEATURE = CLASS__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_FEATURE_MEMBERSHIP = CLASS__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_INTERSECTING = CLASS__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_SPECIALIZATION = CLASS__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_UNIONING = CLASS__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__UNIONING_TYPE = CLASS__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int STRUCTURE__OWNED_SUBCLASSIFICATION = CLASS__OWNED_SUBCLASSIFICATION; + + /** + * The number of structural features of the 'Structure' class. + * + * + * @generated + * @ordered + */ + int STRUCTURE_FEATURE_COUNT = CLASS_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___EFFECTIVE_NAME = CLASS___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___EFFECTIVE_SHORT_NAME = CLASS___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___ESCAPED_NAME = CLASS___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___LIBRARY_NAMESPACE = CLASS___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___PATH = CLASS___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___IMPORTED_MEMBERSHIPS__ELIST = CLASS___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CLASS___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___NAMES_OF__ELEMENT = CLASS___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___QUALIFICATION_OF__STRING = CLASS___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___RESOLVE__STRING = CLASS___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___RESOLVE_GLOBAL__STRING = CLASS___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___RESOLVE_LOCAL__STRING = CLASS___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___RESOLVE_VISIBLE__STRING = CLASS___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___UNQUALIFIED_NAME_OF__STRING = CLASS___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___VISIBILITY_OF__MEMBERSHIP = CLASS___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CLASS___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CLASS___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___ALL_SUPERTYPES = CLASS___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___DIRECTION_OF__FEATURE = CLASS___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CLASS___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASS___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASS___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___IS_COMPATIBLE_WITH__TYPE = CLASS___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___MULTIPLICITIES = CLASS___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CLASS___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___REMOVE_REDEFINED_FEATURES__ELIST = CLASS___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___SPECIALIZES__TYPE = CLASS___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___SPECIALIZES_FROM_LIBRARY__STRING = CLASS___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int STRUCTURE___SUPERTYPES__BOOLEAN = CLASS___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Structure' class. + * + * + * @generated + * @ordered + */ + int STRUCTURE_OPERATION_COUNT = CLASS_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MetaclassImpl Metaclass}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MetaclassImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMetaclass() + * @generated + */ + int METACLASS = 100; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int METACLASS__ALIAS_IDS = STRUCTURE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__DECLARED_NAME = STRUCTURE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__DECLARED_SHORT_NAME = STRUCTURE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__ELEMENT_ID = STRUCTURE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__IS_IMPLIED_INCLUDED = STRUCTURE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__IS_LIBRARY_ELEMENT = STRUCTURE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__NAME = STRUCTURE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__QUALIFIED_NAME = STRUCTURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__SHORT_NAME = STRUCTURE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__DOCUMENTATION = STRUCTURE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_ANNOTATION = STRUCTURE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_ELEMENT = STRUCTURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_RELATIONSHIP = STRUCTURE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNER = STRUCTURE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNING_MEMBERSHIP = STRUCTURE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNING_NAMESPACE = STRUCTURE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNING_RELATIONSHIP = STRUCTURE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__TEXTUAL_REPRESENTATION = STRUCTURE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__IMPORTED_MEMBERSHIP = STRUCTURE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__MEMBER = STRUCTURE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__MEMBERSHIP = STRUCTURE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_IMPORT = STRUCTURE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_MEMBER = STRUCTURE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_MEMBERSHIP = STRUCTURE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__IS_ABSTRACT = STRUCTURE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__IS_CONJUGATED = STRUCTURE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int METACLASS__IS_SUFFICIENT = STRUCTURE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__DIFFERENCING_TYPE = STRUCTURE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__DIRECTED_FEATURE = STRUCTURE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__END_FEATURE = STRUCTURE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__FEATURE = STRUCTURE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__FEATURE_MEMBERSHIP = STRUCTURE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__INHERITED_FEATURE = STRUCTURE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__INHERITED_MEMBERSHIP = STRUCTURE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__INPUT = STRUCTURE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__INTERSECTING_TYPE = STRUCTURE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int METACLASS__MULTIPLICITY = STRUCTURE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OUTPUT = STRUCTURE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_CONJUGATOR = STRUCTURE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_DIFFERENCING = STRUCTURE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_DISJOINING = STRUCTURE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_END_FEATURE = STRUCTURE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_FEATURE = STRUCTURE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_FEATURE_MEMBERSHIP = STRUCTURE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_INTERSECTING = STRUCTURE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_SPECIALIZATION = STRUCTURE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_UNIONING = STRUCTURE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__UNIONING_TYPE = STRUCTURE__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int METACLASS__OWNED_SUBCLASSIFICATION = STRUCTURE__OWNED_SUBCLASSIFICATION; + + /** + * The number of structural features of the 'Metaclass' class. + * + * + * @generated + * @ordered + */ + int METACLASS_FEATURE_COUNT = STRUCTURE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___EFFECTIVE_NAME = STRUCTURE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___EFFECTIVE_SHORT_NAME = STRUCTURE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___ESCAPED_NAME = STRUCTURE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___LIBRARY_NAMESPACE = STRUCTURE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___PATH = STRUCTURE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___IMPORTED_MEMBERSHIPS__ELIST = STRUCTURE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = STRUCTURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___NAMES_OF__ELEMENT = STRUCTURE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___QUALIFICATION_OF__STRING = STRUCTURE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___RESOLVE__STRING = STRUCTURE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___RESOLVE_GLOBAL__STRING = STRUCTURE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___RESOLVE_LOCAL__STRING = STRUCTURE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___RESOLVE_VISIBLE__STRING = STRUCTURE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___UNQUALIFIED_NAME_OF__STRING = STRUCTURE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___VISIBILITY_OF__MEMBERSHIP = STRUCTURE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = STRUCTURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = STRUCTURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___ALL_SUPERTYPES = STRUCTURE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___DIRECTION_OF__FEATURE = STRUCTURE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = STRUCTURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = STRUCTURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = STRUCTURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___IS_COMPATIBLE_WITH__TYPE = STRUCTURE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___MULTIPLICITIES = STRUCTURE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = STRUCTURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___REMOVE_REDEFINED_FEATURES__ELIST = STRUCTURE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___SPECIALIZES__TYPE = STRUCTURE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___SPECIALIZES_FROM_LIBRARY__STRING = STRUCTURE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int METACLASS___SUPERTYPES__BOOLEAN = STRUCTURE___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Metaclass' class. + * + * + * @generated + * @ordered + */ + int METACLASS_OPERATION_COUNT = STRUCTURE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MetadataAccessExpressionImpl Metadata Access Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MetadataAccessExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMetadataAccessExpression() + * @generated + */ + int METADATA_ACCESS_EXPRESSION = 101; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__ALIAS_IDS = EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__DECLARED_NAME = EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__DECLARED_SHORT_NAME = EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__ELEMENT_ID = EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_IMPLIED_INCLUDED = EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_LIBRARY_ELEMENT = EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__QUALIFIED_NAME = EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__SHORT_NAME = EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__DOCUMENTATION = EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_ANNOTATION = EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_ELEMENT = EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_RELATIONSHIP = EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNER = EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNING_MEMBERSHIP = EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNING_NAMESPACE = EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNING_RELATIONSHIP = EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__TEXTUAL_REPRESENTATION = EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IMPORTED_MEMBERSHIP = EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__MEMBER = EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__MEMBERSHIP = EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_IMPORT = EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_MEMBER = EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_MEMBERSHIP = EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_ABSTRACT = EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_CONJUGATED = EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_SUFFICIENT = EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__DIFFERENCING_TYPE = EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__DIRECTED_FEATURE = EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__END_FEATURE = EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__FEATURE = EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__FEATURE_MEMBERSHIP = EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__INHERITED_FEATURE = EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__INHERITED_MEMBERSHIP = EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__INPUT = EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__INTERSECTING_TYPE = EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__MULTIPLICITY = EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OUTPUT = EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_CONJUGATOR = EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_DIFFERENCING = EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_DISJOINING = EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_END_FEATURE = EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_FEATURE = EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_INTERSECTING = EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_SPECIALIZATION = EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_UNIONING = EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__UNIONING_TYPE = EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__DIRECTION = EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_COMPOSITE = EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_CONSTANT = EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_DERIVED = EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_END = EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_NONUNIQUE = EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_ORDERED = EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_PORTION = EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_UNIQUE = EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_VARIABLE = EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__CHAINING_FEATURE = EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__CROSS_FEATURE = EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__END_OWNING_TYPE = EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__FEATURE_TARGET = EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__FEATURING_TYPE = EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_CROSS_SUBSETTING = EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_FEATURE_CHAINING = EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_FEATURE_INVERTING = EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_REDEFINITION = EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_REFERENCE_SUBSETTING = EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_SUBSETTING = EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_TYPE_FEATURING = EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNED_TYPING = EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__OWNING_TYPE = EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__BEHAVIOR = EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__PARAMETER = EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__FUNCTION = EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__RESULT = EXPRESSION__RESULT; + + /** + * The feature id for the 'Referenced Element' reference. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION__REFERENCED_ELEMENT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Metadata Access Expression' class. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___EFFECTIVE_NAME = EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___EFFECTIVE_SHORT_NAME = EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___ESCAPED_NAME = EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___LIBRARY_NAMESPACE = EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___PATH = EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___NAMES_OF__ELEMENT = EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___QUALIFICATION_OF__STRING = EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___RESOLVE__STRING = EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___RESOLVE_GLOBAL__STRING = EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___RESOLVE_LOCAL__STRING = EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___RESOLVE_VISIBLE__STRING = EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___ALL_SUPERTYPES = EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___DIRECTION_OF__FEATURE = EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___MULTIPLICITIES = EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___SPECIALIZES__TYPE = EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___SUPERTYPES__BOOLEAN = EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___ALL_REDEFINED_FEATURES = EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___AS_CARTESIAN_PRODUCT = EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___CAN_ACCESS__FEATURE = EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___DIRECTION_FOR__TYPE = EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___IS_CARTESIAN_PRODUCT = EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___IS_FEATURED_WITHIN__TYPE = EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___IS_FEATURING_TYPE__TYPE = EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___IS_OWNED_CROSS_FEATURE = EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___NAMING_FEATURE = EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___OWNED_CROSS_FEATURE = EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___REDEFINES__FEATURE = EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___TYPING_FEATURES = EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___CHECK_CONDITION__ELEMENT = EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___EVALUATE__ELEMENT = EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The operation id for the 'Metaclass Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION___METACLASS_FEATURE = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'Metadata Access Expression' class. + * + * + * @generated + * @ordered + */ + int METADATA_ACCESS_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MetadataDefinitionImpl Metadata Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MetadataDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMetadataDefinition() + * @generated + */ + int METADATA_DEFINITION = 102; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__ALIAS_IDS = ITEM_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__DECLARED_NAME = ITEM_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__DECLARED_SHORT_NAME = ITEM_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__ELEMENT_ID = ITEM_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__IS_IMPLIED_INCLUDED = ITEM_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__IS_LIBRARY_ELEMENT = ITEM_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__NAME = ITEM_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__QUALIFIED_NAME = ITEM_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__SHORT_NAME = ITEM_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__DOCUMENTATION = ITEM_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_ANNOTATION = ITEM_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_ELEMENT = ITEM_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_RELATIONSHIP = ITEM_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNER = ITEM_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNING_MEMBERSHIP = ITEM_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNING_NAMESPACE = ITEM_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNING_RELATIONSHIP = ITEM_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__TEXTUAL_REPRESENTATION = ITEM_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__IMPORTED_MEMBERSHIP = ITEM_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__MEMBER = ITEM_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__MEMBERSHIP = ITEM_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_IMPORT = ITEM_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_MEMBER = ITEM_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_MEMBERSHIP = ITEM_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__IS_ABSTRACT = ITEM_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__IS_CONJUGATED = ITEM_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__IS_SUFFICIENT = ITEM_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__DIFFERENCING_TYPE = ITEM_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__DIRECTED_FEATURE = ITEM_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__END_FEATURE = ITEM_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__FEATURE = ITEM_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__FEATURE_MEMBERSHIP = ITEM_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__INHERITED_FEATURE = ITEM_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__INHERITED_MEMBERSHIP = ITEM_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__INPUT = ITEM_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__INTERSECTING_TYPE = ITEM_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__MULTIPLICITY = ITEM_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OUTPUT = ITEM_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_CONJUGATOR = ITEM_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_DIFFERENCING = ITEM_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_DISJOINING = ITEM_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_END_FEATURE = ITEM_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_FEATURE = ITEM_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_FEATURE_MEMBERSHIP = ITEM_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_INTERSECTING = ITEM_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_SPECIALIZATION = ITEM_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_UNIONING = ITEM_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__UNIONING_TYPE = ITEM_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_SUBCLASSIFICATION = ITEM_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__IS_VARIATION = ITEM_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__DIRECTED_USAGE = ITEM_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_ACTION = ITEM_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_ALLOCATION = ITEM_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_ANALYSIS_CASE = ITEM_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_ATTRIBUTE = ITEM_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_CALCULATION = ITEM_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_CASE = ITEM_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_CONCERN = ITEM_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_CONNECTION = ITEM_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_CONSTRAINT = ITEM_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_ENUMERATION = ITEM_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_FLOW = ITEM_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_INTERFACE = ITEM_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_ITEM = ITEM_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_METADATA = ITEM_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_OCCURRENCE = ITEM_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_PART = ITEM_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_PORT = ITEM_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_REFERENCE = ITEM_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_RENDERING = ITEM_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_REQUIREMENT = ITEM_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_STATE = ITEM_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_TRANSITION = ITEM_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_USAGE = ITEM_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_USE_CASE = ITEM_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_VERIFICATION_CASE = ITEM_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_VIEW = ITEM_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__OWNED_VIEWPOINT = ITEM_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__USAGE = ITEM_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__VARIANT = ITEM_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__VARIANT_MEMBERSHIP = ITEM_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION__IS_INDIVIDUAL = ITEM_DEFINITION__IS_INDIVIDUAL; + + /** + * The number of structural features of the 'Metadata Definition' class. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION_FEATURE_COUNT = ITEM_DEFINITION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___EFFECTIVE_NAME = ITEM_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___EFFECTIVE_SHORT_NAME = ITEM_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___ESCAPED_NAME = ITEM_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___LIBRARY_NAMESPACE = ITEM_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___PATH = ITEM_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = ITEM_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ITEM_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___NAMES_OF__ELEMENT = ITEM_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___QUALIFICATION_OF__STRING = ITEM_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___RESOLVE__STRING = ITEM_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___RESOLVE_GLOBAL__STRING = ITEM_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___RESOLVE_LOCAL__STRING = ITEM_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___RESOLVE_VISIBLE__STRING = ITEM_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___UNQUALIFIED_NAME_OF__STRING = ITEM_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___VISIBILITY_OF__MEMBERSHIP = ITEM_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ITEM_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ITEM_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___ALL_SUPERTYPES = ITEM_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___DIRECTION_OF__FEATURE = ITEM_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ITEM_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___IS_COMPATIBLE_WITH__TYPE = ITEM_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___MULTIPLICITIES = ITEM_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = ITEM_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___SPECIALIZES__TYPE = ITEM_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = ITEM_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION___SUPERTYPES__BOOLEAN = ITEM_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Metadata Definition' class. + * + * + * @generated + * @ordered + */ + int METADATA_DEFINITION_OPERATION_COUNT = ITEM_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MetadataFeatureImpl Metadata Feature}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MetadataFeatureImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMetadataFeature() + * @generated + */ + int METADATA_FEATURE = 103; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__ALIAS_IDS = FEATURE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__DECLARED_NAME = FEATURE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__DECLARED_SHORT_NAME = FEATURE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__ELEMENT_ID = FEATURE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_IMPLIED_INCLUDED = FEATURE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_LIBRARY_ELEMENT = FEATURE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__NAME = FEATURE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__SHORT_NAME = FEATURE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__DOCUMENTATION = FEATURE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_ANNOTATION = FEATURE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_RELATIONSHIP = FEATURE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNER = FEATURE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNING_MEMBERSHIP = FEATURE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNING_NAMESPACE = FEATURE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNING_RELATIONSHIP = FEATURE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__TEXTUAL_REPRESENTATION = FEATURE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IMPORTED_MEMBERSHIP = FEATURE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__MEMBER = FEATURE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__MEMBERSHIP = FEATURE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_IMPORT = FEATURE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_MEMBER = FEATURE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_MEMBERSHIP = FEATURE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_ABSTRACT = FEATURE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_CONJUGATED = FEATURE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_SUFFICIENT = FEATURE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__DIFFERENCING_TYPE = FEATURE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__DIRECTED_FEATURE = FEATURE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__END_FEATURE = FEATURE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__FEATURE = FEATURE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__FEATURE_MEMBERSHIP = FEATURE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__INHERITED_FEATURE = FEATURE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__INHERITED_MEMBERSHIP = FEATURE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__INPUT = FEATURE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__INTERSECTING_TYPE = FEATURE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__MULTIPLICITY = FEATURE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OUTPUT = FEATURE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_CONJUGATOR = FEATURE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_DIFFERENCING = FEATURE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_DISJOINING = FEATURE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_END_FEATURE = FEATURE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_FEATURE = FEATURE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_FEATURE_MEMBERSHIP = FEATURE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_INTERSECTING = FEATURE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_SPECIALIZATION = FEATURE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_UNIONING = FEATURE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__UNIONING_TYPE = FEATURE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__DIRECTION = FEATURE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_COMPOSITE = FEATURE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_CONSTANT = FEATURE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_DERIVED = FEATURE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_END = FEATURE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_NONUNIQUE = FEATURE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_ORDERED = FEATURE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_PORTION = FEATURE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_UNIQUE = FEATURE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__IS_VARIABLE = FEATURE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__CHAINING_FEATURE = FEATURE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__CROSS_FEATURE = FEATURE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__END_OWNING_TYPE = FEATURE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__FEATURE_TARGET = FEATURE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__FEATURING_TYPE = FEATURE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_CROSS_SUBSETTING = FEATURE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_FEATURE_CHAINING = FEATURE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_FEATURE_INVERTING = FEATURE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_REDEFINITION = FEATURE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_REFERENCE_SUBSETTING = FEATURE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_SUBSETTING = FEATURE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_TYPE_FEATURING = FEATURE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_TYPING = FEATURE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNING_FEATURE_MEMBERSHIP = FEATURE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNING_TYPE = FEATURE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__TYPE = FEATURE__TYPE; + + /** + * The feature id for the 'Annotated Element' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__ANNOTATED_ELEMENT = FEATURE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Annotation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__ANNOTATION = FEATURE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Annotating Relationship' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNED_ANNOTATING_RELATIONSHIP = FEATURE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owning Annotating Relationship' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__OWNING_ANNOTATING_RELATIONSHIP = FEATURE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Metaclass' reference. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE__METACLASS = FEATURE_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'Metadata Feature' class. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 5; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___EFFECTIVE_NAME = FEATURE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___EFFECTIVE_SHORT_NAME = FEATURE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___ESCAPED_NAME = FEATURE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___LIBRARY_NAMESPACE = FEATURE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___PATH = FEATURE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___IMPORTED_MEMBERSHIPS__ELIST = FEATURE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = FEATURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___NAMES_OF__ELEMENT = FEATURE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___QUALIFICATION_OF__STRING = FEATURE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___RESOLVE__STRING = FEATURE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___RESOLVE_GLOBAL__STRING = FEATURE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___RESOLVE_LOCAL__STRING = FEATURE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___RESOLVE_VISIBLE__STRING = FEATURE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___UNQUALIFIED_NAME_OF__STRING = FEATURE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___VISIBILITY_OF__MEMBERSHIP = FEATURE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = FEATURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = FEATURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___ALL_SUPERTYPES = FEATURE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___DIRECTION_OF__FEATURE = FEATURE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = FEATURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___IS_COMPATIBLE_WITH__TYPE = FEATURE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___MULTIPLICITIES = FEATURE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___REMOVE_REDEFINED_FEATURES__ELIST = FEATURE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___SPECIALIZES__TYPE = FEATURE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___SPECIALIZES_FROM_LIBRARY__STRING = FEATURE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___SUPERTYPES__BOOLEAN = FEATURE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___ALL_REDEFINED_FEATURES = FEATURE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___AS_CARTESIAN_PRODUCT = FEATURE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___CAN_ACCESS__FEATURE = FEATURE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___DIRECTION_FOR__TYPE = FEATURE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___IS_CARTESIAN_PRODUCT = FEATURE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___IS_FEATURED_WITHIN__TYPE = FEATURE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___IS_FEATURING_TYPE__TYPE = FEATURE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___IS_OWNED_CROSS_FEATURE = FEATURE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___NAMING_FEATURE = FEATURE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___OWNED_CROSS_FEATURE = FEATURE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___REDEFINES__FEATURE = FEATURE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___REDEFINES_FROM_LIBRARY__STRING = FEATURE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE = FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___TYPING_FEATURES = FEATURE___TYPING_FEATURES; + + /** + * The operation id for the 'Evaluate Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___EVALUATE_FEATURE__FEATURE = FEATURE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Is Semantic' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___IS_SEMANTIC = FEATURE_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Is Syntactic' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___IS_SYNTACTIC = FEATURE_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Syntax Element' operation. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE___SYNTAX_ELEMENT = FEATURE_OPERATION_COUNT + 3; + + /** + * The number of operations of the 'Metadata Feature' class. + * + * + * @generated + * @ordered + */ + int METADATA_FEATURE_OPERATION_COUNT = FEATURE_OPERATION_COUNT + 4; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MetadataUsageImpl Metadata Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MetadataUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMetadataUsage() + * @generated + */ + int METADATA_USAGE = 104; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__ALIAS_IDS = ITEM_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__DECLARED_NAME = ITEM_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__DECLARED_SHORT_NAME = ITEM_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__ELEMENT_ID = ITEM_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_IMPLIED_INCLUDED = ITEM_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_LIBRARY_ELEMENT = ITEM_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NAME = ITEM_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__QUALIFIED_NAME = ITEM_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__SHORT_NAME = ITEM_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__DOCUMENTATION = ITEM_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_ANNOTATION = ITEM_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_ELEMENT = ITEM_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_RELATIONSHIP = ITEM_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNER = ITEM_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNING_MEMBERSHIP = ITEM_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNING_NAMESPACE = ITEM_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNING_RELATIONSHIP = ITEM_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__TEXTUAL_REPRESENTATION = ITEM_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IMPORTED_MEMBERSHIP = ITEM_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__MEMBER = ITEM_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__MEMBERSHIP = ITEM_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_IMPORT = ITEM_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_MEMBER = ITEM_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_MEMBERSHIP = ITEM_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_ABSTRACT = ITEM_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_CONJUGATED = ITEM_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_SUFFICIENT = ITEM_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__DIFFERENCING_TYPE = ITEM_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__DIRECTED_FEATURE = ITEM_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__END_FEATURE = ITEM_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__FEATURE = ITEM_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__FEATURE_MEMBERSHIP = ITEM_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__INHERITED_FEATURE = ITEM_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__INHERITED_MEMBERSHIP = ITEM_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__INPUT = ITEM_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__INTERSECTING_TYPE = ITEM_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__MULTIPLICITY = ITEM_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OUTPUT = ITEM_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_CONJUGATOR = ITEM_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_DIFFERENCING = ITEM_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_DISJOINING = ITEM_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_END_FEATURE = ITEM_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_FEATURE = ITEM_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_FEATURE_MEMBERSHIP = ITEM_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_INTERSECTING = ITEM_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_SPECIALIZATION = ITEM_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_UNIONING = ITEM_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__UNIONING_TYPE = ITEM_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__DIRECTION = ITEM_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_COMPOSITE = ITEM_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_CONSTANT = ITEM_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_DERIVED = ITEM_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_END = ITEM_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_NONUNIQUE = ITEM_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_ORDERED = ITEM_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_PORTION = ITEM_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_UNIQUE = ITEM_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_VARIABLE = ITEM_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__CHAINING_FEATURE = ITEM_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__CROSS_FEATURE = ITEM_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__END_OWNING_TYPE = ITEM_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__FEATURE_TARGET = ITEM_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__FEATURING_TYPE = ITEM_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_CROSS_SUBSETTING = ITEM_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_FEATURE_CHAINING = ITEM_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_FEATURE_INVERTING = ITEM_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_REDEFINITION = ITEM_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_REFERENCE_SUBSETTING = ITEM_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_SUBSETTING = ITEM_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_TYPE_FEATURING = ITEM_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_TYPING = ITEM_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNING_FEATURE_MEMBERSHIP = ITEM_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNING_TYPE = ITEM_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__TYPE = ITEM_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_REFERENCE = ITEM_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_VARIATION = ITEM_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__MAY_TIME_VARY = ITEM_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__DEFINITION = ITEM_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__DIRECTED_USAGE = ITEM_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_ACTION = ITEM_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_ALLOCATION = ITEM_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_ANALYSIS_CASE = ITEM_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_ATTRIBUTE = ITEM_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_CALCULATION = ITEM_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_CASE = ITEM_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_CONCERN = ITEM_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_CONNECTION = ITEM_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_CONSTRAINT = ITEM_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_ENUMERATION = ITEM_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_FLOW = ITEM_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_INTERFACE = ITEM_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_ITEM = ITEM_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_METADATA = ITEM_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_OCCURRENCE = ITEM_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_PART = ITEM_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_PORT = ITEM_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_REFERENCE = ITEM_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_RENDERING = ITEM_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_REQUIREMENT = ITEM_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_STATE = ITEM_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_TRANSITION = ITEM_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_USAGE = ITEM_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_USE_CASE = ITEM_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_VERIFICATION_CASE = ITEM_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_VIEW = ITEM_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__NESTED_VIEWPOINT = ITEM_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNING_DEFINITION = ITEM_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNING_USAGE = ITEM_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__USAGE = ITEM_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__VARIANT = ITEM_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__VARIANT_MEMBERSHIP = ITEM_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__IS_INDIVIDUAL = ITEM_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__PORTION_KIND = ITEM_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__INDIVIDUAL_DEFINITION = ITEM_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OCCURRENCE_DEFINITION = ITEM_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Item Definition' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__ITEM_DEFINITION = ITEM_USAGE__ITEM_DEFINITION; + + /** + * The feature id for the 'Annotated Element' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__ANNOTATED_ELEMENT = ITEM_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Annotation' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__ANNOTATION = ITEM_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owned Annotating Relationship' reference list. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNED_ANNOTATING_RELATIONSHIP = ITEM_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Owning Annotating Relationship' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__OWNING_ANNOTATING_RELATIONSHIP = ITEM_USAGE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Metaclass' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__METACLASS = ITEM_USAGE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Metadata Definition' reference. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE__METADATA_DEFINITION = ITEM_USAGE_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Metadata Usage' class. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE_FEATURE_COUNT = ITEM_USAGE_FEATURE_COUNT + 6; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___EFFECTIVE_NAME = ITEM_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___EFFECTIVE_SHORT_NAME = ITEM_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___ESCAPED_NAME = ITEM_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___LIBRARY_NAMESPACE = ITEM_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___PATH = ITEM_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ITEM_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ITEM_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___NAMES_OF__ELEMENT = ITEM_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___QUALIFICATION_OF__STRING = ITEM_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___RESOLVE__STRING = ITEM_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___RESOLVE_GLOBAL__STRING = ITEM_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___RESOLVE_LOCAL__STRING = ITEM_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___RESOLVE_VISIBLE__STRING = ITEM_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___UNQUALIFIED_NAME_OF__STRING = ITEM_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___VISIBILITY_OF__MEMBERSHIP = ITEM_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ITEM_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ITEM_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___ALL_SUPERTYPES = ITEM_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___DIRECTION_OF__FEATURE = ITEM_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ITEM_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___IS_COMPATIBLE_WITH__TYPE = ITEM_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___MULTIPLICITIES = ITEM_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ITEM_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___SPECIALIZES__TYPE = ITEM_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ITEM_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___SUPERTYPES__BOOLEAN = ITEM_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___ALL_REDEFINED_FEATURES = ITEM_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___AS_CARTESIAN_PRODUCT = ITEM_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___CAN_ACCESS__FEATURE = ITEM_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___DIRECTION_FOR__TYPE = ITEM_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___IS_CARTESIAN_PRODUCT = ITEM_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___IS_FEATURED_WITHIN__TYPE = ITEM_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___IS_FEATURING_TYPE__TYPE = ITEM_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___IS_OWNED_CROSS_FEATURE = ITEM_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___NAMING_FEATURE = ITEM_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___OWNED_CROSS_FEATURE = ITEM_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___REDEFINES__FEATURE = ITEM_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___REDEFINES_FROM_LIBRARY__STRING = ITEM_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ITEM_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___TYPING_FEATURES = ITEM_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___REFERENCED_FEATURE_TARGET = ITEM_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Evaluate Feature' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___EVALUATE_FEATURE__FEATURE = ITEM_USAGE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Is Semantic' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___IS_SEMANTIC = ITEM_USAGE_OPERATION_COUNT + 1; + + /** + * The operation id for the 'Is Syntactic' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___IS_SYNTACTIC = ITEM_USAGE_OPERATION_COUNT + 2; + + /** + * The operation id for the 'Syntax Element' operation. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE___SYNTAX_ELEMENT = ITEM_USAGE_OPERATION_COUNT + 3; + + /** + * The number of operations of the 'Metadata Usage' class. + * + * + * @generated + * @ordered + */ + int METADATA_USAGE_OPERATION_COUNT = ITEM_USAGE_OPERATION_COUNT + 4; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MultiplicityImpl Multiplicity}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MultiplicityImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMultiplicity() + * @generated + */ + int MULTIPLICITY = 105; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__ALIAS_IDS = FEATURE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__DECLARED_NAME = FEATURE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__DECLARED_SHORT_NAME = FEATURE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__ELEMENT_ID = FEATURE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_IMPLIED_INCLUDED = FEATURE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_LIBRARY_ELEMENT = FEATURE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__NAME = FEATURE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__SHORT_NAME = FEATURE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__DOCUMENTATION = FEATURE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_ANNOTATION = FEATURE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_RELATIONSHIP = FEATURE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNER = FEATURE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNING_MEMBERSHIP = FEATURE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNING_NAMESPACE = FEATURE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNING_RELATIONSHIP = FEATURE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__TEXTUAL_REPRESENTATION = FEATURE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IMPORTED_MEMBERSHIP = FEATURE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__MEMBER = FEATURE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__MEMBERSHIP = FEATURE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_IMPORT = FEATURE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_MEMBER = FEATURE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_MEMBERSHIP = FEATURE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_ABSTRACT = FEATURE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_CONJUGATED = FEATURE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_SUFFICIENT = FEATURE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__DIFFERENCING_TYPE = FEATURE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__DIRECTED_FEATURE = FEATURE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__END_FEATURE = FEATURE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__FEATURE = FEATURE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__FEATURE_MEMBERSHIP = FEATURE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__INHERITED_FEATURE = FEATURE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__INHERITED_MEMBERSHIP = FEATURE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__INPUT = FEATURE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__INTERSECTING_TYPE = FEATURE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__MULTIPLICITY = FEATURE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OUTPUT = FEATURE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_CONJUGATOR = FEATURE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_DIFFERENCING = FEATURE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_DISJOINING = FEATURE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_END_FEATURE = FEATURE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_FEATURE = FEATURE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_FEATURE_MEMBERSHIP = FEATURE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_INTERSECTING = FEATURE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_SPECIALIZATION = FEATURE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_UNIONING = FEATURE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__UNIONING_TYPE = FEATURE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__DIRECTION = FEATURE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_COMPOSITE = FEATURE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_CONSTANT = FEATURE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_DERIVED = FEATURE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_END = FEATURE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_NONUNIQUE = FEATURE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_ORDERED = FEATURE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_PORTION = FEATURE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_UNIQUE = FEATURE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__IS_VARIABLE = FEATURE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__CHAINING_FEATURE = FEATURE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__CROSS_FEATURE = FEATURE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__END_OWNING_TYPE = FEATURE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__FEATURE_TARGET = FEATURE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__FEATURING_TYPE = FEATURE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_CROSS_SUBSETTING = FEATURE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_FEATURE_CHAINING = FEATURE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_FEATURE_INVERTING = FEATURE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_REDEFINITION = FEATURE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_REFERENCE_SUBSETTING = FEATURE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_SUBSETTING = FEATURE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_TYPE_FEATURING = FEATURE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNED_TYPING = FEATURE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNING_FEATURE_MEMBERSHIP = FEATURE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__OWNING_TYPE = FEATURE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY__TYPE = FEATURE__TYPE; + + /** + * The number of structural features of the 'Multiplicity' class. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___EFFECTIVE_NAME = FEATURE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___EFFECTIVE_SHORT_NAME = FEATURE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___ESCAPED_NAME = FEATURE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___LIBRARY_NAMESPACE = FEATURE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___PATH = FEATURE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___IMPORTED_MEMBERSHIPS__ELIST = FEATURE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = FEATURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___NAMES_OF__ELEMENT = FEATURE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___QUALIFICATION_OF__STRING = FEATURE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___RESOLVE__STRING = FEATURE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___RESOLVE_GLOBAL__STRING = FEATURE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___RESOLVE_LOCAL__STRING = FEATURE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___RESOLVE_VISIBLE__STRING = FEATURE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___UNQUALIFIED_NAME_OF__STRING = FEATURE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___VISIBILITY_OF__MEMBERSHIP = FEATURE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = FEATURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = FEATURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___ALL_SUPERTYPES = FEATURE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___DIRECTION_OF__FEATURE = FEATURE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = FEATURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___IS_COMPATIBLE_WITH__TYPE = FEATURE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___MULTIPLICITIES = FEATURE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___REMOVE_REDEFINED_FEATURES__ELIST = FEATURE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___SPECIALIZES__TYPE = FEATURE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___SPECIALIZES_FROM_LIBRARY__STRING = FEATURE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___SUPERTYPES__BOOLEAN = FEATURE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___ALL_REDEFINED_FEATURES = FEATURE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___AS_CARTESIAN_PRODUCT = FEATURE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___CAN_ACCESS__FEATURE = FEATURE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___DIRECTION_FOR__TYPE = FEATURE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___IS_CARTESIAN_PRODUCT = FEATURE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___IS_FEATURED_WITHIN__TYPE = FEATURE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___IS_FEATURING_TYPE__TYPE = FEATURE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___IS_OWNED_CROSS_FEATURE = FEATURE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___NAMING_FEATURE = FEATURE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___OWNED_CROSS_FEATURE = FEATURE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___REDEFINES__FEATURE = FEATURE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___REDEFINES_FROM_LIBRARY__STRING = FEATURE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___SUBSETS_CHAIN__FEATURE_FEATURE = FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY___TYPING_FEATURES = FEATURE___TYPING_FEATURES; + + /** + * The number of operations of the 'Multiplicity' class. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_OPERATION_COUNT = FEATURE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.MultiplicityRangeImpl Multiplicity Range}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MultiplicityRangeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMultiplicityRange() + * @generated + */ + int MULTIPLICITY_RANGE = 106; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__ALIAS_IDS = MULTIPLICITY__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__DECLARED_NAME = MULTIPLICITY__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__DECLARED_SHORT_NAME = MULTIPLICITY__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__ELEMENT_ID = MULTIPLICITY__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_IMPLIED_INCLUDED = MULTIPLICITY__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_LIBRARY_ELEMENT = MULTIPLICITY__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__NAME = MULTIPLICITY__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__QUALIFIED_NAME = MULTIPLICITY__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__SHORT_NAME = MULTIPLICITY__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__DOCUMENTATION = MULTIPLICITY__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_ANNOTATION = MULTIPLICITY__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_ELEMENT = MULTIPLICITY__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_RELATIONSHIP = MULTIPLICITY__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNER = MULTIPLICITY__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNING_MEMBERSHIP = MULTIPLICITY__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNING_NAMESPACE = MULTIPLICITY__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNING_RELATIONSHIP = MULTIPLICITY__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__TEXTUAL_REPRESENTATION = MULTIPLICITY__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IMPORTED_MEMBERSHIP = MULTIPLICITY__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__MEMBER = MULTIPLICITY__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__MEMBERSHIP = MULTIPLICITY__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_IMPORT = MULTIPLICITY__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_MEMBER = MULTIPLICITY__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_MEMBERSHIP = MULTIPLICITY__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_ABSTRACT = MULTIPLICITY__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_CONJUGATED = MULTIPLICITY__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_SUFFICIENT = MULTIPLICITY__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__DIFFERENCING_TYPE = MULTIPLICITY__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__DIRECTED_FEATURE = MULTIPLICITY__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__END_FEATURE = MULTIPLICITY__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__FEATURE = MULTIPLICITY__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__FEATURE_MEMBERSHIP = MULTIPLICITY__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__INHERITED_FEATURE = MULTIPLICITY__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__INHERITED_MEMBERSHIP = MULTIPLICITY__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__INPUT = MULTIPLICITY__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__INTERSECTING_TYPE = MULTIPLICITY__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__MULTIPLICITY = MULTIPLICITY__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OUTPUT = MULTIPLICITY__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_CONJUGATOR = MULTIPLICITY__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_DIFFERENCING = MULTIPLICITY__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_DISJOINING = MULTIPLICITY__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_END_FEATURE = MULTIPLICITY__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_FEATURE = MULTIPLICITY__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_FEATURE_MEMBERSHIP = MULTIPLICITY__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_INTERSECTING = MULTIPLICITY__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_SPECIALIZATION = MULTIPLICITY__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_UNIONING = MULTIPLICITY__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__UNIONING_TYPE = MULTIPLICITY__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__DIRECTION = MULTIPLICITY__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_COMPOSITE = MULTIPLICITY__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_CONSTANT = MULTIPLICITY__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_DERIVED = MULTIPLICITY__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_END = MULTIPLICITY__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_NONUNIQUE = MULTIPLICITY__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_ORDERED = MULTIPLICITY__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_PORTION = MULTIPLICITY__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_UNIQUE = MULTIPLICITY__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__IS_VARIABLE = MULTIPLICITY__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__CHAINING_FEATURE = MULTIPLICITY__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__CROSS_FEATURE = MULTIPLICITY__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__END_OWNING_TYPE = MULTIPLICITY__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__FEATURE_TARGET = MULTIPLICITY__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__FEATURING_TYPE = MULTIPLICITY__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_CROSS_SUBSETTING = MULTIPLICITY__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_FEATURE_CHAINING = MULTIPLICITY__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_FEATURE_INVERTING = MULTIPLICITY__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_REDEFINITION = MULTIPLICITY__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_REFERENCE_SUBSETTING = MULTIPLICITY__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_SUBSETTING = MULTIPLICITY__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_TYPE_FEATURING = MULTIPLICITY__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNED_TYPING = MULTIPLICITY__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNING_FEATURE_MEMBERSHIP = MULTIPLICITY__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__OWNING_TYPE = MULTIPLICITY__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__TYPE = MULTIPLICITY__TYPE; + + /** + * The feature id for the 'Bound' reference list. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__BOUND = MULTIPLICITY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Lower Bound' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__LOWER_BOUND = MULTIPLICITY_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Upper Bound' reference. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE__UPPER_BOUND = MULTIPLICITY_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Multiplicity Range' class. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___EFFECTIVE_NAME = MULTIPLICITY___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___EFFECTIVE_SHORT_NAME = MULTIPLICITY___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___ESCAPED_NAME = MULTIPLICITY___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___LIBRARY_NAMESPACE = MULTIPLICITY___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___PATH = MULTIPLICITY___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___IMPORTED_MEMBERSHIPS__ELIST = MULTIPLICITY___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = MULTIPLICITY___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___NAMES_OF__ELEMENT = MULTIPLICITY___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___QUALIFICATION_OF__STRING = MULTIPLICITY___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___RESOLVE__STRING = MULTIPLICITY___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___RESOLVE_GLOBAL__STRING = MULTIPLICITY___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___RESOLVE_LOCAL__STRING = MULTIPLICITY___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___RESOLVE_VISIBLE__STRING = MULTIPLICITY___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___UNQUALIFIED_NAME_OF__STRING = MULTIPLICITY___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___VISIBILITY_OF__MEMBERSHIP = MULTIPLICITY___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = MULTIPLICITY___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = MULTIPLICITY___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___ALL_SUPERTYPES = MULTIPLICITY___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___DIRECTION_OF__FEATURE = MULTIPLICITY___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = MULTIPLICITY___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = MULTIPLICITY___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = MULTIPLICITY___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___IS_COMPATIBLE_WITH__TYPE = MULTIPLICITY___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___MULTIPLICITIES = MULTIPLICITY___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = MULTIPLICITY___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___REMOVE_REDEFINED_FEATURES__ELIST = MULTIPLICITY___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___SPECIALIZES__TYPE = MULTIPLICITY___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___SPECIALIZES_FROM_LIBRARY__STRING = MULTIPLICITY___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___SUPERTYPES__BOOLEAN = MULTIPLICITY___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___ALL_REDEFINED_FEATURES = MULTIPLICITY___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___AS_CARTESIAN_PRODUCT = MULTIPLICITY___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___CAN_ACCESS__FEATURE = MULTIPLICITY___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___DIRECTION_FOR__TYPE = MULTIPLICITY___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___IS_CARTESIAN_PRODUCT = MULTIPLICITY___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___IS_FEATURED_WITHIN__TYPE = MULTIPLICITY___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___IS_FEATURING_TYPE__TYPE = MULTIPLICITY___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___IS_OWNED_CROSS_FEATURE = MULTIPLICITY___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___NAMING_FEATURE = MULTIPLICITY___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___OWNED_CROSS_FEATURE = MULTIPLICITY___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___REDEFINES__FEATURE = MULTIPLICITY___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___REDEFINES_FROM_LIBRARY__STRING = MULTIPLICITY___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___SUBSETS_CHAIN__FEATURE_FEATURE = MULTIPLICITY___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___TYPING_FEATURES = MULTIPLICITY___TYPING_FEATURES; + + /** + * The operation id for the 'Has Bounds' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___HAS_BOUNDS__INT_INT = MULTIPLICITY_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Value Of' operation. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE___VALUE_OF__EXPRESSION = MULTIPLICITY_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Multiplicity Range' class. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_RANGE_OPERATION_COUNT = MULTIPLICITY_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.NamespaceImportImpl Namespace Import}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.NamespaceImportImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getNamespaceImport() + * @generated + */ + int NAMESPACE_IMPORT = 109; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__ALIAS_IDS = IMPORT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__DECLARED_NAME = IMPORT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__DECLARED_SHORT_NAME = IMPORT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__ELEMENT_ID = IMPORT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__IS_IMPLIED_INCLUDED = IMPORT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__IS_LIBRARY_ELEMENT = IMPORT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__NAME = IMPORT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__QUALIFIED_NAME = IMPORT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__SHORT_NAME = IMPORT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__DOCUMENTATION = IMPORT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__OWNED_ANNOTATION = IMPORT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__OWNED_ELEMENT = IMPORT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__OWNED_RELATIONSHIP = IMPORT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__OWNER = IMPORT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__OWNING_MEMBERSHIP = IMPORT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__OWNING_NAMESPACE = IMPORT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__OWNING_RELATIONSHIP = IMPORT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__TEXTUAL_REPRESENTATION = IMPORT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__IS_IMPLIED = IMPORT__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__OWNED_RELATED_ELEMENT = IMPORT__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__OWNING_RELATED_ELEMENT = IMPORT__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__RELATED_ELEMENT = IMPORT__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__SOURCE = IMPORT__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__TARGET = IMPORT__TARGET; + + /** + * The feature id for the 'Is Import All' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__IS_IMPORT_ALL = IMPORT__IS_IMPORT_ALL; + + /** + * The feature id for the 'Is Recursive' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__IS_RECURSIVE = IMPORT__IS_RECURSIVE; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__VISIBILITY = IMPORT__VISIBILITY; + + /** + * The feature id for the 'Imported Element' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__IMPORTED_ELEMENT = IMPORT__IMPORTED_ELEMENT; + + /** + * The feature id for the 'Import Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__IMPORT_OWNING_NAMESPACE = IMPORT__IMPORT_OWNING_NAMESPACE; + + /** + * The feature id for the 'Imported Namespace' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT__IMPORTED_NAMESPACE = IMPORT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Namespace Import' class. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT_FEATURE_COUNT = IMPORT_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT___EFFECTIVE_NAME = IMPORT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT___EFFECTIVE_SHORT_NAME = IMPORT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT___ESCAPED_NAME = IMPORT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT___LIBRARY_NAMESPACE = IMPORT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT___PATH = IMPORT___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT___IMPORTED_MEMBERSHIPS__ELIST = IMPORT___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The number of operations of the 'Namespace Import' class. + * + * + * @generated + * @ordered + */ + int NAMESPACE_IMPORT_OPERATION_COUNT = IMPORT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.NamespaceExposeImpl Namespace Expose}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.NamespaceExposeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getNamespaceExpose() + * @generated + */ + int NAMESPACE_EXPOSE = 108; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__ALIAS_IDS = NAMESPACE_IMPORT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__DECLARED_NAME = NAMESPACE_IMPORT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__DECLARED_SHORT_NAME = NAMESPACE_IMPORT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__ELEMENT_ID = NAMESPACE_IMPORT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__IS_IMPLIED_INCLUDED = NAMESPACE_IMPORT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__IS_LIBRARY_ELEMENT = NAMESPACE_IMPORT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__NAME = NAMESPACE_IMPORT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__QUALIFIED_NAME = NAMESPACE_IMPORT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__SHORT_NAME = NAMESPACE_IMPORT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__DOCUMENTATION = NAMESPACE_IMPORT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__OWNED_ANNOTATION = NAMESPACE_IMPORT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__OWNED_ELEMENT = NAMESPACE_IMPORT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__OWNED_RELATIONSHIP = NAMESPACE_IMPORT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__OWNER = NAMESPACE_IMPORT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__OWNING_MEMBERSHIP = NAMESPACE_IMPORT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__OWNING_NAMESPACE = NAMESPACE_IMPORT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__OWNING_RELATIONSHIP = NAMESPACE_IMPORT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__TEXTUAL_REPRESENTATION = NAMESPACE_IMPORT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__IS_IMPLIED = NAMESPACE_IMPORT__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__OWNED_RELATED_ELEMENT = NAMESPACE_IMPORT__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__OWNING_RELATED_ELEMENT = NAMESPACE_IMPORT__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__RELATED_ELEMENT = NAMESPACE_IMPORT__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__SOURCE = NAMESPACE_IMPORT__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__TARGET = NAMESPACE_IMPORT__TARGET; + + /** + * The feature id for the 'Is Import All' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__IS_IMPORT_ALL = NAMESPACE_IMPORT__IS_IMPORT_ALL; + + /** + * The feature id for the 'Is Recursive' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__IS_RECURSIVE = NAMESPACE_IMPORT__IS_RECURSIVE; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__VISIBILITY = NAMESPACE_IMPORT__VISIBILITY; + + /** + * The feature id for the 'Imported Element' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__IMPORTED_ELEMENT = NAMESPACE_IMPORT__IMPORTED_ELEMENT; + + /** + * The feature id for the 'Import Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__IMPORT_OWNING_NAMESPACE = NAMESPACE_IMPORT__IMPORT_OWNING_NAMESPACE; + + /** + * The feature id for the 'Imported Namespace' reference. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE__IMPORTED_NAMESPACE = NAMESPACE_IMPORT__IMPORTED_NAMESPACE; + + /** + * The number of structural features of the 'Namespace Expose' class. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE_FEATURE_COUNT = NAMESPACE_IMPORT_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE___EFFECTIVE_NAME = NAMESPACE_IMPORT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE___EFFECTIVE_SHORT_NAME = NAMESPACE_IMPORT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE___ESCAPED_NAME = NAMESPACE_IMPORT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE___LIBRARY_NAMESPACE = NAMESPACE_IMPORT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE___PATH = NAMESPACE_IMPORT___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE___IMPORTED_MEMBERSHIPS__ELIST = NAMESPACE_IMPORT___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The number of operations of the 'Namespace Expose' class. + * + * + * @generated + * @ordered + */ + int NAMESPACE_EXPOSE_OPERATION_COUNT = NAMESPACE_IMPORT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.NullExpressionImpl Null Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.NullExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getNullExpression() + * @generated + */ + int NULL_EXPRESSION = 110; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__ALIAS_IDS = EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__DECLARED_NAME = EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__DECLARED_SHORT_NAME = EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__ELEMENT_ID = EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_IMPLIED_INCLUDED = EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_LIBRARY_ELEMENT = EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__NAME = EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__QUALIFIED_NAME = EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__SHORT_NAME = EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__DOCUMENTATION = EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_ANNOTATION = EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_ELEMENT = EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_RELATIONSHIP = EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNER = EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNING_MEMBERSHIP = EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNING_NAMESPACE = EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNING_RELATIONSHIP = EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__TEXTUAL_REPRESENTATION = EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IMPORTED_MEMBERSHIP = EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__MEMBER = EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__MEMBERSHIP = EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_IMPORT = EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_MEMBER = EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_MEMBERSHIP = EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_ABSTRACT = EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_CONJUGATED = EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_SUFFICIENT = EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__DIFFERENCING_TYPE = EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__DIRECTED_FEATURE = EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__END_FEATURE = EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__FEATURE = EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__FEATURE_MEMBERSHIP = EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__INHERITED_FEATURE = EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__INHERITED_MEMBERSHIP = EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__INPUT = EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__INTERSECTING_TYPE = EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__MULTIPLICITY = EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OUTPUT = EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_CONJUGATOR = EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_DIFFERENCING = EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_DISJOINING = EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_END_FEATURE = EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_FEATURE = EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_INTERSECTING = EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_SPECIALIZATION = EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_UNIONING = EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__UNIONING_TYPE = EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__DIRECTION = EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_COMPOSITE = EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_CONSTANT = EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_DERIVED = EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_END = EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_NONUNIQUE = EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_ORDERED = EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_PORTION = EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_UNIQUE = EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_VARIABLE = EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__CHAINING_FEATURE = EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__CROSS_FEATURE = EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__END_OWNING_TYPE = EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__FEATURE_TARGET = EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__FEATURING_TYPE = EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_CROSS_SUBSETTING = EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_FEATURE_CHAINING = EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_FEATURE_INVERTING = EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_REDEFINITION = EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_REFERENCE_SUBSETTING = EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_SUBSETTING = EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_TYPE_FEATURING = EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNED_TYPING = EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__OWNING_TYPE = EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__TYPE = EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__BEHAVIOR = EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__PARAMETER = EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__FUNCTION = EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION__RESULT = EXPRESSION__RESULT; + + /** + * The number of structural features of the 'Null Expression' class. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___EFFECTIVE_NAME = EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___EFFECTIVE_SHORT_NAME = EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___ESCAPED_NAME = EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___LIBRARY_NAMESPACE = EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___PATH = EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___NAMES_OF__ELEMENT = EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___QUALIFICATION_OF__STRING = EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___RESOLVE__STRING = EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___RESOLVE_GLOBAL__STRING = EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___RESOLVE_LOCAL__STRING = EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___RESOLVE_VISIBLE__STRING = EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___ALL_SUPERTYPES = EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___DIRECTION_OF__FEATURE = EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___MULTIPLICITIES = EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___SPECIALIZES__TYPE = EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___SUPERTYPES__BOOLEAN = EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___ALL_REDEFINED_FEATURES = EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___AS_CARTESIAN_PRODUCT = EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___CAN_ACCESS__FEATURE = EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___DIRECTION_FOR__TYPE = EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___IS_CARTESIAN_PRODUCT = EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___IS_FEATURED_WITHIN__TYPE = EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___IS_FEATURING_TYPE__TYPE = EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___IS_OWNED_CROSS_FEATURE = EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___NAMING_FEATURE = EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___OWNED_CROSS_FEATURE = EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___REDEFINES__FEATURE = EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___TYPING_FEATURES = EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___CHECK_CONDITION__ELEMENT = EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___EVALUATE__ELEMENT = EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Null Expression' class. + * + * + * @generated + * @ordered + */ + int NULL_EXPRESSION_OPERATION_COUNT = EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ObjectiveMembershipImpl Objective Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ObjectiveMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getObjectiveMembership() + * @generated + */ + int OBJECTIVE_MEMBERSHIP = 111; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__ALIAS_IDS = FEATURE_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__DECLARED_NAME = FEATURE_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__DECLARED_SHORT_NAME = FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__ELEMENT_ID = FEATURE_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__IS_IMPLIED_INCLUDED = FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__IS_LIBRARY_ELEMENT = FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__NAME = FEATURE_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__QUALIFIED_NAME = FEATURE_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__SHORT_NAME = FEATURE_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__DOCUMENTATION = FEATURE_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNED_ANNOTATION = FEATURE_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNED_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNER = FEATURE_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNING_MEMBERSHIP = FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNING_NAMESPACE = FEATURE_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNING_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__TEXTUAL_REPRESENTATION = FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__IS_IMPLIED = FEATURE_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNED_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNING_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__RELATED_ELEMENT = FEATURE_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__SOURCE = FEATURE_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__TARGET = FEATURE_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__MEMBER_NAME = FEATURE_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__VISIBILITY = FEATURE_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__MEMBER_ELEMENT = FEATURE_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNED_MEMBER_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNED_MEMBER_ELEMENT = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNED_MEMBER_FEATURE = FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNING_TYPE = FEATURE_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Owned Objective Requirement' reference. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP__OWNED_OBJECTIVE_REQUIREMENT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Objective Membership' class. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP_FEATURE_COUNT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP___EFFECTIVE_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP___EFFECTIVE_SHORT_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP___ESCAPED_NAME = FEATURE_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP___LIBRARY_NAMESPACE = FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP___PATH = FEATURE_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Objective Membership' class. + * + * + * @generated + * @ordered + */ + int OBJECTIVE_MEMBERSHIP_OPERATION_COUNT = FEATURE_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.PartUsageImpl Part Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PartUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPartUsage() + * @generated + */ + int PART_USAGE = 119; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__ALIAS_IDS = ITEM_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__DECLARED_NAME = ITEM_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__DECLARED_SHORT_NAME = ITEM_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__ELEMENT_ID = ITEM_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_IMPLIED_INCLUDED = ITEM_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_LIBRARY_ELEMENT = ITEM_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NAME = ITEM_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__QUALIFIED_NAME = ITEM_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__SHORT_NAME = ITEM_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__DOCUMENTATION = ITEM_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_ANNOTATION = ITEM_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_ELEMENT = ITEM_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_RELATIONSHIP = ITEM_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNER = ITEM_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNING_MEMBERSHIP = ITEM_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNING_NAMESPACE = ITEM_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNING_RELATIONSHIP = ITEM_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__TEXTUAL_REPRESENTATION = ITEM_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IMPORTED_MEMBERSHIP = ITEM_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__MEMBER = ITEM_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__MEMBERSHIP = ITEM_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_IMPORT = ITEM_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_MEMBER = ITEM_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_MEMBERSHIP = ITEM_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_ABSTRACT = ITEM_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_CONJUGATED = ITEM_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_SUFFICIENT = ITEM_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__DIFFERENCING_TYPE = ITEM_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__DIRECTED_FEATURE = ITEM_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__END_FEATURE = ITEM_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__FEATURE = ITEM_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__FEATURE_MEMBERSHIP = ITEM_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__INHERITED_FEATURE = ITEM_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__INHERITED_MEMBERSHIP = ITEM_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__INPUT = ITEM_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__INTERSECTING_TYPE = ITEM_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__MULTIPLICITY = ITEM_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OUTPUT = ITEM_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_CONJUGATOR = ITEM_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_DIFFERENCING = ITEM_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_DISJOINING = ITEM_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_END_FEATURE = ITEM_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_FEATURE = ITEM_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_FEATURE_MEMBERSHIP = ITEM_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_INTERSECTING = ITEM_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_SPECIALIZATION = ITEM_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_UNIONING = ITEM_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__UNIONING_TYPE = ITEM_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__DIRECTION = ITEM_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_COMPOSITE = ITEM_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_CONSTANT = ITEM_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_DERIVED = ITEM_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_END = ITEM_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_NONUNIQUE = ITEM_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_ORDERED = ITEM_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_PORTION = ITEM_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_UNIQUE = ITEM_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_VARIABLE = ITEM_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__CHAINING_FEATURE = ITEM_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__CROSS_FEATURE = ITEM_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__END_OWNING_TYPE = ITEM_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__FEATURE_TARGET = ITEM_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__FEATURING_TYPE = ITEM_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_CROSS_SUBSETTING = ITEM_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_FEATURE_CHAINING = ITEM_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_FEATURE_INVERTING = ITEM_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_REDEFINITION = ITEM_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_REFERENCE_SUBSETTING = ITEM_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_SUBSETTING = ITEM_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_TYPE_FEATURING = ITEM_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNED_TYPING = ITEM_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNING_FEATURE_MEMBERSHIP = ITEM_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNING_TYPE = ITEM_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__TYPE = ITEM_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_REFERENCE = ITEM_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_VARIATION = ITEM_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__MAY_TIME_VARY = ITEM_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__DEFINITION = ITEM_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__DIRECTED_USAGE = ITEM_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_ACTION = ITEM_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_ALLOCATION = ITEM_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_ANALYSIS_CASE = ITEM_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_ATTRIBUTE = ITEM_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_CALCULATION = ITEM_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_CASE = ITEM_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_CONCERN = ITEM_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_CONNECTION = ITEM_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_CONSTRAINT = ITEM_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_ENUMERATION = ITEM_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_FLOW = ITEM_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_INTERFACE = ITEM_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_ITEM = ITEM_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_METADATA = ITEM_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_OCCURRENCE = ITEM_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_PART = ITEM_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_PORT = ITEM_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_REFERENCE = ITEM_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_RENDERING = ITEM_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_REQUIREMENT = ITEM_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_STATE = ITEM_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_TRANSITION = ITEM_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_USAGE = ITEM_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_USE_CASE = ITEM_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_VERIFICATION_CASE = ITEM_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_VIEW = ITEM_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__NESTED_VIEWPOINT = ITEM_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNING_DEFINITION = ITEM_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OWNING_USAGE = ITEM_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__USAGE = ITEM_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__VARIANT = ITEM_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__VARIANT_MEMBERSHIP = ITEM_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__IS_INDIVIDUAL = ITEM_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int PART_USAGE__PORTION_KIND = ITEM_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int PART_USAGE__INDIVIDUAL_DEFINITION = ITEM_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__OCCURRENCE_DEFINITION = ITEM_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Item Definition' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__ITEM_DEFINITION = ITEM_USAGE__ITEM_DEFINITION; + + /** + * The feature id for the 'Part Definition' reference list. + * + * + * @generated + * @ordered + */ + int PART_USAGE__PART_DEFINITION = ITEM_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Part Usage' class. + * + * + * @generated + * @ordered + */ + int PART_USAGE_FEATURE_COUNT = ITEM_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___EFFECTIVE_NAME = ITEM_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___EFFECTIVE_SHORT_NAME = ITEM_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___ESCAPED_NAME = ITEM_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___LIBRARY_NAMESPACE = ITEM_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___PATH = ITEM_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ITEM_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ITEM_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___NAMES_OF__ELEMENT = ITEM_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___QUALIFICATION_OF__STRING = ITEM_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___RESOLVE__STRING = ITEM_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___RESOLVE_GLOBAL__STRING = ITEM_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___RESOLVE_LOCAL__STRING = ITEM_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___RESOLVE_VISIBLE__STRING = ITEM_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___UNQUALIFIED_NAME_OF__STRING = ITEM_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___VISIBILITY_OF__MEMBERSHIP = ITEM_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ITEM_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ITEM_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___ALL_SUPERTYPES = ITEM_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___DIRECTION_OF__FEATURE = ITEM_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ITEM_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___IS_COMPATIBLE_WITH__TYPE = ITEM_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___MULTIPLICITIES = ITEM_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ITEM_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ITEM_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___SPECIALIZES__TYPE = ITEM_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ITEM_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___SUPERTYPES__BOOLEAN = ITEM_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___ALL_REDEFINED_FEATURES = ITEM_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___AS_CARTESIAN_PRODUCT = ITEM_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___CAN_ACCESS__FEATURE = ITEM_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___DIRECTION_FOR__TYPE = ITEM_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___IS_CARTESIAN_PRODUCT = ITEM_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___IS_FEATURED_WITHIN__TYPE = ITEM_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___IS_FEATURING_TYPE__TYPE = ITEM_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___IS_OWNED_CROSS_FEATURE = ITEM_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___NAMING_FEATURE = ITEM_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___OWNED_CROSS_FEATURE = ITEM_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___REDEFINES__FEATURE = ITEM_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___REDEFINES_FROM_LIBRARY__STRING = ITEM_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ITEM_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___TYPING_FEATURES = ITEM_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int PART_USAGE___REFERENCED_FEATURE_TARGET = ITEM_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Part Usage' class. + * + * + * @generated + * @ordered + */ + int PART_USAGE_OPERATION_COUNT = ITEM_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.PayloadFeatureImpl Payload Feature}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PayloadFeatureImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPayloadFeature() + * @generated + */ + int PAYLOAD_FEATURE = 120; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__ALIAS_IDS = FEATURE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__DECLARED_NAME = FEATURE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__DECLARED_SHORT_NAME = FEATURE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__ELEMENT_ID = FEATURE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_IMPLIED_INCLUDED = FEATURE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_LIBRARY_ELEMENT = FEATURE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__NAME = FEATURE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__QUALIFIED_NAME = FEATURE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__SHORT_NAME = FEATURE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__DOCUMENTATION = FEATURE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_ANNOTATION = FEATURE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_ELEMENT = FEATURE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_RELATIONSHIP = FEATURE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNER = FEATURE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNING_MEMBERSHIP = FEATURE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNING_NAMESPACE = FEATURE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNING_RELATIONSHIP = FEATURE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__TEXTUAL_REPRESENTATION = FEATURE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IMPORTED_MEMBERSHIP = FEATURE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__MEMBER = FEATURE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__MEMBERSHIP = FEATURE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_IMPORT = FEATURE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_MEMBER = FEATURE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_MEMBERSHIP = FEATURE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_ABSTRACT = FEATURE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_CONJUGATED = FEATURE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_SUFFICIENT = FEATURE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__DIFFERENCING_TYPE = FEATURE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__DIRECTED_FEATURE = FEATURE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__END_FEATURE = FEATURE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__FEATURE = FEATURE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__FEATURE_MEMBERSHIP = FEATURE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__INHERITED_FEATURE = FEATURE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__INHERITED_MEMBERSHIP = FEATURE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__INPUT = FEATURE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__INTERSECTING_TYPE = FEATURE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__MULTIPLICITY = FEATURE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OUTPUT = FEATURE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_CONJUGATOR = FEATURE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_DIFFERENCING = FEATURE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_DISJOINING = FEATURE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_END_FEATURE = FEATURE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_FEATURE = FEATURE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_FEATURE_MEMBERSHIP = FEATURE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_INTERSECTING = FEATURE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_SPECIALIZATION = FEATURE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_UNIONING = FEATURE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__UNIONING_TYPE = FEATURE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__DIRECTION = FEATURE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_COMPOSITE = FEATURE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_CONSTANT = FEATURE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_DERIVED = FEATURE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_END = FEATURE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_NONUNIQUE = FEATURE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_ORDERED = FEATURE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_PORTION = FEATURE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_UNIQUE = FEATURE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__IS_VARIABLE = FEATURE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__CHAINING_FEATURE = FEATURE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__CROSS_FEATURE = FEATURE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__END_OWNING_TYPE = FEATURE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__FEATURE_TARGET = FEATURE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__FEATURING_TYPE = FEATURE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_CROSS_SUBSETTING = FEATURE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_FEATURE_CHAINING = FEATURE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_FEATURE_INVERTING = FEATURE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_REDEFINITION = FEATURE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_REFERENCE_SUBSETTING = FEATURE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_SUBSETTING = FEATURE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_TYPE_FEATURING = FEATURE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNED_TYPING = FEATURE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNING_FEATURE_MEMBERSHIP = FEATURE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__OWNING_TYPE = FEATURE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE__TYPE = FEATURE__TYPE; + + /** + * The number of structural features of the 'Payload Feature' class. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE_FEATURE_COUNT = FEATURE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___EFFECTIVE_NAME = FEATURE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___EFFECTIVE_SHORT_NAME = FEATURE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___ESCAPED_NAME = FEATURE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___LIBRARY_NAMESPACE = FEATURE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___PATH = FEATURE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___IMPORTED_MEMBERSHIPS__ELIST = FEATURE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = FEATURE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___NAMES_OF__ELEMENT = FEATURE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___QUALIFICATION_OF__STRING = FEATURE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___RESOLVE__STRING = FEATURE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___RESOLVE_GLOBAL__STRING = FEATURE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___RESOLVE_LOCAL__STRING = FEATURE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___RESOLVE_VISIBLE__STRING = FEATURE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___UNQUALIFIED_NAME_OF__STRING = FEATURE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___VISIBILITY_OF__MEMBERSHIP = FEATURE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = FEATURE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = FEATURE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___ALL_SUPERTYPES = FEATURE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___DIRECTION_OF__FEATURE = FEATURE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = FEATURE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___IS_COMPATIBLE_WITH__TYPE = FEATURE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___MULTIPLICITIES = FEATURE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FEATURE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___REMOVE_REDEFINED_FEATURES__ELIST = FEATURE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___SPECIALIZES__TYPE = FEATURE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___SPECIALIZES_FROM_LIBRARY__STRING = FEATURE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___SUPERTYPES__BOOLEAN = FEATURE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___ALL_REDEFINED_FEATURES = FEATURE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___AS_CARTESIAN_PRODUCT = FEATURE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___CAN_ACCESS__FEATURE = FEATURE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___DIRECTION_FOR__TYPE = FEATURE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___IS_CARTESIAN_PRODUCT = FEATURE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___IS_FEATURED_WITHIN__TYPE = FEATURE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___IS_FEATURING_TYPE__TYPE = FEATURE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___IS_OWNED_CROSS_FEATURE = FEATURE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___NAMING_FEATURE = FEATURE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___OWNED_CROSS_FEATURE = FEATURE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___REDEFINES__FEATURE = FEATURE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___REDEFINES_FROM_LIBRARY__STRING = FEATURE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE = FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE___TYPING_FEATURES = FEATURE___TYPING_FEATURES; + + /** + * The number of operations of the 'Payload Feature' class. + * + * + * @generated + * @ordered + */ + int PAYLOAD_FEATURE_OPERATION_COUNT = FEATURE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.PerformActionUsageImpl Perform Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PerformActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPerformActionUsage() + * @generated + */ + int PERFORM_ACTION_USAGE = 121; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Event Occurrence' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__EVENT_OCCURRENCE = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Performed Action' reference. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE__PERFORMED_ACTION = ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Perform Action Usage' class. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The number of operations of the 'Perform Action Usage' class. + * + * + * @generated + * @ordered + */ + int PERFORM_ACTION_USAGE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.PortConjugationImpl Port Conjugation}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PortConjugationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPortConjugation() + * @generated + */ + int PORT_CONJUGATION = 122; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__ALIAS_IDS = CONJUGATION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__DECLARED_NAME = CONJUGATION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__DECLARED_SHORT_NAME = CONJUGATION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__ELEMENT_ID = CONJUGATION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__IS_IMPLIED_INCLUDED = CONJUGATION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__IS_LIBRARY_ELEMENT = CONJUGATION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__NAME = CONJUGATION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__QUALIFIED_NAME = CONJUGATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__SHORT_NAME = CONJUGATION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__DOCUMENTATION = CONJUGATION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__OWNED_ANNOTATION = CONJUGATION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__OWNED_ELEMENT = CONJUGATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__OWNED_RELATIONSHIP = CONJUGATION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__OWNER = CONJUGATION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__OWNING_MEMBERSHIP = CONJUGATION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__OWNING_NAMESPACE = CONJUGATION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__OWNING_RELATIONSHIP = CONJUGATION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__TEXTUAL_REPRESENTATION = CONJUGATION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__IS_IMPLIED = CONJUGATION__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__OWNED_RELATED_ELEMENT = CONJUGATION__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__OWNING_RELATED_ELEMENT = CONJUGATION__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__RELATED_ELEMENT = CONJUGATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__SOURCE = CONJUGATION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__TARGET = CONJUGATION__TARGET; + + /** + * The feature id for the 'Conjugated Type' reference. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__CONJUGATED_TYPE = CONJUGATION__CONJUGATED_TYPE; + + /** + * The feature id for the 'Original Type' reference. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__ORIGINAL_TYPE = CONJUGATION__ORIGINAL_TYPE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__OWNING_TYPE = CONJUGATION__OWNING_TYPE; + + /** + * The feature id for the 'Conjugated Port Definition' reference. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__CONJUGATED_PORT_DEFINITION = CONJUGATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Original Port Definition' reference. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION__ORIGINAL_PORT_DEFINITION = CONJUGATION_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Port Conjugation' class. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION_FEATURE_COUNT = CONJUGATION_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION___EFFECTIVE_NAME = CONJUGATION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION___EFFECTIVE_SHORT_NAME = CONJUGATION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION___ESCAPED_NAME = CONJUGATION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION___LIBRARY_NAMESPACE = CONJUGATION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION___PATH = CONJUGATION___PATH; + + /** + * The number of operations of the 'Port Conjugation' class. + * + * + * @generated + * @ordered + */ + int PORT_CONJUGATION_OPERATION_COUNT = CONJUGATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.PortUsageImpl Port Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PortUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPortUsage() + * @generated + */ + int PORT_USAGE = 124; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__ALIAS_IDS = OCCURRENCE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__DECLARED_NAME = OCCURRENCE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__DECLARED_SHORT_NAME = OCCURRENCE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__ELEMENT_ID = OCCURRENCE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_IMPLIED_INCLUDED = OCCURRENCE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_LIBRARY_ELEMENT = OCCURRENCE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NAME = OCCURRENCE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__QUALIFIED_NAME = OCCURRENCE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__SHORT_NAME = OCCURRENCE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__DOCUMENTATION = OCCURRENCE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_ANNOTATION = OCCURRENCE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_ELEMENT = OCCURRENCE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_RELATIONSHIP = OCCURRENCE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNER = OCCURRENCE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNING_MEMBERSHIP = OCCURRENCE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNING_NAMESPACE = OCCURRENCE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNING_RELATIONSHIP = OCCURRENCE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__TEXTUAL_REPRESENTATION = OCCURRENCE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IMPORTED_MEMBERSHIP = OCCURRENCE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__MEMBER = OCCURRENCE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__MEMBERSHIP = OCCURRENCE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_IMPORT = OCCURRENCE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_MEMBER = OCCURRENCE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_MEMBERSHIP = OCCURRENCE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_ABSTRACT = OCCURRENCE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_CONJUGATED = OCCURRENCE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_SUFFICIENT = OCCURRENCE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__DIFFERENCING_TYPE = OCCURRENCE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__DIRECTED_FEATURE = OCCURRENCE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__END_FEATURE = OCCURRENCE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__FEATURE = OCCURRENCE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__INHERITED_FEATURE = OCCURRENCE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__INHERITED_MEMBERSHIP = OCCURRENCE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__INPUT = OCCURRENCE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__INTERSECTING_TYPE = OCCURRENCE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__MULTIPLICITY = OCCURRENCE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OUTPUT = OCCURRENCE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_CONJUGATOR = OCCURRENCE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_DIFFERENCING = OCCURRENCE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_DISJOINING = OCCURRENCE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_END_FEATURE = OCCURRENCE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_FEATURE = OCCURRENCE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_INTERSECTING = OCCURRENCE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_SPECIALIZATION = OCCURRENCE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_UNIONING = OCCURRENCE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__UNIONING_TYPE = OCCURRENCE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__DIRECTION = OCCURRENCE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_COMPOSITE = OCCURRENCE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_CONSTANT = OCCURRENCE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_DERIVED = OCCURRENCE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_END = OCCURRENCE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_NONUNIQUE = OCCURRENCE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_ORDERED = OCCURRENCE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_PORTION = OCCURRENCE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_UNIQUE = OCCURRENCE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_VARIABLE = OCCURRENCE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__CHAINING_FEATURE = OCCURRENCE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__CROSS_FEATURE = OCCURRENCE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__END_OWNING_TYPE = OCCURRENCE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__FEATURE_TARGET = OCCURRENCE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__FEATURING_TYPE = OCCURRENCE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_CROSS_SUBSETTING = OCCURRENCE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_FEATURE_CHAINING = OCCURRENCE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_FEATURE_INVERTING = OCCURRENCE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_REDEFINITION = OCCURRENCE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_REFERENCE_SUBSETTING = OCCURRENCE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_SUBSETTING = OCCURRENCE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_TYPE_FEATURING = OCCURRENCE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNED_TYPING = OCCURRENCE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNING_FEATURE_MEMBERSHIP = OCCURRENCE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNING_TYPE = OCCURRENCE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__TYPE = OCCURRENCE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_REFERENCE = OCCURRENCE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_VARIATION = OCCURRENCE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__MAY_TIME_VARY = OCCURRENCE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__DEFINITION = OCCURRENCE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__DIRECTED_USAGE = OCCURRENCE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_ACTION = OCCURRENCE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_ALLOCATION = OCCURRENCE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_ANALYSIS_CASE = OCCURRENCE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_ATTRIBUTE = OCCURRENCE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_CALCULATION = OCCURRENCE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_CASE = OCCURRENCE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_CONCERN = OCCURRENCE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_CONNECTION = OCCURRENCE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_CONSTRAINT = OCCURRENCE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_ENUMERATION = OCCURRENCE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_FLOW = OCCURRENCE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_INTERFACE = OCCURRENCE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_ITEM = OCCURRENCE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_METADATA = OCCURRENCE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_OCCURRENCE = OCCURRENCE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_PART = OCCURRENCE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_PORT = OCCURRENCE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_REFERENCE = OCCURRENCE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_RENDERING = OCCURRENCE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_REQUIREMENT = OCCURRENCE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_STATE = OCCURRENCE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_TRANSITION = OCCURRENCE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_USAGE = OCCURRENCE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_USE_CASE = OCCURRENCE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_VERIFICATION_CASE = OCCURRENCE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_VIEW = OCCURRENCE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__NESTED_VIEWPOINT = OCCURRENCE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNING_DEFINITION = OCCURRENCE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OWNING_USAGE = OCCURRENCE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__USAGE = OCCURRENCE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__VARIANT = OCCURRENCE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__VARIANT_MEMBERSHIP = OCCURRENCE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__IS_INDIVIDUAL = OCCURRENCE_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__PORTION_KIND = OCCURRENCE_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__INDIVIDUAL_DEFINITION = OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__OCCURRENCE_DEFINITION = OCCURRENCE_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Port Definition' reference list. + * + * + * @generated + * @ordered + */ + int PORT_USAGE__PORT_DEFINITION = OCCURRENCE_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Port Usage' class. + * + * + * @generated + * @ordered + */ + int PORT_USAGE_FEATURE_COUNT = OCCURRENCE_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___EFFECTIVE_NAME = OCCURRENCE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___EFFECTIVE_SHORT_NAME = OCCURRENCE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___ESCAPED_NAME = OCCURRENCE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___LIBRARY_NAMESPACE = OCCURRENCE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___PATH = OCCURRENCE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___IMPORTED_MEMBERSHIPS__ELIST = OCCURRENCE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OCCURRENCE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___NAMES_OF__ELEMENT = OCCURRENCE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___QUALIFICATION_OF__STRING = OCCURRENCE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___RESOLVE__STRING = OCCURRENCE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___RESOLVE_GLOBAL__STRING = OCCURRENCE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___RESOLVE_LOCAL__STRING = OCCURRENCE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___RESOLVE_VISIBLE__STRING = OCCURRENCE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___UNQUALIFIED_NAME_OF__STRING = OCCURRENCE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___VISIBILITY_OF__MEMBERSHIP = OCCURRENCE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OCCURRENCE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___ALL_SUPERTYPES = OCCURRENCE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___DIRECTION_OF__FEATURE = OCCURRENCE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OCCURRENCE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___IS_COMPATIBLE_WITH__TYPE = OCCURRENCE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___MULTIPLICITIES = OCCURRENCE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OCCURRENCE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = OCCURRENCE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___SPECIALIZES__TYPE = OCCURRENCE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = OCCURRENCE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___SUPERTYPES__BOOLEAN = OCCURRENCE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___ALL_REDEFINED_FEATURES = OCCURRENCE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___AS_CARTESIAN_PRODUCT = OCCURRENCE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___CAN_ACCESS__FEATURE = OCCURRENCE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___DIRECTION_FOR__TYPE = OCCURRENCE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___IS_CARTESIAN_PRODUCT = OCCURRENCE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___IS_FEATURED_WITHIN__TYPE = OCCURRENCE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___IS_FEATURING_TYPE__TYPE = OCCURRENCE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___IS_OWNED_CROSS_FEATURE = OCCURRENCE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___NAMING_FEATURE = OCCURRENCE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___OWNED_CROSS_FEATURE = OCCURRENCE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___REDEFINES__FEATURE = OCCURRENCE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___REDEFINES_FROM_LIBRARY__STRING = OCCURRENCE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = OCCURRENCE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___TYPING_FEATURES = OCCURRENCE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int PORT_USAGE___REFERENCED_FEATURE_TARGET = OCCURRENCE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Port Usage' class. + * + * + * @generated + * @ordered + */ + int PORT_USAGE_OPERATION_COUNT = OCCURRENCE_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.PredicateImpl Predicate}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PredicateImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPredicate() + * @generated + */ + int PREDICATE = 125; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int PREDICATE__ALIAS_IDS = FUNCTION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__DECLARED_NAME = FUNCTION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__DECLARED_SHORT_NAME = FUNCTION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__ELEMENT_ID = FUNCTION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__IS_IMPLIED_INCLUDED = FUNCTION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__IS_LIBRARY_ELEMENT = FUNCTION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__NAME = FUNCTION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__QUALIFIED_NAME = FUNCTION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__SHORT_NAME = FUNCTION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__DOCUMENTATION = FUNCTION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_ANNOTATION = FUNCTION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_ELEMENT = FUNCTION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_RELATIONSHIP = FUNCTION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNER = FUNCTION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNING_MEMBERSHIP = FUNCTION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNING_NAMESPACE = FUNCTION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNING_RELATIONSHIP = FUNCTION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__TEXTUAL_REPRESENTATION = FUNCTION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__IMPORTED_MEMBERSHIP = FUNCTION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__MEMBER = FUNCTION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__MEMBERSHIP = FUNCTION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_IMPORT = FUNCTION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_MEMBER = FUNCTION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_MEMBERSHIP = FUNCTION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__IS_ABSTRACT = FUNCTION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__IS_CONJUGATED = FUNCTION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__IS_SUFFICIENT = FUNCTION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__DIFFERENCING_TYPE = FUNCTION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__DIRECTED_FEATURE = FUNCTION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__END_FEATURE = FUNCTION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__FEATURE = FUNCTION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__FEATURE_MEMBERSHIP = FUNCTION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__INHERITED_FEATURE = FUNCTION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__INHERITED_MEMBERSHIP = FUNCTION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__INPUT = FUNCTION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__INTERSECTING_TYPE = FUNCTION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int PREDICATE__MULTIPLICITY = FUNCTION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OUTPUT = FUNCTION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_CONJUGATOR = FUNCTION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_DIFFERENCING = FUNCTION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_DISJOINING = FUNCTION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_END_FEATURE = FUNCTION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_FEATURE = FUNCTION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_FEATURE_MEMBERSHIP = FUNCTION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_INTERSECTING = FUNCTION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_SPECIALIZATION = FUNCTION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_UNIONING = FUNCTION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__UNIONING_TYPE = FUNCTION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__OWNED_SUBCLASSIFICATION = FUNCTION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__PARAMETER = FUNCTION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__STEP = FUNCTION__STEP; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE__IS_MODEL_LEVEL_EVALUABLE = FUNCTION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE__EXPRESSION = FUNCTION__EXPRESSION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int PREDICATE__RESULT = FUNCTION__RESULT; + + /** + * The number of structural features of the 'Predicate' class. + * + * + * @generated + * @ordered + */ + int PREDICATE_FEATURE_COUNT = FUNCTION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___EFFECTIVE_NAME = FUNCTION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___EFFECTIVE_SHORT_NAME = FUNCTION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___ESCAPED_NAME = FUNCTION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___LIBRARY_NAMESPACE = FUNCTION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___PATH = FUNCTION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___IMPORTED_MEMBERSHIPS__ELIST = FUNCTION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = FUNCTION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___NAMES_OF__ELEMENT = FUNCTION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___QUALIFICATION_OF__STRING = FUNCTION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___RESOLVE__STRING = FUNCTION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___RESOLVE_GLOBAL__STRING = FUNCTION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___RESOLVE_LOCAL__STRING = FUNCTION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___RESOLVE_VISIBLE__STRING = FUNCTION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___UNQUALIFIED_NAME_OF__STRING = FUNCTION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___VISIBILITY_OF__MEMBERSHIP = FUNCTION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = FUNCTION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = FUNCTION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___ALL_SUPERTYPES = FUNCTION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___DIRECTION_OF__FEATURE = FUNCTION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = FUNCTION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FUNCTION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FUNCTION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___IS_COMPATIBLE_WITH__TYPE = FUNCTION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___MULTIPLICITIES = FUNCTION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FUNCTION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___REMOVE_REDEFINED_FEATURES__ELIST = FUNCTION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___SPECIALIZES__TYPE = FUNCTION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___SPECIALIZES_FROM_LIBRARY__STRING = FUNCTION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int PREDICATE___SUPERTYPES__BOOLEAN = FUNCTION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Predicate' class. + * + * + * @generated + * @ordered + */ + int PREDICATE_OPERATION_COUNT = FUNCTION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.RedefinitionImpl Redefinition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RedefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRedefinition() + * @generated + */ + int REDEFINITION = 126; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int REDEFINITION__ALIAS_IDS = SUBSETTING__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINITION__DECLARED_NAME = SUBSETTING__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINITION__DECLARED_SHORT_NAME = SUBSETTING__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINITION__ELEMENT_ID = SUBSETTING__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINITION__IS_IMPLIED_INCLUDED = SUBSETTING__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINITION__IS_LIBRARY_ELEMENT = SUBSETTING__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINITION__NAME = SUBSETTING__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINITION__QUALIFIED_NAME = SUBSETTING__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINITION__SHORT_NAME = SUBSETTING__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINITION__DOCUMENTATION = SUBSETTING__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNED_ANNOTATION = SUBSETTING__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNED_ELEMENT = SUBSETTING__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNED_RELATIONSHIP = SUBSETTING__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNER = SUBSETTING__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNING_MEMBERSHIP = SUBSETTING__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNING_NAMESPACE = SUBSETTING__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNING_RELATIONSHIP = SUBSETTING__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINITION__TEXTUAL_REPRESENTATION = SUBSETTING__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int REDEFINITION__IS_IMPLIED = SUBSETTING__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNED_RELATED_ELEMENT = SUBSETTING__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNING_RELATED_ELEMENT = SUBSETTING__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINITION__RELATED_ELEMENT = SUBSETTING__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINITION__SOURCE = SUBSETTING__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int REDEFINITION__TARGET = SUBSETTING__TARGET; + + /** + * The feature id for the 'General' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__GENERAL = SUBSETTING__GENERAL; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNING_TYPE = SUBSETTING__OWNING_TYPE; + + /** + * The feature id for the 'Specific' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__SPECIFIC = SUBSETTING__SPECIFIC; + + /** + * The feature id for the 'Owning Feature' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__OWNING_FEATURE = SUBSETTING__OWNING_FEATURE; + + /** + * The feature id for the 'Subsetted Feature' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__SUBSETTED_FEATURE = SUBSETTING__SUBSETTED_FEATURE; + + /** + * The feature id for the 'Subsetting Feature' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__SUBSETTING_FEATURE = SUBSETTING__SUBSETTING_FEATURE; + + /** + * The feature id for the 'Redefined Feature' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__REDEFINED_FEATURE = SUBSETTING_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Redefining Feature' reference. + * + * + * @generated + * @ordered + */ + int REDEFINITION__REDEFINING_FEATURE = SUBSETTING_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Redefinition' class. + * + * + * @generated + * @ordered + */ + int REDEFINITION_FEATURE_COUNT = SUBSETTING_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int REDEFINITION___EFFECTIVE_NAME = SUBSETTING___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int REDEFINITION___EFFECTIVE_SHORT_NAME = SUBSETTING___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int REDEFINITION___ESCAPED_NAME = SUBSETTING___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int REDEFINITION___LIBRARY_NAMESPACE = SUBSETTING___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int REDEFINITION___PATH = SUBSETTING___PATH; + + /** + * The number of operations of the 'Redefinition' class. + * + * + * @generated + * @ordered + */ + int REDEFINITION_OPERATION_COUNT = SUBSETTING_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ReferenceSubsettingImpl Reference Subsetting}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ReferenceSubsettingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getReferenceSubsetting() + * @generated + */ + int REFERENCE_SUBSETTING = 127; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__ALIAS_IDS = SUBSETTING__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__DECLARED_NAME = SUBSETTING__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__DECLARED_SHORT_NAME = SUBSETTING__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__ELEMENT_ID = SUBSETTING__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__IS_IMPLIED_INCLUDED = SUBSETTING__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__IS_LIBRARY_ELEMENT = SUBSETTING__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__NAME = SUBSETTING__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__QUALIFIED_NAME = SUBSETTING__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__SHORT_NAME = SUBSETTING__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__DOCUMENTATION = SUBSETTING__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNED_ANNOTATION = SUBSETTING__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNED_ELEMENT = SUBSETTING__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNED_RELATIONSHIP = SUBSETTING__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNER = SUBSETTING__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNING_MEMBERSHIP = SUBSETTING__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNING_NAMESPACE = SUBSETTING__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNING_RELATIONSHIP = SUBSETTING__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__TEXTUAL_REPRESENTATION = SUBSETTING__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__IS_IMPLIED = SUBSETTING__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNED_RELATED_ELEMENT = SUBSETTING__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNING_RELATED_ELEMENT = SUBSETTING__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__RELATED_ELEMENT = SUBSETTING__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__SOURCE = SUBSETTING__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__TARGET = SUBSETTING__TARGET; + + /** + * The feature id for the 'General' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__GENERAL = SUBSETTING__GENERAL; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNING_TYPE = SUBSETTING__OWNING_TYPE; + + /** + * The feature id for the 'Specific' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__SPECIFIC = SUBSETTING__SPECIFIC; + + /** + * The feature id for the 'Owning Feature' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__OWNING_FEATURE = SUBSETTING__OWNING_FEATURE; + + /** + * The feature id for the 'Subsetted Feature' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__SUBSETTED_FEATURE = SUBSETTING__SUBSETTED_FEATURE; + + /** + * The feature id for the 'Subsetting Feature' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__SUBSETTING_FEATURE = SUBSETTING__SUBSETTING_FEATURE; + + /** + * The feature id for the 'Referenced Feature' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__REFERENCED_FEATURE = SUBSETTING_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Referencing Feature' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING__REFERENCING_FEATURE = SUBSETTING_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Reference Subsetting' class. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING_FEATURE_COUNT = SUBSETTING_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING___EFFECTIVE_NAME = SUBSETTING___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING___EFFECTIVE_SHORT_NAME = SUBSETTING___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING___ESCAPED_NAME = SUBSETTING___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING___LIBRARY_NAMESPACE = SUBSETTING___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING___PATH = SUBSETTING___PATH; + + /** + * The number of operations of the 'Reference Subsetting' class. + * + * + * @generated + * @ordered + */ + int REFERENCE_SUBSETTING_OPERATION_COUNT = SUBSETTING_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ReferenceUsageImpl Reference Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ReferenceUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getReferenceUsage() + * @generated + */ + int REFERENCE_USAGE = 128; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__ALIAS_IDS = USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__DECLARED_NAME = USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__DECLARED_SHORT_NAME = USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__ELEMENT_ID = USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_IMPLIED_INCLUDED = USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_LIBRARY_ELEMENT = USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NAME = USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__QUALIFIED_NAME = USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__SHORT_NAME = USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__DOCUMENTATION = USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_ANNOTATION = USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_ELEMENT = USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_RELATIONSHIP = USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNER = USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNING_MEMBERSHIP = USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNING_NAMESPACE = USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNING_RELATIONSHIP = USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__TEXTUAL_REPRESENTATION = USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IMPORTED_MEMBERSHIP = USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__MEMBER = USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__MEMBERSHIP = USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_IMPORT = USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_MEMBER = USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_MEMBERSHIP = USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_ABSTRACT = USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_CONJUGATED = USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_SUFFICIENT = USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__DIFFERENCING_TYPE = USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__DIRECTED_FEATURE = USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__END_FEATURE = USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__FEATURE = USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__FEATURE_MEMBERSHIP = USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__INHERITED_FEATURE = USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__INHERITED_MEMBERSHIP = USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__INPUT = USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__INTERSECTING_TYPE = USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__MULTIPLICITY = USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OUTPUT = USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_CONJUGATOR = USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_DIFFERENCING = USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_DISJOINING = USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_END_FEATURE = USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_FEATURE = USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_FEATURE_MEMBERSHIP = USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_INTERSECTING = USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_SPECIALIZATION = USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_UNIONING = USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__UNIONING_TYPE = USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__DIRECTION = USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_COMPOSITE = USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_CONSTANT = USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_DERIVED = USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_END = USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_NONUNIQUE = USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_ORDERED = USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_PORTION = USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_UNIQUE = USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_VARIABLE = USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__CHAINING_FEATURE = USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__CROSS_FEATURE = USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__END_OWNING_TYPE = USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__FEATURE_TARGET = USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__FEATURING_TYPE = USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_CROSS_SUBSETTING = USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_FEATURE_CHAINING = USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_FEATURE_INVERTING = USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_REDEFINITION = USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_REFERENCE_SUBSETTING = USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_SUBSETTING = USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_TYPE_FEATURING = USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNED_TYPING = USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNING_FEATURE_MEMBERSHIP = USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNING_TYPE = USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__TYPE = USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_REFERENCE = USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__IS_VARIATION = USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__MAY_TIME_VARY = USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__DEFINITION = USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__DIRECTED_USAGE = USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_ACTION = USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_ALLOCATION = USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_ANALYSIS_CASE = USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_ATTRIBUTE = USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_CALCULATION = USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_CASE = USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_CONCERN = USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_CONNECTION = USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_CONSTRAINT = USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_ENUMERATION = USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_FLOW = USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_INTERFACE = USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_ITEM = USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_METADATA = USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_OCCURRENCE = USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_PART = USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_PORT = USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_REFERENCE = USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_RENDERING = USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_REQUIREMENT = USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_STATE = USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_TRANSITION = USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_USAGE = USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_USE_CASE = USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_VERIFICATION_CASE = USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_VIEW = USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__NESTED_VIEWPOINT = USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNING_DEFINITION = USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__OWNING_USAGE = USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__USAGE = USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__VARIANT = USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE__VARIANT_MEMBERSHIP = USAGE__VARIANT_MEMBERSHIP; + + /** + * The number of structural features of the 'Reference Usage' class. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE_FEATURE_COUNT = USAGE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___EFFECTIVE_NAME = USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___EFFECTIVE_SHORT_NAME = USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___ESCAPED_NAME = USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___LIBRARY_NAMESPACE = USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___PATH = USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___NAMES_OF__ELEMENT = USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___QUALIFICATION_OF__STRING = USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___RESOLVE__STRING = USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___RESOLVE_GLOBAL__STRING = USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___RESOLVE_LOCAL__STRING = USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___RESOLVE_VISIBLE__STRING = USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___UNQUALIFIED_NAME_OF__STRING = USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___VISIBILITY_OF__MEMBERSHIP = USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___ALL_SUPERTYPES = USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___DIRECTION_OF__FEATURE = USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___IS_COMPATIBLE_WITH__TYPE = USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___MULTIPLICITIES = USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___SPECIALIZES__TYPE = USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___SUPERTYPES__BOOLEAN = USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___ALL_REDEFINED_FEATURES = USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___AS_CARTESIAN_PRODUCT = USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___CAN_ACCESS__FEATURE = USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___DIRECTION_FOR__TYPE = USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___IS_CARTESIAN_PRODUCT = USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___IS_FEATURED_WITHIN__TYPE = USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___IS_FEATURING_TYPE__TYPE = USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___IS_OWNED_CROSS_FEATURE = USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___NAMING_FEATURE = USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___OWNED_CROSS_FEATURE = USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___REDEFINES__FEATURE = USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___REDEFINES_FROM_LIBRARY__STRING = USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___TYPING_FEATURES = USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE___REFERENCED_FEATURE_TARGET = USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Reference Usage' class. + * + * + * @generated + * @ordered + */ + int REFERENCE_USAGE_OPERATION_COUNT = USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.RenderingDefinitionImpl Rendering Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RenderingDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRenderingDefinition() + * @generated + */ + int RENDERING_DEFINITION = 130; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__ALIAS_IDS = PART_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__DECLARED_NAME = PART_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__DECLARED_SHORT_NAME = PART_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__ELEMENT_ID = PART_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__IS_IMPLIED_INCLUDED = PART_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__IS_LIBRARY_ELEMENT = PART_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__NAME = PART_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__QUALIFIED_NAME = PART_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__SHORT_NAME = PART_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__DOCUMENTATION = PART_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_ANNOTATION = PART_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_ELEMENT = PART_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_RELATIONSHIP = PART_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNER = PART_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNING_MEMBERSHIP = PART_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNING_NAMESPACE = PART_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNING_RELATIONSHIP = PART_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__TEXTUAL_REPRESENTATION = PART_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__IMPORTED_MEMBERSHIP = PART_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__MEMBER = PART_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__MEMBERSHIP = PART_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_IMPORT = PART_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_MEMBER = PART_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_MEMBERSHIP = PART_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__IS_ABSTRACT = PART_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__IS_CONJUGATED = PART_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__IS_SUFFICIENT = PART_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__DIFFERENCING_TYPE = PART_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__DIRECTED_FEATURE = PART_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__END_FEATURE = PART_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__FEATURE = PART_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__FEATURE_MEMBERSHIP = PART_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__INHERITED_FEATURE = PART_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__INHERITED_MEMBERSHIP = PART_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__INPUT = PART_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__INTERSECTING_TYPE = PART_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__MULTIPLICITY = PART_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OUTPUT = PART_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_CONJUGATOR = PART_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_DIFFERENCING = PART_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_DISJOINING = PART_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_END_FEATURE = PART_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_FEATURE = PART_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_FEATURE_MEMBERSHIP = PART_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_INTERSECTING = PART_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_SPECIALIZATION = PART_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_UNIONING = PART_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__UNIONING_TYPE = PART_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_SUBCLASSIFICATION = PART_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__IS_VARIATION = PART_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__DIRECTED_USAGE = PART_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_ACTION = PART_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_ALLOCATION = PART_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_ANALYSIS_CASE = PART_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_ATTRIBUTE = PART_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_CALCULATION = PART_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_CASE = PART_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_CONCERN = PART_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_CONNECTION = PART_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_CONSTRAINT = PART_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_ENUMERATION = PART_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_FLOW = PART_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_INTERFACE = PART_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_ITEM = PART_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_METADATA = PART_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_OCCURRENCE = PART_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_PART = PART_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_PORT = PART_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_REFERENCE = PART_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_RENDERING = PART_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_REQUIREMENT = PART_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_STATE = PART_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_TRANSITION = PART_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_USAGE = PART_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_USE_CASE = PART_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_VERIFICATION_CASE = PART_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_VIEW = PART_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__OWNED_VIEWPOINT = PART_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__USAGE = PART_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__VARIANT = PART_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__VARIANT_MEMBERSHIP = PART_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__IS_INDIVIDUAL = PART_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Rendering' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION__RENDERING = PART_DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Rendering Definition' class. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION_FEATURE_COUNT = PART_DEFINITION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___EFFECTIVE_NAME = PART_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___EFFECTIVE_SHORT_NAME = PART_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___ESCAPED_NAME = PART_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___LIBRARY_NAMESPACE = PART_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___PATH = PART_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = PART_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = PART_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___NAMES_OF__ELEMENT = PART_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___QUALIFICATION_OF__STRING = PART_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___RESOLVE__STRING = PART_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___RESOLVE_GLOBAL__STRING = PART_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___RESOLVE_LOCAL__STRING = PART_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___RESOLVE_VISIBLE__STRING = PART_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___UNQUALIFIED_NAME_OF__STRING = PART_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___VISIBILITY_OF__MEMBERSHIP = PART_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = PART_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = PART_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___ALL_SUPERTYPES = PART_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___DIRECTION_OF__FEATURE = PART_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = PART_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___IS_COMPATIBLE_WITH__TYPE = PART_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___MULTIPLICITIES = PART_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = PART_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___SPECIALIZES__TYPE = PART_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = PART_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION___SUPERTYPES__BOOLEAN = PART_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Rendering Definition' class. + * + * + * @generated + * @ordered + */ + int RENDERING_DEFINITION_OPERATION_COUNT = PART_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.RenderingUsageImpl Rendering Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RenderingUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRenderingUsage() + * @generated + */ + int RENDERING_USAGE = 131; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__ALIAS_IDS = PART_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__DECLARED_NAME = PART_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__DECLARED_SHORT_NAME = PART_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__ELEMENT_ID = PART_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_IMPLIED_INCLUDED = PART_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_LIBRARY_ELEMENT = PART_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NAME = PART_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__QUALIFIED_NAME = PART_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__SHORT_NAME = PART_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__DOCUMENTATION = PART_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_ANNOTATION = PART_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_ELEMENT = PART_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_RELATIONSHIP = PART_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNER = PART_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNING_MEMBERSHIP = PART_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNING_NAMESPACE = PART_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNING_RELATIONSHIP = PART_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__TEXTUAL_REPRESENTATION = PART_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IMPORTED_MEMBERSHIP = PART_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__MEMBER = PART_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__MEMBERSHIP = PART_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_IMPORT = PART_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_MEMBER = PART_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_MEMBERSHIP = PART_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_ABSTRACT = PART_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_CONJUGATED = PART_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_SUFFICIENT = PART_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__DIFFERENCING_TYPE = PART_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__DIRECTED_FEATURE = PART_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__END_FEATURE = PART_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__FEATURE = PART_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__FEATURE_MEMBERSHIP = PART_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__INHERITED_FEATURE = PART_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__INHERITED_MEMBERSHIP = PART_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__INPUT = PART_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__INTERSECTING_TYPE = PART_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__MULTIPLICITY = PART_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OUTPUT = PART_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_CONJUGATOR = PART_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_DIFFERENCING = PART_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_DISJOINING = PART_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_END_FEATURE = PART_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_FEATURE = PART_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_FEATURE_MEMBERSHIP = PART_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_INTERSECTING = PART_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_SPECIALIZATION = PART_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_UNIONING = PART_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__UNIONING_TYPE = PART_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__DIRECTION = PART_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_COMPOSITE = PART_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_CONSTANT = PART_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_DERIVED = PART_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_END = PART_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_NONUNIQUE = PART_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_ORDERED = PART_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_PORTION = PART_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_UNIQUE = PART_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_VARIABLE = PART_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__CHAINING_FEATURE = PART_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__CROSS_FEATURE = PART_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__END_OWNING_TYPE = PART_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__FEATURE_TARGET = PART_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__FEATURING_TYPE = PART_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_CROSS_SUBSETTING = PART_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_FEATURE_CHAINING = PART_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_FEATURE_INVERTING = PART_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_REDEFINITION = PART_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_REFERENCE_SUBSETTING = PART_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_SUBSETTING = PART_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_TYPE_FEATURING = PART_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNED_TYPING = PART_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNING_FEATURE_MEMBERSHIP = PART_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNING_TYPE = PART_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__TYPE = PART_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_REFERENCE = PART_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_VARIATION = PART_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__MAY_TIME_VARY = PART_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__DEFINITION = PART_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__DIRECTED_USAGE = PART_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_ACTION = PART_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_ALLOCATION = PART_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_ANALYSIS_CASE = PART_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_ATTRIBUTE = PART_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_CALCULATION = PART_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_CASE = PART_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_CONCERN = PART_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_CONNECTION = PART_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_CONSTRAINT = PART_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_ENUMERATION = PART_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_FLOW = PART_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_INTERFACE = PART_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_ITEM = PART_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_METADATA = PART_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_OCCURRENCE = PART_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_PART = PART_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_PORT = PART_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_REFERENCE = PART_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_RENDERING = PART_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_REQUIREMENT = PART_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_STATE = PART_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_TRANSITION = PART_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_USAGE = PART_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_USE_CASE = PART_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_VERIFICATION_CASE = PART_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_VIEW = PART_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__NESTED_VIEWPOINT = PART_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNING_DEFINITION = PART_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OWNING_USAGE = PART_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__USAGE = PART_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__VARIANT = PART_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__VARIANT_MEMBERSHIP = PART_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__IS_INDIVIDUAL = PART_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__PORTION_KIND = PART_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__INDIVIDUAL_DEFINITION = PART_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__OCCURRENCE_DEFINITION = PART_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Item Definition' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__ITEM_DEFINITION = PART_USAGE__ITEM_DEFINITION; + + /** + * The feature id for the 'Part Definition' reference list. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__PART_DEFINITION = PART_USAGE__PART_DEFINITION; + + /** + * The feature id for the 'Rendering Definition' reference. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE__RENDERING_DEFINITION = PART_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Rendering Usage' class. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE_FEATURE_COUNT = PART_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___EFFECTIVE_NAME = PART_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___EFFECTIVE_SHORT_NAME = PART_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___ESCAPED_NAME = PART_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___LIBRARY_NAMESPACE = PART_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___PATH = PART_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___IMPORTED_MEMBERSHIPS__ELIST = PART_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = PART_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___NAMES_OF__ELEMENT = PART_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___QUALIFICATION_OF__STRING = PART_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___RESOLVE__STRING = PART_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___RESOLVE_GLOBAL__STRING = PART_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___RESOLVE_LOCAL__STRING = PART_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___RESOLVE_VISIBLE__STRING = PART_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___UNQUALIFIED_NAME_OF__STRING = PART_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___VISIBILITY_OF__MEMBERSHIP = PART_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = PART_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = PART_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___ALL_SUPERTYPES = PART_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___DIRECTION_OF__FEATURE = PART_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = PART_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___IS_COMPATIBLE_WITH__TYPE = PART_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___MULTIPLICITIES = PART_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = PART_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___SPECIALIZES__TYPE = PART_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = PART_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___SUPERTYPES__BOOLEAN = PART_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___ALL_REDEFINED_FEATURES = PART_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___AS_CARTESIAN_PRODUCT = PART_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___CAN_ACCESS__FEATURE = PART_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___DIRECTION_FOR__TYPE = PART_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___IS_CARTESIAN_PRODUCT = PART_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___IS_FEATURED_WITHIN__TYPE = PART_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___IS_FEATURING_TYPE__TYPE = PART_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___IS_OWNED_CROSS_FEATURE = PART_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___NAMING_FEATURE = PART_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___OWNED_CROSS_FEATURE = PART_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___REDEFINES__FEATURE = PART_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___REDEFINES_FROM_LIBRARY__STRING = PART_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = PART_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___TYPING_FEATURES = PART_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE___REFERENCED_FEATURE_TARGET = PART_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Rendering Usage' class. + * + * + * @generated + * @ordered + */ + int RENDERING_USAGE_OPERATION_COUNT = PART_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.RequirementVerificationMembershipImpl Requirement Verification Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RequirementVerificationMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRequirementVerificationMembership() + * @generated + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP = 135; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__ALIAS_IDS = REQUIREMENT_CONSTRAINT_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__DECLARED_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__DECLARED_SHORT_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__ELEMENT_ID = REQUIREMENT_CONSTRAINT_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__IS_IMPLIED_INCLUDED = REQUIREMENT_CONSTRAINT_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__IS_LIBRARY_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__QUALIFIED_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__SHORT_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__DOCUMENTATION = REQUIREMENT_CONSTRAINT_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_ANNOTATION = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_RELATIONSHIP = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNER = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNING_MEMBERSHIP = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNING_NAMESPACE = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNING_RELATIONSHIP = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__TEXTUAL_REPRESENTATION = REQUIREMENT_CONSTRAINT_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__IS_IMPLIED = REQUIREMENT_CONSTRAINT_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_RELATED_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNING_RELATED_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__RELATED_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__SOURCE = REQUIREMENT_CONSTRAINT_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__TARGET = REQUIREMENT_CONSTRAINT_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__MEMBER_ELEMENT_ID = REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__MEMBER_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__MEMBER_SHORT_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__VISIBILITY = REQUIREMENT_CONSTRAINT_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__MEMBER_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = REQUIREMENT_CONSTRAINT_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_MEMBER_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_MEMBER_ELEMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_MEMBER_FEATURE = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNING_TYPE = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__KIND = REQUIREMENT_CONSTRAINT_MEMBERSHIP__KIND; + + /** + * The feature id for the 'Owned Constraint' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_CONSTRAINT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Referenced Constraint' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__REFERENCED_CONSTRAINT = REQUIREMENT_CONSTRAINT_MEMBERSHIP__REFERENCED_CONSTRAINT; + + /** + * The feature id for the 'Owned Requirement' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_REQUIREMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Verified Requirement' reference. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP__VERIFIED_REQUIREMENT = REQUIREMENT_CONSTRAINT_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Requirement Verification Membership' class. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP_FEATURE_COUNT = REQUIREMENT_CONSTRAINT_MEMBERSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP___EFFECTIVE_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP___EFFECTIVE_SHORT_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP___ESCAPED_NAME = REQUIREMENT_CONSTRAINT_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP___LIBRARY_NAMESPACE = REQUIREMENT_CONSTRAINT_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP___PATH = REQUIREMENT_CONSTRAINT_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = REQUIREMENT_CONSTRAINT_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Requirement Verification Membership' class. + * + * + * @generated + * @ordered + */ + int REQUIREMENT_VERIFICATION_MEMBERSHIP_OPERATION_COUNT = REQUIREMENT_CONSTRAINT_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ResultExpressionMembershipImpl Result Expression Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ResultExpressionMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getResultExpressionMembership() + * @generated + */ + int RESULT_EXPRESSION_MEMBERSHIP = 136; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__ALIAS_IDS = FEATURE_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__DECLARED_NAME = FEATURE_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__DECLARED_SHORT_NAME = FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__ELEMENT_ID = FEATURE_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__IS_IMPLIED_INCLUDED = FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__IS_LIBRARY_ELEMENT = FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__NAME = FEATURE_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__QUALIFIED_NAME = FEATURE_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__SHORT_NAME = FEATURE_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__DOCUMENTATION = FEATURE_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNED_ANNOTATION = FEATURE_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNED_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNER = FEATURE_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNING_MEMBERSHIP = FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNING_NAMESPACE = FEATURE_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNING_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__TEXTUAL_REPRESENTATION = FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__IS_IMPLIED = FEATURE_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNED_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNING_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__RELATED_ELEMENT = FEATURE_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__SOURCE = FEATURE_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__TARGET = FEATURE_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__MEMBER_NAME = FEATURE_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__VISIBILITY = FEATURE_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__MEMBER_ELEMENT = FEATURE_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNED_MEMBER_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNED_MEMBER_ELEMENT = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNED_MEMBER_FEATURE = FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNING_TYPE = FEATURE_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Owned Result Expression' reference. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP__OWNED_RESULT_EXPRESSION = FEATURE_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Result Expression Membership' class. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP_FEATURE_COUNT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP___EFFECTIVE_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP___EFFECTIVE_SHORT_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP___ESCAPED_NAME = FEATURE_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP___LIBRARY_NAMESPACE = FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP___PATH = FEATURE_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Result Expression Membership' class. + * + * + * @generated + * @ordered + */ + int RESULT_EXPRESSION_MEMBERSHIP_OPERATION_COUNT = FEATURE_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ReturnParameterMembershipImpl Return Parameter Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ReturnParameterMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getReturnParameterMembership() + * @generated + */ + int RETURN_PARAMETER_MEMBERSHIP = 137; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__ALIAS_IDS = PARAMETER_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__DECLARED_NAME = PARAMETER_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__DECLARED_SHORT_NAME = PARAMETER_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__ELEMENT_ID = PARAMETER_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__IS_IMPLIED_INCLUDED = PARAMETER_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__IS_LIBRARY_ELEMENT = PARAMETER_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__NAME = PARAMETER_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__QUALIFIED_NAME = PARAMETER_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__SHORT_NAME = PARAMETER_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__DOCUMENTATION = PARAMETER_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNED_ANNOTATION = PARAMETER_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNED_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNED_RELATIONSHIP = PARAMETER_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNER = PARAMETER_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNING_MEMBERSHIP = PARAMETER_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNING_NAMESPACE = PARAMETER_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNING_RELATIONSHIP = PARAMETER_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__TEXTUAL_REPRESENTATION = PARAMETER_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__IS_IMPLIED = PARAMETER_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNED_RELATED_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNING_RELATED_ELEMENT = PARAMETER_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__RELATED_ELEMENT = PARAMETER_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__SOURCE = PARAMETER_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__TARGET = PARAMETER_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__MEMBER_ELEMENT_ID = PARAMETER_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__MEMBER_NAME = PARAMETER_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__MEMBER_SHORT_NAME = PARAMETER_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__VISIBILITY = PARAMETER_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__MEMBER_ELEMENT = PARAMETER_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = PARAMETER_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNED_MEMBER_NAME = PARAMETER_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = PARAMETER_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNED_MEMBER_FEATURE = PARAMETER_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNING_TYPE = PARAMETER_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Owned Member Parameter' reference. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP__OWNED_MEMBER_PARAMETER = PARAMETER_MEMBERSHIP__OWNED_MEMBER_PARAMETER; + + /** + * The number of structural features of the 'Return Parameter Membership' class. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP_FEATURE_COUNT = PARAMETER_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP___EFFECTIVE_NAME = PARAMETER_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP___EFFECTIVE_SHORT_NAME = PARAMETER_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP___ESCAPED_NAME = PARAMETER_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP___LIBRARY_NAMESPACE = PARAMETER_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP___PATH = PARAMETER_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = PARAMETER_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The operation id for the 'Parameter Direction' operation. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP___PARAMETER_DIRECTION = PARAMETER_MEMBERSHIP___PARAMETER_DIRECTION; + + /** + * The number of operations of the 'Return Parameter Membership' class. + * + * + * @generated + * @ordered + */ + int RETURN_PARAMETER_MEMBERSHIP_OPERATION_COUNT = PARAMETER_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SatisfyRequirementUsageImpl Satisfy Requirement Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SatisfyRequirementUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSatisfyRequirementUsage() + * @generated + */ + int SATISFY_REQUIREMENT_USAGE = 138; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__ALIAS_IDS = REQUIREMENT_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__DECLARED_NAME = REQUIREMENT_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__DECLARED_SHORT_NAME = REQUIREMENT_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__ELEMENT_ID = REQUIREMENT_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_IMPLIED_INCLUDED = REQUIREMENT_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_LIBRARY_ELEMENT = REQUIREMENT_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NAME = REQUIREMENT_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__QUALIFIED_NAME = REQUIREMENT_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__SHORT_NAME = REQUIREMENT_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__DOCUMENTATION = REQUIREMENT_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_ANNOTATION = REQUIREMENT_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_ELEMENT = REQUIREMENT_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_RELATIONSHIP = REQUIREMENT_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNER = REQUIREMENT_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNING_MEMBERSHIP = REQUIREMENT_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNING_NAMESPACE = REQUIREMENT_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNING_RELATIONSHIP = REQUIREMENT_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__TEXTUAL_REPRESENTATION = REQUIREMENT_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IMPORTED_MEMBERSHIP = REQUIREMENT_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__MEMBER = REQUIREMENT_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__MEMBERSHIP = REQUIREMENT_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_IMPORT = REQUIREMENT_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_MEMBER = REQUIREMENT_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_MEMBERSHIP = REQUIREMENT_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_ABSTRACT = REQUIREMENT_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_CONJUGATED = REQUIREMENT_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_SUFFICIENT = REQUIREMENT_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__DIFFERENCING_TYPE = REQUIREMENT_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__DIRECTED_FEATURE = REQUIREMENT_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__END_FEATURE = REQUIREMENT_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__FEATURE = REQUIREMENT_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__FEATURE_MEMBERSHIP = REQUIREMENT_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__INHERITED_FEATURE = REQUIREMENT_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__INHERITED_MEMBERSHIP = REQUIREMENT_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__INPUT = REQUIREMENT_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__INTERSECTING_TYPE = REQUIREMENT_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__MULTIPLICITY = REQUIREMENT_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OUTPUT = REQUIREMENT_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_CONJUGATOR = REQUIREMENT_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_DIFFERENCING = REQUIREMENT_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_DISJOINING = REQUIREMENT_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_END_FEATURE = REQUIREMENT_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_FEATURE = REQUIREMENT_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_FEATURE_MEMBERSHIP = REQUIREMENT_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_INTERSECTING = REQUIREMENT_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_SPECIALIZATION = REQUIREMENT_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_UNIONING = REQUIREMENT_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__UNIONING_TYPE = REQUIREMENT_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__DIRECTION = REQUIREMENT_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_COMPOSITE = REQUIREMENT_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_CONSTANT = REQUIREMENT_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_DERIVED = REQUIREMENT_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_END = REQUIREMENT_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_NONUNIQUE = REQUIREMENT_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_ORDERED = REQUIREMENT_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_PORTION = REQUIREMENT_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_UNIQUE = REQUIREMENT_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_VARIABLE = REQUIREMENT_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__CHAINING_FEATURE = REQUIREMENT_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__CROSS_FEATURE = REQUIREMENT_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__END_OWNING_TYPE = REQUIREMENT_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__FEATURE_TARGET = REQUIREMENT_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__FEATURING_TYPE = REQUIREMENT_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_CROSS_SUBSETTING = REQUIREMENT_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_FEATURE_CHAINING = REQUIREMENT_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_FEATURE_INVERTING = REQUIREMENT_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_REDEFINITION = REQUIREMENT_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_REFERENCE_SUBSETTING = REQUIREMENT_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_SUBSETTING = REQUIREMENT_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_TYPE_FEATURING = REQUIREMENT_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNED_TYPING = REQUIREMENT_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNING_FEATURE_MEMBERSHIP = REQUIREMENT_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNING_TYPE = REQUIREMENT_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__TYPE = REQUIREMENT_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_REFERENCE = REQUIREMENT_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_VARIATION = REQUIREMENT_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__MAY_TIME_VARY = REQUIREMENT_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__DEFINITION = REQUIREMENT_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__DIRECTED_USAGE = REQUIREMENT_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_ACTION = REQUIREMENT_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_ALLOCATION = REQUIREMENT_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_ANALYSIS_CASE = REQUIREMENT_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_ATTRIBUTE = REQUIREMENT_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_CALCULATION = REQUIREMENT_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_CASE = REQUIREMENT_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_CONCERN = REQUIREMENT_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_CONNECTION = REQUIREMENT_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_CONSTRAINT = REQUIREMENT_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_ENUMERATION = REQUIREMENT_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_FLOW = REQUIREMENT_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_INTERFACE = REQUIREMENT_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_ITEM = REQUIREMENT_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_METADATA = REQUIREMENT_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_OCCURRENCE = REQUIREMENT_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_PART = REQUIREMENT_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_PORT = REQUIREMENT_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_REFERENCE = REQUIREMENT_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_RENDERING = REQUIREMENT_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_REQUIREMENT = REQUIREMENT_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_STATE = REQUIREMENT_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_TRANSITION = REQUIREMENT_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_USAGE = REQUIREMENT_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_USE_CASE = REQUIREMENT_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_VERIFICATION_CASE = REQUIREMENT_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_VIEW = REQUIREMENT_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__NESTED_VIEWPOINT = REQUIREMENT_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNING_DEFINITION = REQUIREMENT_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OWNING_USAGE = REQUIREMENT_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__USAGE = REQUIREMENT_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__VARIANT = REQUIREMENT_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__VARIANT_MEMBERSHIP = REQUIREMENT_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_INDIVIDUAL = REQUIREMENT_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__PORTION_KIND = REQUIREMENT_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__INDIVIDUAL_DEFINITION = REQUIREMENT_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__OCCURRENCE_DEFINITION = REQUIREMENT_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__BEHAVIOR = REQUIREMENT_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__PARAMETER = REQUIREMENT_USAGE__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_MODEL_LEVEL_EVALUABLE = REQUIREMENT_USAGE__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__FUNCTION = REQUIREMENT_USAGE__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__RESULT = REQUIREMENT_USAGE__RESULT; + + /** + * The feature id for the 'Predicate' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__PREDICATE = REQUIREMENT_USAGE__PREDICATE; + + /** + * The feature id for the 'Constraint Definition' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__CONSTRAINT_DEFINITION = REQUIREMENT_USAGE__CONSTRAINT_DEFINITION; + + /** + * The feature id for the 'Req Id' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__REQ_ID = REQUIREMENT_USAGE__REQ_ID; + + /** + * The feature id for the 'Text' attribute list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__TEXT = REQUIREMENT_USAGE__TEXT; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__ACTOR_PARAMETER = REQUIREMENT_USAGE__ACTOR_PARAMETER; + + /** + * The feature id for the 'Assumed Constraint' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__ASSUMED_CONSTRAINT = REQUIREMENT_USAGE__ASSUMED_CONSTRAINT; + + /** + * The feature id for the 'Framed Concern' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__FRAMED_CONCERN = REQUIREMENT_USAGE__FRAMED_CONCERN; + + /** + * The feature id for the 'Required Constraint' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__REQUIRED_CONSTRAINT = REQUIREMENT_USAGE__REQUIRED_CONSTRAINT; + + /** + * The feature id for the 'Requirement Definition' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__REQUIREMENT_DEFINITION = REQUIREMENT_USAGE__REQUIREMENT_DEFINITION; + + /** + * The feature id for the 'Stakeholder Parameter' reference list. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__STAKEHOLDER_PARAMETER = REQUIREMENT_USAGE__STAKEHOLDER_PARAMETER; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__SUBJECT_PARAMETER = REQUIREMENT_USAGE__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Is Negated' attribute. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__IS_NEGATED = REQUIREMENT_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Asserted Constraint' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__ASSERTED_CONSTRAINT = REQUIREMENT_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Satisfied Requirement' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__SATISFIED_REQUIREMENT = REQUIREMENT_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Satisfying Feature' reference. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE__SATISFYING_FEATURE = REQUIREMENT_USAGE_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Satisfy Requirement Usage' class. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE_FEATURE_COUNT = REQUIREMENT_USAGE_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___EFFECTIVE_NAME = REQUIREMENT_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___EFFECTIVE_SHORT_NAME = REQUIREMENT_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___ESCAPED_NAME = REQUIREMENT_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___LIBRARY_NAMESPACE = REQUIREMENT_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___PATH = REQUIREMENT_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___IMPORTED_MEMBERSHIPS__ELIST = REQUIREMENT_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = REQUIREMENT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___NAMES_OF__ELEMENT = REQUIREMENT_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___QUALIFICATION_OF__STRING = REQUIREMENT_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___RESOLVE__STRING = REQUIREMENT_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___RESOLVE_GLOBAL__STRING = REQUIREMENT_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___RESOLVE_LOCAL__STRING = REQUIREMENT_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___RESOLVE_VISIBLE__STRING = REQUIREMENT_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___UNQUALIFIED_NAME_OF__STRING = REQUIREMENT_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___VISIBILITY_OF__MEMBERSHIP = REQUIREMENT_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = REQUIREMENT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = REQUIREMENT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___ALL_SUPERTYPES = REQUIREMENT_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___DIRECTION_OF__FEATURE = REQUIREMENT_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = REQUIREMENT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___IS_COMPATIBLE_WITH__TYPE = REQUIREMENT_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___MULTIPLICITIES = REQUIREMENT_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = REQUIREMENT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___SPECIALIZES__TYPE = REQUIREMENT_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = REQUIREMENT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___SUPERTYPES__BOOLEAN = REQUIREMENT_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___ALL_REDEFINED_FEATURES = REQUIREMENT_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___AS_CARTESIAN_PRODUCT = REQUIREMENT_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___CAN_ACCESS__FEATURE = REQUIREMENT_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___DIRECTION_FOR__TYPE = REQUIREMENT_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___IS_CARTESIAN_PRODUCT = REQUIREMENT_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___IS_FEATURED_WITHIN__TYPE = REQUIREMENT_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___IS_FEATURING_TYPE__TYPE = REQUIREMENT_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___IS_OWNED_CROSS_FEATURE = REQUIREMENT_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___NAMING_FEATURE = REQUIREMENT_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___OWNED_CROSS_FEATURE = REQUIREMENT_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___REDEFINES__FEATURE = REQUIREMENT_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___REDEFINES_FROM_LIBRARY__STRING = REQUIREMENT_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = REQUIREMENT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___TYPING_FEATURES = REQUIREMENT_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___REFERENCED_FEATURE_TARGET = REQUIREMENT_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___CHECK_CONDITION__ELEMENT = REQUIREMENT_USAGE___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___EVALUATE__ELEMENT = REQUIREMENT_USAGE___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = REQUIREMENT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Satisfy Requirement Usage' class. + * + * + * @generated + * @ordered + */ + int SATISFY_REQUIREMENT_USAGE_OPERATION_COUNT = REQUIREMENT_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SelectExpressionImpl Select Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SelectExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSelectExpression() + * @generated + */ + int SELECT_EXPRESSION = 139; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__ALIAS_IDS = OPERATOR_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__DECLARED_NAME = OPERATOR_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__DECLARED_SHORT_NAME = OPERATOR_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__ELEMENT_ID = OPERATOR_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_IMPLIED_INCLUDED = OPERATOR_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_LIBRARY_ELEMENT = OPERATOR_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__NAME = OPERATOR_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__QUALIFIED_NAME = OPERATOR_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__SHORT_NAME = OPERATOR_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__DOCUMENTATION = OPERATOR_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_ANNOTATION = OPERATOR_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_ELEMENT = OPERATOR_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_RELATIONSHIP = OPERATOR_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNER = OPERATOR_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNING_MEMBERSHIP = OPERATOR_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNING_NAMESPACE = OPERATOR_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNING_RELATIONSHIP = OPERATOR_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__TEXTUAL_REPRESENTATION = OPERATOR_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IMPORTED_MEMBERSHIP = OPERATOR_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__MEMBER = OPERATOR_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__MEMBERSHIP = OPERATOR_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_IMPORT = OPERATOR_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_MEMBER = OPERATOR_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_MEMBERSHIP = OPERATOR_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_ABSTRACT = OPERATOR_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_CONJUGATED = OPERATOR_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_SUFFICIENT = OPERATOR_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__DIFFERENCING_TYPE = OPERATOR_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__DIRECTED_FEATURE = OPERATOR_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__END_FEATURE = OPERATOR_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__FEATURE = OPERATOR_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__INHERITED_FEATURE = OPERATOR_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__INHERITED_MEMBERSHIP = OPERATOR_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__INPUT = OPERATOR_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__INTERSECTING_TYPE = OPERATOR_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__MULTIPLICITY = OPERATOR_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OUTPUT = OPERATOR_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_CONJUGATOR = OPERATOR_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_DIFFERENCING = OPERATOR_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_DISJOINING = OPERATOR_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_END_FEATURE = OPERATOR_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_FEATURE = OPERATOR_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_INTERSECTING = OPERATOR_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_SPECIALIZATION = OPERATOR_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_UNIONING = OPERATOR_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__UNIONING_TYPE = OPERATOR_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__DIRECTION = OPERATOR_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_COMPOSITE = OPERATOR_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_CONSTANT = OPERATOR_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_DERIVED = OPERATOR_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_END = OPERATOR_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_NONUNIQUE = OPERATOR_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_ORDERED = OPERATOR_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_PORTION = OPERATOR_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_UNIQUE = OPERATOR_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_VARIABLE = OPERATOR_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__CHAINING_FEATURE = OPERATOR_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__CROSS_FEATURE = OPERATOR_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__END_OWNING_TYPE = OPERATOR_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__FEATURE_TARGET = OPERATOR_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__FEATURING_TYPE = OPERATOR_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_CROSS_SUBSETTING = OPERATOR_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_FEATURE_CHAINING = OPERATOR_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_FEATURE_INVERTING = OPERATOR_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_REDEFINITION = OPERATOR_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_REFERENCE_SUBSETTING = OPERATOR_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_SUBSETTING = OPERATOR_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_TYPE_FEATURING = OPERATOR_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNED_TYPING = OPERATOR_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = OPERATOR_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OWNING_TYPE = OPERATOR_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__TYPE = OPERATOR_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__BEHAVIOR = OPERATOR_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__PARAMETER = OPERATOR_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = OPERATOR_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__FUNCTION = OPERATOR_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__RESULT = OPERATOR_EXPRESSION__RESULT; + + /** + * The feature id for the 'Argument' reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__ARGUMENT = OPERATOR_EXPRESSION__ARGUMENT; + + /** + * The feature id for the 'Instantiated Type' reference. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__INSTANTIATED_TYPE = OPERATOR_EXPRESSION__INSTANTIATED_TYPE; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OPERAND = OPERATOR_EXPRESSION__OPERAND; + + /** + * The feature id for the 'Operator' attribute. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION__OPERATOR = OPERATOR_EXPRESSION__OPERATOR; + + /** + * The number of structural features of the 'Select Expression' class. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION_FEATURE_COUNT = OPERATOR_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___EFFECTIVE_NAME = OPERATOR_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___EFFECTIVE_SHORT_NAME = OPERATOR_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___ESCAPED_NAME = OPERATOR_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___LIBRARY_NAMESPACE = OPERATOR_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___PATH = OPERATOR_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = OPERATOR_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = OPERATOR_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___NAMES_OF__ELEMENT = OPERATOR_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___QUALIFICATION_OF__STRING = OPERATOR_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___RESOLVE__STRING = OPERATOR_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___RESOLVE_GLOBAL__STRING = OPERATOR_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___RESOLVE_LOCAL__STRING = OPERATOR_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___RESOLVE_VISIBLE__STRING = OPERATOR_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = OPERATOR_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = OPERATOR_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = OPERATOR_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = OPERATOR_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___ALL_SUPERTYPES = OPERATOR_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___DIRECTION_OF__FEATURE = OPERATOR_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = OPERATOR_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = OPERATOR_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___MULTIPLICITIES = OPERATOR_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = OPERATOR_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = OPERATOR_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___SPECIALIZES__TYPE = OPERATOR_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = OPERATOR_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___SUPERTYPES__BOOLEAN = OPERATOR_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___ALL_REDEFINED_FEATURES = OPERATOR_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___AS_CARTESIAN_PRODUCT = OPERATOR_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___CAN_ACCESS__FEATURE = OPERATOR_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___DIRECTION_FOR__TYPE = OPERATOR_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___IS_CARTESIAN_PRODUCT = OPERATOR_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___IS_FEATURED_WITHIN__TYPE = OPERATOR_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___IS_FEATURING_TYPE__TYPE = OPERATOR_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___IS_OWNED_CROSS_FEATURE = OPERATOR_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___NAMING_FEATURE = OPERATOR_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___OWNED_CROSS_FEATURE = OPERATOR_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___REDEFINES__FEATURE = OPERATOR_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = OPERATOR_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = OPERATOR_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___TYPING_FEATURES = OPERATOR_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___CHECK_CONDITION__ELEMENT = OPERATOR_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___EVALUATE__ELEMENT = OPERATOR_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = OPERATOR_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The operation id for the 'Instantiated Type' operation. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION___INSTANTIATED_TYPE = OPERATOR_EXPRESSION___INSTANTIATED_TYPE; + + /** + * The number of operations of the 'Select Expression' class. + * + * + * @generated + * @ordered + */ + int SELECT_EXPRESSION_OPERATION_COUNT = OPERATOR_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SendActionUsageImpl Send Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SendActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSendActionUsage() + * @generated + */ + int SEND_ACTION_USAGE = 140; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Payload Argument' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__PAYLOAD_ARGUMENT = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Receiver Argument' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__RECEIVER_ARGUMENT = ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Sender Argument' reference. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE__SENDER_ARGUMENT = ACTION_USAGE_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Send Action Usage' class. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The number of operations of the 'Send Action Usage' class. + * + * + * @generated + * @ordered + */ + int SEND_ACTION_USAGE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.StakeholderMembershipImpl Stakeholder Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StakeholderMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStakeholderMembership() + * @generated + */ + int STAKEHOLDER_MEMBERSHIP = 142; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__ALIAS_IDS = PARAMETER_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__DECLARED_NAME = PARAMETER_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__DECLARED_SHORT_NAME = PARAMETER_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__ELEMENT_ID = PARAMETER_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__IS_IMPLIED_INCLUDED = PARAMETER_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__IS_LIBRARY_ELEMENT = PARAMETER_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__NAME = PARAMETER_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__QUALIFIED_NAME = PARAMETER_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__SHORT_NAME = PARAMETER_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__DOCUMENTATION = PARAMETER_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_ANNOTATION = PARAMETER_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_RELATIONSHIP = PARAMETER_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNER = PARAMETER_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNING_MEMBERSHIP = PARAMETER_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNING_NAMESPACE = PARAMETER_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNING_RELATIONSHIP = PARAMETER_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__TEXTUAL_REPRESENTATION = PARAMETER_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__IS_IMPLIED = PARAMETER_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_RELATED_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNING_RELATED_ELEMENT = PARAMETER_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__RELATED_ELEMENT = PARAMETER_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__SOURCE = PARAMETER_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__TARGET = PARAMETER_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__MEMBER_ELEMENT_ID = PARAMETER_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__MEMBER_NAME = PARAMETER_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__MEMBER_SHORT_NAME = PARAMETER_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__VISIBILITY = PARAMETER_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__MEMBER_ELEMENT = PARAMETER_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = PARAMETER_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_MEMBER_NAME = PARAMETER_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = PARAMETER_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_MEMBER_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_MEMBER_FEATURE = PARAMETER_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNING_TYPE = PARAMETER_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Owned Member Parameter' reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_MEMBER_PARAMETER = PARAMETER_MEMBERSHIP__OWNED_MEMBER_PARAMETER; + + /** + * The feature id for the 'Owned Stakeholder Parameter' reference. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP__OWNED_STAKEHOLDER_PARAMETER = PARAMETER_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Stakeholder Membership' class. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP_FEATURE_COUNT = PARAMETER_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP___EFFECTIVE_NAME = PARAMETER_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP___EFFECTIVE_SHORT_NAME = PARAMETER_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP___ESCAPED_NAME = PARAMETER_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP___LIBRARY_NAMESPACE = PARAMETER_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP___PATH = PARAMETER_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = PARAMETER_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The operation id for the 'Parameter Direction' operation. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP___PARAMETER_DIRECTION = PARAMETER_MEMBERSHIP___PARAMETER_DIRECTION; + + /** + * The number of operations of the 'Stakeholder Membership' class. + * + * + * @generated + * @ordered + */ + int STAKEHOLDER_MEMBERSHIP_OPERATION_COUNT = PARAMETER_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.StateDefinitionImpl State Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StateDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStateDefinition() + * @generated + */ + int STATE_DEFINITION = 143; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__ALIAS_IDS = ACTION_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__DECLARED_NAME = ACTION_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__DECLARED_SHORT_NAME = ACTION_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__ELEMENT_ID = ACTION_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__IS_IMPLIED_INCLUDED = ACTION_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__IS_LIBRARY_ELEMENT = ACTION_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__NAME = ACTION_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__QUALIFIED_NAME = ACTION_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__SHORT_NAME = ACTION_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__DOCUMENTATION = ACTION_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_ANNOTATION = ACTION_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_ELEMENT = ACTION_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_RELATIONSHIP = ACTION_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNER = ACTION_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNING_MEMBERSHIP = ACTION_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNING_NAMESPACE = ACTION_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNING_RELATIONSHIP = ACTION_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__TEXTUAL_REPRESENTATION = ACTION_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__IMPORTED_MEMBERSHIP = ACTION_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__MEMBER = ACTION_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__MEMBERSHIP = ACTION_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_IMPORT = ACTION_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_MEMBER = ACTION_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_MEMBERSHIP = ACTION_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__IS_ABSTRACT = ACTION_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__IS_CONJUGATED = ACTION_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__IS_SUFFICIENT = ACTION_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__DIFFERENCING_TYPE = ACTION_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__DIRECTED_FEATURE = ACTION_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__END_FEATURE = ACTION_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__FEATURE = ACTION_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__FEATURE_MEMBERSHIP = ACTION_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__INHERITED_FEATURE = ACTION_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__INHERITED_MEMBERSHIP = ACTION_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__INPUT = ACTION_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__INTERSECTING_TYPE = ACTION_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__MULTIPLICITY = ACTION_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OUTPUT = ACTION_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_CONJUGATOR = ACTION_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_DIFFERENCING = ACTION_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_DISJOINING = ACTION_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_END_FEATURE = ACTION_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_FEATURE = ACTION_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_FEATURE_MEMBERSHIP = ACTION_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_INTERSECTING = ACTION_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_SPECIALIZATION = ACTION_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_UNIONING = ACTION_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__UNIONING_TYPE = ACTION_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_SUBCLASSIFICATION = ACTION_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__IS_VARIATION = ACTION_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__DIRECTED_USAGE = ACTION_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_ACTION = ACTION_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_ALLOCATION = ACTION_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_ANALYSIS_CASE = ACTION_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_ATTRIBUTE = ACTION_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_CALCULATION = ACTION_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_CASE = ACTION_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_CONCERN = ACTION_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_CONNECTION = ACTION_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_CONSTRAINT = ACTION_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_ENUMERATION = ACTION_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_FLOW = ACTION_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_INTERFACE = ACTION_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_ITEM = ACTION_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_METADATA = ACTION_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_OCCURRENCE = ACTION_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_PART = ACTION_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_PORT = ACTION_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_REFERENCE = ACTION_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_RENDERING = ACTION_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_REQUIREMENT = ACTION_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_STATE = ACTION_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_TRANSITION = ACTION_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_USAGE = ACTION_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_USE_CASE = ACTION_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_VERIFICATION_CASE = ACTION_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_VIEW = ACTION_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__OWNED_VIEWPOINT = ACTION_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__USAGE = ACTION_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__VARIANT = ACTION_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__VARIANT_MEMBERSHIP = ACTION_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__IS_INDIVIDUAL = ACTION_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__PARAMETER = ACTION_DEFINITION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__STEP = ACTION_DEFINITION__STEP; + + /** + * The feature id for the 'Action' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__ACTION = ACTION_DEFINITION__ACTION; + + /** + * The feature id for the 'Is Parallel' attribute. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__IS_PARALLEL = ACTION_DEFINITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Do Action' reference. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__DO_ACTION = ACTION_DEFINITION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Entry Action' reference. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__ENTRY_ACTION = ACTION_DEFINITION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Exit Action' reference. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__EXIT_ACTION = ACTION_DEFINITION_FEATURE_COUNT + 3; + + /** + * The feature id for the 'State' reference list. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION__STATE = ACTION_DEFINITION_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'State Definition' class. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION_FEATURE_COUNT = ACTION_DEFINITION_FEATURE_COUNT + 5; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___EFFECTIVE_NAME = ACTION_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___EFFECTIVE_SHORT_NAME = ACTION_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___ESCAPED_NAME = ACTION_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___LIBRARY_NAMESPACE = ACTION_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___PATH = ACTION_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = ACTION_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___NAMES_OF__ELEMENT = ACTION_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___QUALIFICATION_OF__STRING = ACTION_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___RESOLVE__STRING = ACTION_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___RESOLVE_GLOBAL__STRING = ACTION_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___RESOLVE_LOCAL__STRING = ACTION_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___RESOLVE_VISIBLE__STRING = ACTION_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___UNQUALIFIED_NAME_OF__STRING = ACTION_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___VISIBILITY_OF__MEMBERSHIP = ACTION_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___ALL_SUPERTYPES = ACTION_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___DIRECTION_OF__FEATURE = ACTION_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___IS_COMPATIBLE_WITH__TYPE = ACTION_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___MULTIPLICITIES = ACTION_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___SPECIALIZES__TYPE = ACTION_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION___SUPERTYPES__BOOLEAN = ACTION_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'State Definition' class. + * + * + * @generated + * @ordered + */ + int STATE_DEFINITION_OPERATION_COUNT = ACTION_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.StateSubactionMembershipImpl State Subaction Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StateSubactionMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStateSubactionMembership() + * @generated + */ + int STATE_SUBACTION_MEMBERSHIP = 144; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__ALIAS_IDS = FEATURE_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__DECLARED_NAME = FEATURE_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__DECLARED_SHORT_NAME = FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__ELEMENT_ID = FEATURE_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__IS_IMPLIED_INCLUDED = FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__IS_LIBRARY_ELEMENT = FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__NAME = FEATURE_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__QUALIFIED_NAME = FEATURE_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__SHORT_NAME = FEATURE_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__DOCUMENTATION = FEATURE_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNED_ANNOTATION = FEATURE_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNED_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNER = FEATURE_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNING_MEMBERSHIP = FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNING_NAMESPACE = FEATURE_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNING_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__TEXTUAL_REPRESENTATION = FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__IS_IMPLIED = FEATURE_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNED_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNING_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__RELATED_ELEMENT = FEATURE_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__SOURCE = FEATURE_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__TARGET = FEATURE_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__MEMBER_NAME = FEATURE_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__VISIBILITY = FEATURE_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__MEMBER_ELEMENT = FEATURE_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNED_MEMBER_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNED_MEMBER_ELEMENT = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNED_MEMBER_FEATURE = FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__OWNING_TYPE = FEATURE_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__KIND = FEATURE_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Action' reference. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP__ACTION = FEATURE_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'State Subaction Membership' class. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP_FEATURE_COUNT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP___EFFECTIVE_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP___EFFECTIVE_SHORT_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP___ESCAPED_NAME = FEATURE_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP___LIBRARY_NAMESPACE = FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP___PATH = FEATURE_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'State Subaction Membership' class. + * + * + * @generated + * @ordered + */ + int STATE_SUBACTION_MEMBERSHIP_OPERATION_COUNT = FEATURE_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SubclassificationImpl Subclassification}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SubclassificationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSubclassification() + * @generated + */ + int SUBCLASSIFICATION = 148; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__ALIAS_IDS = SPECIALIZATION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__DECLARED_NAME = SPECIALIZATION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__DECLARED_SHORT_NAME = SPECIALIZATION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__ELEMENT_ID = SPECIALIZATION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__IS_IMPLIED_INCLUDED = SPECIALIZATION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__IS_LIBRARY_ELEMENT = SPECIALIZATION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__NAME = SPECIALIZATION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__QUALIFIED_NAME = SPECIALIZATION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__SHORT_NAME = SPECIALIZATION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__DOCUMENTATION = SPECIALIZATION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNED_ANNOTATION = SPECIALIZATION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNED_ELEMENT = SPECIALIZATION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNED_RELATIONSHIP = SPECIALIZATION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNER = SPECIALIZATION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNING_MEMBERSHIP = SPECIALIZATION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNING_NAMESPACE = SPECIALIZATION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNING_RELATIONSHIP = SPECIALIZATION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__TEXTUAL_REPRESENTATION = SPECIALIZATION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__IS_IMPLIED = SPECIALIZATION__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNED_RELATED_ELEMENT = SPECIALIZATION__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNING_RELATED_ELEMENT = SPECIALIZATION__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__RELATED_ELEMENT = SPECIALIZATION__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__SOURCE = SPECIALIZATION__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__TARGET = SPECIALIZATION__TARGET; + + /** + * The feature id for the 'General' reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__GENERAL = SPECIALIZATION__GENERAL; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNING_TYPE = SPECIALIZATION__OWNING_TYPE; + + /** + * The feature id for the 'Specific' reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__SPECIFIC = SPECIALIZATION__SPECIFIC; + + /** + * The feature id for the 'Owning Classifier' reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__OWNING_CLASSIFIER = SPECIALIZATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Subclassifier' reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__SUBCLASSIFIER = SPECIALIZATION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Superclassifier' reference. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION__SUPERCLASSIFIER = SPECIALIZATION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Subclassification' class. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION_FEATURE_COUNT = SPECIALIZATION_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION___EFFECTIVE_NAME = SPECIALIZATION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION___EFFECTIVE_SHORT_NAME = SPECIALIZATION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION___ESCAPED_NAME = SPECIALIZATION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION___LIBRARY_NAMESPACE = SPECIALIZATION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION___PATH = SPECIALIZATION___PATH; + + /** + * The number of operations of the 'Subclassification' class. + * + * + * @generated + * @ordered + */ + int SUBCLASSIFICATION_OPERATION_COUNT = SPECIALIZATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SubjectMembershipImpl Subject Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SubjectMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSubjectMembership() + * @generated + */ + int SUBJECT_MEMBERSHIP = 149; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__ALIAS_IDS = PARAMETER_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__DECLARED_NAME = PARAMETER_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__DECLARED_SHORT_NAME = PARAMETER_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__ELEMENT_ID = PARAMETER_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__IS_IMPLIED_INCLUDED = PARAMETER_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__IS_LIBRARY_ELEMENT = PARAMETER_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__NAME = PARAMETER_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__QUALIFIED_NAME = PARAMETER_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__SHORT_NAME = PARAMETER_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__DOCUMENTATION = PARAMETER_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_ANNOTATION = PARAMETER_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_RELATIONSHIP = PARAMETER_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNER = PARAMETER_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNING_MEMBERSHIP = PARAMETER_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNING_NAMESPACE = PARAMETER_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNING_RELATIONSHIP = PARAMETER_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__TEXTUAL_REPRESENTATION = PARAMETER_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__IS_IMPLIED = PARAMETER_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_RELATED_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNING_RELATED_ELEMENT = PARAMETER_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__RELATED_ELEMENT = PARAMETER_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__SOURCE = PARAMETER_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__TARGET = PARAMETER_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__MEMBER_ELEMENT_ID = PARAMETER_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__MEMBER_NAME = PARAMETER_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__MEMBER_SHORT_NAME = PARAMETER_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__VISIBILITY = PARAMETER_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__MEMBER_ELEMENT = PARAMETER_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = PARAMETER_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_MEMBER_NAME = PARAMETER_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = PARAMETER_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_MEMBER_ELEMENT = PARAMETER_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_MEMBER_FEATURE = PARAMETER_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNING_TYPE = PARAMETER_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Owned Member Parameter' reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_MEMBER_PARAMETER = PARAMETER_MEMBERSHIP__OWNED_MEMBER_PARAMETER; + + /** + * The feature id for the 'Owned Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP__OWNED_SUBJECT_PARAMETER = PARAMETER_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Subject Membership' class. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP_FEATURE_COUNT = PARAMETER_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP___EFFECTIVE_NAME = PARAMETER_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP___EFFECTIVE_SHORT_NAME = PARAMETER_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP___ESCAPED_NAME = PARAMETER_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP___LIBRARY_NAMESPACE = PARAMETER_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP___PATH = PARAMETER_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = PARAMETER_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The operation id for the 'Parameter Direction' operation. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP___PARAMETER_DIRECTION = PARAMETER_MEMBERSHIP___PARAMETER_DIRECTION; + + /** + * The number of operations of the 'Subject Membership' class. + * + * + * @generated + * @ordered + */ + int SUBJECT_MEMBERSHIP_OPERATION_COUNT = PARAMETER_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SuccessionImpl Succession}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SuccessionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSuccession() + * @generated + */ + int SUCCESSION = 151; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__ALIAS_IDS = CONNECTOR__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__DECLARED_NAME = CONNECTOR__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__DECLARED_SHORT_NAME = CONNECTOR__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__ELEMENT_ID = CONNECTOR__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_IMPLIED_INCLUDED = CONNECTOR__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_LIBRARY_ELEMENT = CONNECTOR__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__NAME = CONNECTOR__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__QUALIFIED_NAME = CONNECTOR__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__SHORT_NAME = CONNECTOR__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__DOCUMENTATION = CONNECTOR__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_ANNOTATION = CONNECTOR__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_ELEMENT = CONNECTOR__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_RELATIONSHIP = CONNECTOR__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNER = CONNECTOR__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNING_MEMBERSHIP = CONNECTOR__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNING_NAMESPACE = CONNECTOR__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNING_RELATIONSHIP = CONNECTOR__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__TEXTUAL_REPRESENTATION = CONNECTOR__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IMPORTED_MEMBERSHIP = CONNECTOR__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__MEMBER = CONNECTOR__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__MEMBERSHIP = CONNECTOR__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_IMPORT = CONNECTOR__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_MEMBER = CONNECTOR__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_MEMBERSHIP = CONNECTOR__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_ABSTRACT = CONNECTOR__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_CONJUGATED = CONNECTOR__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_SUFFICIENT = CONNECTOR__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__DIFFERENCING_TYPE = CONNECTOR__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__DIRECTED_FEATURE = CONNECTOR__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__END_FEATURE = CONNECTOR__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__FEATURE = CONNECTOR__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__FEATURE_MEMBERSHIP = CONNECTOR__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__INHERITED_FEATURE = CONNECTOR__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__INHERITED_MEMBERSHIP = CONNECTOR__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__INPUT = CONNECTOR__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__INTERSECTING_TYPE = CONNECTOR__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__MULTIPLICITY = CONNECTOR__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OUTPUT = CONNECTOR__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_CONJUGATOR = CONNECTOR__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_DIFFERENCING = CONNECTOR__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_DISJOINING = CONNECTOR__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_END_FEATURE = CONNECTOR__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_FEATURE = CONNECTOR__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_FEATURE_MEMBERSHIP = CONNECTOR__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_INTERSECTING = CONNECTOR__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_SPECIALIZATION = CONNECTOR__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_UNIONING = CONNECTOR__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__UNIONING_TYPE = CONNECTOR__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__DIRECTION = CONNECTOR__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_COMPOSITE = CONNECTOR__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_CONSTANT = CONNECTOR__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_DERIVED = CONNECTOR__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_END = CONNECTOR__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_NONUNIQUE = CONNECTOR__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_ORDERED = CONNECTOR__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_PORTION = CONNECTOR__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_UNIQUE = CONNECTOR__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_VARIABLE = CONNECTOR__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__CHAINING_FEATURE = CONNECTOR__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__CROSS_FEATURE = CONNECTOR__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__END_OWNING_TYPE = CONNECTOR__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__FEATURE_TARGET = CONNECTOR__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__FEATURING_TYPE = CONNECTOR__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_CROSS_SUBSETTING = CONNECTOR__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_FEATURE_CHAINING = CONNECTOR__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_FEATURE_INVERTING = CONNECTOR__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_REDEFINITION = CONNECTOR__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_REFERENCE_SUBSETTING = CONNECTOR__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_SUBSETTING = CONNECTOR__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_TYPE_FEATURING = CONNECTOR__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_TYPING = CONNECTOR__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNING_FEATURE_MEMBERSHIP = CONNECTOR__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNING_TYPE = CONNECTOR__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__TYPE = CONNECTOR__TYPE; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION__IS_IMPLIED = CONNECTOR__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNED_RELATED_ELEMENT = CONNECTOR__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__OWNING_RELATED_ELEMENT = CONNECTOR__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__RELATED_ELEMENT = CONNECTOR__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__SOURCE = CONNECTOR__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__TARGET = CONNECTOR__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__ASSOCIATION = CONNECTOR__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__CONNECTOR_END = CONNECTOR__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__DEFAULT_FEATURING_TYPE = CONNECTOR__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__RELATED_FEATURE = CONNECTOR__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION__SOURCE_FEATURE = CONNECTOR__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION__TARGET_FEATURE = CONNECTOR__TARGET_FEATURE; + + /** + * The number of structural features of the 'Succession' class. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FEATURE_COUNT = CONNECTOR_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___EFFECTIVE_NAME = CONNECTOR___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___EFFECTIVE_SHORT_NAME = CONNECTOR___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___ESCAPED_NAME = CONNECTOR___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___LIBRARY_NAMESPACE = CONNECTOR___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___PATH = CONNECTOR___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___IMPORTED_MEMBERSHIPS__ELIST = CONNECTOR___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTOR___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___NAMES_OF__ELEMENT = CONNECTOR___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___QUALIFICATION_OF__STRING = CONNECTOR___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___RESOLVE__STRING = CONNECTOR___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___RESOLVE_GLOBAL__STRING = CONNECTOR___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___RESOLVE_LOCAL__STRING = CONNECTOR___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___RESOLVE_VISIBLE__STRING = CONNECTOR___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___UNQUALIFIED_NAME_OF__STRING = CONNECTOR___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___VISIBILITY_OF__MEMBERSHIP = CONNECTOR___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTOR___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTOR___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___ALL_SUPERTYPES = CONNECTOR___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___DIRECTION_OF__FEATURE = CONNECTOR___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTOR___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___IS_COMPATIBLE_WITH__TYPE = CONNECTOR___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___MULTIPLICITIES = CONNECTOR___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTOR___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___SPECIALIZES__TYPE = CONNECTOR___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTOR___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___SUPERTYPES__BOOLEAN = CONNECTOR___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___ALL_REDEFINED_FEATURES = CONNECTOR___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___AS_CARTESIAN_PRODUCT = CONNECTOR___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___CAN_ACCESS__FEATURE = CONNECTOR___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___DIRECTION_FOR__TYPE = CONNECTOR___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___IS_CARTESIAN_PRODUCT = CONNECTOR___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___IS_FEATURED_WITHIN__TYPE = CONNECTOR___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___IS_FEATURING_TYPE__TYPE = CONNECTOR___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___IS_OWNED_CROSS_FEATURE = CONNECTOR___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___NAMING_FEATURE = CONNECTOR___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___OWNED_CROSS_FEATURE = CONNECTOR___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___REDEFINES__FEATURE = CONNECTOR___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___REDEFINES_FROM_LIBRARY__STRING = CONNECTOR___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___SUBSETS_CHAIN__FEATURE_FEATURE = CONNECTOR___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION___TYPING_FEATURES = CONNECTOR___TYPING_FEATURES; + + /** + * The number of operations of the 'Succession' class. + * + * + * @generated + * @ordered + */ + int SUCCESSION_OPERATION_COUNT = CONNECTOR_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SuccessionAsUsageImpl Succession As Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SuccessionAsUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSuccessionAsUsage() + * @generated + */ + int SUCCESSION_AS_USAGE = 152; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__ALIAS_IDS = CONNECTOR_AS_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__DECLARED_NAME = CONNECTOR_AS_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__DECLARED_SHORT_NAME = CONNECTOR_AS_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__ELEMENT_ID = CONNECTOR_AS_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_IMPLIED_INCLUDED = CONNECTOR_AS_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_LIBRARY_ELEMENT = CONNECTOR_AS_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NAME = CONNECTOR_AS_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__QUALIFIED_NAME = CONNECTOR_AS_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__SHORT_NAME = CONNECTOR_AS_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__DOCUMENTATION = CONNECTOR_AS_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_ANNOTATION = CONNECTOR_AS_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_ELEMENT = CONNECTOR_AS_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_RELATIONSHIP = CONNECTOR_AS_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNER = CONNECTOR_AS_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNING_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNING_NAMESPACE = CONNECTOR_AS_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNING_RELATIONSHIP = CONNECTOR_AS_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__TEXTUAL_REPRESENTATION = CONNECTOR_AS_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IMPORTED_MEMBERSHIP = CONNECTOR_AS_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__MEMBER = CONNECTOR_AS_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__MEMBERSHIP = CONNECTOR_AS_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_IMPORT = CONNECTOR_AS_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_MEMBER = CONNECTOR_AS_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_ABSTRACT = CONNECTOR_AS_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_CONJUGATED = CONNECTOR_AS_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_SUFFICIENT = CONNECTOR_AS_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__DIFFERENCING_TYPE = CONNECTOR_AS_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__DIRECTED_FEATURE = CONNECTOR_AS_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__END_FEATURE = CONNECTOR_AS_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__FEATURE = CONNECTOR_AS_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__INHERITED_FEATURE = CONNECTOR_AS_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__INHERITED_MEMBERSHIP = CONNECTOR_AS_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__INPUT = CONNECTOR_AS_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__INTERSECTING_TYPE = CONNECTOR_AS_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__MULTIPLICITY = CONNECTOR_AS_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OUTPUT = CONNECTOR_AS_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_CONJUGATOR = CONNECTOR_AS_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_DIFFERENCING = CONNECTOR_AS_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_DISJOINING = CONNECTOR_AS_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_END_FEATURE = CONNECTOR_AS_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_FEATURE = CONNECTOR_AS_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_INTERSECTING = CONNECTOR_AS_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_SPECIALIZATION = CONNECTOR_AS_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_UNIONING = CONNECTOR_AS_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__UNIONING_TYPE = CONNECTOR_AS_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__DIRECTION = CONNECTOR_AS_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_COMPOSITE = CONNECTOR_AS_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_CONSTANT = CONNECTOR_AS_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_DERIVED = CONNECTOR_AS_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_END = CONNECTOR_AS_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_NONUNIQUE = CONNECTOR_AS_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_ORDERED = CONNECTOR_AS_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_PORTION = CONNECTOR_AS_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_UNIQUE = CONNECTOR_AS_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_VARIABLE = CONNECTOR_AS_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__CHAINING_FEATURE = CONNECTOR_AS_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__CROSS_FEATURE = CONNECTOR_AS_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__END_OWNING_TYPE = CONNECTOR_AS_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__FEATURE_TARGET = CONNECTOR_AS_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__FEATURING_TYPE = CONNECTOR_AS_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_CROSS_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_FEATURE_CHAINING = CONNECTOR_AS_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_FEATURE_INVERTING = CONNECTOR_AS_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_REDEFINITION = CONNECTOR_AS_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_REFERENCE_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_SUBSETTING = CONNECTOR_AS_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_TYPE_FEATURING = CONNECTOR_AS_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_TYPING = CONNECTOR_AS_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNING_FEATURE_MEMBERSHIP = CONNECTOR_AS_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNING_TYPE = CONNECTOR_AS_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__TYPE = CONNECTOR_AS_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_REFERENCE = CONNECTOR_AS_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_VARIATION = CONNECTOR_AS_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__MAY_TIME_VARY = CONNECTOR_AS_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__DEFINITION = CONNECTOR_AS_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__DIRECTED_USAGE = CONNECTOR_AS_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_ACTION = CONNECTOR_AS_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_ALLOCATION = CONNECTOR_AS_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_ANALYSIS_CASE = CONNECTOR_AS_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_ATTRIBUTE = CONNECTOR_AS_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_CALCULATION = CONNECTOR_AS_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_CASE = CONNECTOR_AS_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_CONCERN = CONNECTOR_AS_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_CONNECTION = CONNECTOR_AS_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_CONSTRAINT = CONNECTOR_AS_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_ENUMERATION = CONNECTOR_AS_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_FLOW = CONNECTOR_AS_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_INTERFACE = CONNECTOR_AS_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_ITEM = CONNECTOR_AS_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_METADATA = CONNECTOR_AS_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_OCCURRENCE = CONNECTOR_AS_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_PART = CONNECTOR_AS_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_PORT = CONNECTOR_AS_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_REFERENCE = CONNECTOR_AS_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_RENDERING = CONNECTOR_AS_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_REQUIREMENT = CONNECTOR_AS_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_STATE = CONNECTOR_AS_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_TRANSITION = CONNECTOR_AS_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_USAGE = CONNECTOR_AS_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_USE_CASE = CONNECTOR_AS_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_VERIFICATION_CASE = CONNECTOR_AS_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_VIEW = CONNECTOR_AS_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__NESTED_VIEWPOINT = CONNECTOR_AS_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNING_DEFINITION = CONNECTOR_AS_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNING_USAGE = CONNECTOR_AS_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__USAGE = CONNECTOR_AS_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__VARIANT = CONNECTOR_AS_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__VARIANT_MEMBERSHIP = CONNECTOR_AS_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__IS_IMPLIED = CONNECTOR_AS_USAGE__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNED_RELATED_ELEMENT = CONNECTOR_AS_USAGE__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__OWNING_RELATED_ELEMENT = CONNECTOR_AS_USAGE__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__RELATED_ELEMENT = CONNECTOR_AS_USAGE__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__SOURCE = CONNECTOR_AS_USAGE__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__TARGET = CONNECTOR_AS_USAGE__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__ASSOCIATION = CONNECTOR_AS_USAGE__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__CONNECTOR_END = CONNECTOR_AS_USAGE__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__DEFAULT_FEATURING_TYPE = CONNECTOR_AS_USAGE__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__RELATED_FEATURE = CONNECTOR_AS_USAGE__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__SOURCE_FEATURE = CONNECTOR_AS_USAGE__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE__TARGET_FEATURE = CONNECTOR_AS_USAGE__TARGET_FEATURE; + + /** + * The number of structural features of the 'Succession As Usage' class. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE_FEATURE_COUNT = CONNECTOR_AS_USAGE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___EFFECTIVE_NAME = CONNECTOR_AS_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___EFFECTIVE_SHORT_NAME = CONNECTOR_AS_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___ESCAPED_NAME = CONNECTOR_AS_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___LIBRARY_NAMESPACE = CONNECTOR_AS_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___PATH = CONNECTOR_AS_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CONNECTOR_AS_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CONNECTOR_AS_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___NAMES_OF__ELEMENT = CONNECTOR_AS_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___QUALIFICATION_OF__STRING = CONNECTOR_AS_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___RESOLVE__STRING = CONNECTOR_AS_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___RESOLVE_GLOBAL__STRING = CONNECTOR_AS_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___RESOLVE_LOCAL__STRING = CONNECTOR_AS_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___RESOLVE_VISIBLE__STRING = CONNECTOR_AS_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___UNQUALIFIED_NAME_OF__STRING = CONNECTOR_AS_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___VISIBILITY_OF__MEMBERSHIP = CONNECTOR_AS_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CONNECTOR_AS_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___ALL_SUPERTYPES = CONNECTOR_AS_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___DIRECTION_OF__FEATURE = CONNECTOR_AS_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CONNECTOR_AS_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___IS_COMPATIBLE_WITH__TYPE = CONNECTOR_AS_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___MULTIPLICITIES = CONNECTOR_AS_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CONNECTOR_AS_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CONNECTOR_AS_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___SPECIALIZES__TYPE = CONNECTOR_AS_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CONNECTOR_AS_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___SUPERTYPES__BOOLEAN = CONNECTOR_AS_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___ALL_REDEFINED_FEATURES = CONNECTOR_AS_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___AS_CARTESIAN_PRODUCT = CONNECTOR_AS_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___CAN_ACCESS__FEATURE = CONNECTOR_AS_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___DIRECTION_FOR__TYPE = CONNECTOR_AS_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___IS_CARTESIAN_PRODUCT = CONNECTOR_AS_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___IS_FEATURED_WITHIN__TYPE = CONNECTOR_AS_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___IS_FEATURING_TYPE__TYPE = CONNECTOR_AS_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___IS_OWNED_CROSS_FEATURE = CONNECTOR_AS_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___NAMING_FEATURE = CONNECTOR_AS_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___OWNED_CROSS_FEATURE = CONNECTOR_AS_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___REDEFINES__FEATURE = CONNECTOR_AS_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___REDEFINES_FROM_LIBRARY__STRING = CONNECTOR_AS_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CONNECTOR_AS_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___TYPING_FEATURES = CONNECTOR_AS_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE___REFERENCED_FEATURE_TARGET = CONNECTOR_AS_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The number of operations of the 'Succession As Usage' class. + * + * + * @generated + * @ordered + */ + int SUCCESSION_AS_USAGE_OPERATION_COUNT = CONNECTOR_AS_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SuccessionFlowImpl Succession Flow}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SuccessionFlowImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSuccessionFlow() + * @generated + */ + int SUCCESSION_FLOW = 153; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__ALIAS_IDS = FLOW__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__DECLARED_NAME = FLOW__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__DECLARED_SHORT_NAME = FLOW__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__ELEMENT_ID = FLOW__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_IMPLIED_INCLUDED = FLOW__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_LIBRARY_ELEMENT = FLOW__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__NAME = FLOW__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__QUALIFIED_NAME = FLOW__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__SHORT_NAME = FLOW__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__DOCUMENTATION = FLOW__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_ANNOTATION = FLOW__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_ELEMENT = FLOW__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_RELATIONSHIP = FLOW__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNER = FLOW__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNING_MEMBERSHIP = FLOW__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNING_NAMESPACE = FLOW__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNING_RELATIONSHIP = FLOW__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__TEXTUAL_REPRESENTATION = FLOW__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IMPORTED_MEMBERSHIP = FLOW__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__MEMBER = FLOW__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__MEMBERSHIP = FLOW__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_IMPORT = FLOW__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_MEMBER = FLOW__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_MEMBERSHIP = FLOW__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_ABSTRACT = FLOW__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_CONJUGATED = FLOW__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_SUFFICIENT = FLOW__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__DIFFERENCING_TYPE = FLOW__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__DIRECTED_FEATURE = FLOW__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__END_FEATURE = FLOW__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__FEATURE = FLOW__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__FEATURE_MEMBERSHIP = FLOW__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__INHERITED_FEATURE = FLOW__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__INHERITED_MEMBERSHIP = FLOW__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__INPUT = FLOW__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__INTERSECTING_TYPE = FLOW__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__MULTIPLICITY = FLOW__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OUTPUT = FLOW__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_CONJUGATOR = FLOW__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_DIFFERENCING = FLOW__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_DISJOINING = FLOW__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_END_FEATURE = FLOW__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_FEATURE = FLOW__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_FEATURE_MEMBERSHIP = FLOW__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_INTERSECTING = FLOW__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_SPECIALIZATION = FLOW__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_UNIONING = FLOW__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__UNIONING_TYPE = FLOW__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__DIRECTION = FLOW__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_COMPOSITE = FLOW__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_CONSTANT = FLOW__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_DERIVED = FLOW__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_END = FLOW__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_NONUNIQUE = FLOW__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_ORDERED = FLOW__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_PORTION = FLOW__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_UNIQUE = FLOW__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_VARIABLE = FLOW__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__CHAINING_FEATURE = FLOW__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__CROSS_FEATURE = FLOW__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__END_OWNING_TYPE = FLOW__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__FEATURE_TARGET = FLOW__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__FEATURING_TYPE = FLOW__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_CROSS_SUBSETTING = FLOW__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_FEATURE_CHAINING = FLOW__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_FEATURE_INVERTING = FLOW__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_REDEFINITION = FLOW__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_REFERENCE_SUBSETTING = FLOW__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_SUBSETTING = FLOW__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_TYPE_FEATURING = FLOW__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_TYPING = FLOW__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNING_FEATURE_MEMBERSHIP = FLOW__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNING_TYPE = FLOW__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__TYPE = FLOW__TYPE; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__IS_IMPLIED = FLOW__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNED_RELATED_ELEMENT = FLOW__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__OWNING_RELATED_ELEMENT = FLOW__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__RELATED_ELEMENT = FLOW__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__SOURCE = FLOW__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__TARGET = FLOW__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__ASSOCIATION = FLOW__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__CONNECTOR_END = FLOW__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__DEFAULT_FEATURING_TYPE = FLOW__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__RELATED_FEATURE = FLOW__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__SOURCE_FEATURE = FLOW__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__TARGET_FEATURE = FLOW__TARGET_FEATURE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__BEHAVIOR = FLOW__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__PARAMETER = FLOW__PARAMETER; + + /** + * The feature id for the 'Flow End' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__FLOW_END = FLOW__FLOW_END; + + /** + * The feature id for the 'Interaction' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__INTERACTION = FLOW__INTERACTION; + + /** + * The feature id for the 'Payload Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__PAYLOAD_FEATURE = FLOW__PAYLOAD_FEATURE; + + /** + * The feature id for the 'Payload Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__PAYLOAD_TYPE = FLOW__PAYLOAD_TYPE; + + /** + * The feature id for the 'Source Output Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__SOURCE_OUTPUT_FEATURE = FLOW__SOURCE_OUTPUT_FEATURE; + + /** + * The feature id for the 'Target Input Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW__TARGET_INPUT_FEATURE = FLOW__TARGET_INPUT_FEATURE; + + /** + * The number of structural features of the 'Succession Flow' class. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_FEATURE_COUNT = FLOW_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___EFFECTIVE_NAME = FLOW___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___EFFECTIVE_SHORT_NAME = FLOW___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___ESCAPED_NAME = FLOW___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___LIBRARY_NAMESPACE = FLOW___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___PATH = FLOW___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___IMPORTED_MEMBERSHIPS__ELIST = FLOW___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = FLOW___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___NAMES_OF__ELEMENT = FLOW___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___QUALIFICATION_OF__STRING = FLOW___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___RESOLVE__STRING = FLOW___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___RESOLVE_GLOBAL__STRING = FLOW___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___RESOLVE_LOCAL__STRING = FLOW___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___RESOLVE_VISIBLE__STRING = FLOW___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___UNQUALIFIED_NAME_OF__STRING = FLOW___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___VISIBILITY_OF__MEMBERSHIP = FLOW___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = FLOW___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = FLOW___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___ALL_SUPERTYPES = FLOW___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___DIRECTION_OF__FEATURE = FLOW___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = FLOW___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FLOW___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FLOW___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___IS_COMPATIBLE_WITH__TYPE = FLOW___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___MULTIPLICITIES = FLOW___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FLOW___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___REMOVE_REDEFINED_FEATURES__ELIST = FLOW___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___SPECIALIZES__TYPE = FLOW___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___SPECIALIZES_FROM_LIBRARY__STRING = FLOW___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___SUPERTYPES__BOOLEAN = FLOW___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___ALL_REDEFINED_FEATURES = FLOW___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___AS_CARTESIAN_PRODUCT = FLOW___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___CAN_ACCESS__FEATURE = FLOW___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___DIRECTION_FOR__TYPE = FLOW___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___IS_CARTESIAN_PRODUCT = FLOW___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___IS_FEATURED_WITHIN__TYPE = FLOW___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___IS_FEATURING_TYPE__TYPE = FLOW___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___IS_OWNED_CROSS_FEATURE = FLOW___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___NAMING_FEATURE = FLOW___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___OWNED_CROSS_FEATURE = FLOW___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___REDEFINES__FEATURE = FLOW___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___REDEFINES_FROM_LIBRARY__STRING = FLOW___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___SUBSETS_CHAIN__FEATURE_FEATURE = FLOW___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW___TYPING_FEATURES = FLOW___TYPING_FEATURES; + + /** + * The number of operations of the 'Succession Flow' class. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_OPERATION_COUNT = FLOW_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.SuccessionFlowUsageImpl Succession Flow Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SuccessionFlowUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSuccessionFlowUsage() + * @generated + */ + int SUCCESSION_FLOW_USAGE = 154; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__ALIAS_IDS = FLOW_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__DECLARED_NAME = FLOW_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__DECLARED_SHORT_NAME = FLOW_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__ELEMENT_ID = FLOW_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_IMPLIED_INCLUDED = FLOW_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_LIBRARY_ELEMENT = FLOW_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NAME = FLOW_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__QUALIFIED_NAME = FLOW_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__SHORT_NAME = FLOW_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__DOCUMENTATION = FLOW_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_ANNOTATION = FLOW_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_ELEMENT = FLOW_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_RELATIONSHIP = FLOW_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNER = FLOW_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNING_MEMBERSHIP = FLOW_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNING_NAMESPACE = FLOW_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNING_RELATIONSHIP = FLOW_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__TEXTUAL_REPRESENTATION = FLOW_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IMPORTED_MEMBERSHIP = FLOW_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__MEMBER = FLOW_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__MEMBERSHIP = FLOW_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_IMPORT = FLOW_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_MEMBER = FLOW_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_MEMBERSHIP = FLOW_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_ABSTRACT = FLOW_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_CONJUGATED = FLOW_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_SUFFICIENT = FLOW_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__DIFFERENCING_TYPE = FLOW_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__DIRECTED_FEATURE = FLOW_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__END_FEATURE = FLOW_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__FEATURE = FLOW_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__FEATURE_MEMBERSHIP = FLOW_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__INHERITED_FEATURE = FLOW_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__INHERITED_MEMBERSHIP = FLOW_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__INPUT = FLOW_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__INTERSECTING_TYPE = FLOW_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__MULTIPLICITY = FLOW_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OUTPUT = FLOW_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_CONJUGATOR = FLOW_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_DIFFERENCING = FLOW_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_DISJOINING = FLOW_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_END_FEATURE = FLOW_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_FEATURE = FLOW_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_FEATURE_MEMBERSHIP = FLOW_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_INTERSECTING = FLOW_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_SPECIALIZATION = FLOW_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_UNIONING = FLOW_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__UNIONING_TYPE = FLOW_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__DIRECTION = FLOW_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_COMPOSITE = FLOW_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_CONSTANT = FLOW_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_DERIVED = FLOW_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_END = FLOW_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_NONUNIQUE = FLOW_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_ORDERED = FLOW_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_PORTION = FLOW_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_UNIQUE = FLOW_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_VARIABLE = FLOW_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__CHAINING_FEATURE = FLOW_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__CROSS_FEATURE = FLOW_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__END_OWNING_TYPE = FLOW_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__FEATURE_TARGET = FLOW_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__FEATURING_TYPE = FLOW_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_CROSS_SUBSETTING = FLOW_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_FEATURE_CHAINING = FLOW_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_FEATURE_INVERTING = FLOW_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_REDEFINITION = FLOW_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_REFERENCE_SUBSETTING = FLOW_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_SUBSETTING = FLOW_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_TYPE_FEATURING = FLOW_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_TYPING = FLOW_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNING_FEATURE_MEMBERSHIP = FLOW_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNING_TYPE = FLOW_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__TYPE = FLOW_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_REFERENCE = FLOW_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_VARIATION = FLOW_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__MAY_TIME_VARY = FLOW_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__DEFINITION = FLOW_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__DIRECTED_USAGE = FLOW_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_ACTION = FLOW_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_ALLOCATION = FLOW_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_ANALYSIS_CASE = FLOW_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_ATTRIBUTE = FLOW_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_CALCULATION = FLOW_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_CASE = FLOW_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_CONCERN = FLOW_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_CONNECTION = FLOW_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_CONSTRAINT = FLOW_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_ENUMERATION = FLOW_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_FLOW = FLOW_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_INTERFACE = FLOW_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_ITEM = FLOW_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_METADATA = FLOW_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_OCCURRENCE = FLOW_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_PART = FLOW_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_PORT = FLOW_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_REFERENCE = FLOW_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_RENDERING = FLOW_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_REQUIREMENT = FLOW_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_STATE = FLOW_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_TRANSITION = FLOW_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_USAGE = FLOW_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_USE_CASE = FLOW_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_VERIFICATION_CASE = FLOW_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_VIEW = FLOW_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__NESTED_VIEWPOINT = FLOW_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNING_DEFINITION = FLOW_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNING_USAGE = FLOW_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__USAGE = FLOW_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__VARIANT = FLOW_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__VARIANT_MEMBERSHIP = FLOW_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_IMPLIED = FLOW_USAGE__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNED_RELATED_ELEMENT = FLOW_USAGE__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OWNING_RELATED_ELEMENT = FLOW_USAGE__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__RELATED_ELEMENT = FLOW_USAGE__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__SOURCE = FLOW_USAGE__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__TARGET = FLOW_USAGE__TARGET; + + /** + * The feature id for the 'Association' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__ASSOCIATION = FLOW_USAGE__ASSOCIATION; + + /** + * The feature id for the 'Connector End' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__CONNECTOR_END = FLOW_USAGE__CONNECTOR_END; + + /** + * The feature id for the 'Default Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__DEFAULT_FEATURING_TYPE = FLOW_USAGE__DEFAULT_FEATURING_TYPE; + + /** + * The feature id for the 'Related Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__RELATED_FEATURE = FLOW_USAGE__RELATED_FEATURE; + + /** + * The feature id for the 'Source Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__SOURCE_FEATURE = FLOW_USAGE__SOURCE_FEATURE; + + /** + * The feature id for the 'Target Feature' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__TARGET_FEATURE = FLOW_USAGE__TARGET_FEATURE; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__IS_INDIVIDUAL = FLOW_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__PORTION_KIND = FLOW_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__INDIVIDUAL_DEFINITION = FLOW_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__OCCURRENCE_DEFINITION = FLOW_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__BEHAVIOR = FLOW_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__PARAMETER = FLOW_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__ACTION_DEFINITION = FLOW_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Flow End' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__FLOW_END = FLOW_USAGE__FLOW_END; + + /** + * The feature id for the 'Interaction' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__INTERACTION = FLOW_USAGE__INTERACTION; + + /** + * The feature id for the 'Payload Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__PAYLOAD_FEATURE = FLOW_USAGE__PAYLOAD_FEATURE; + + /** + * The feature id for the 'Payload Type' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__PAYLOAD_TYPE = FLOW_USAGE__PAYLOAD_TYPE; + + /** + * The feature id for the 'Source Output Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__SOURCE_OUTPUT_FEATURE = FLOW_USAGE__SOURCE_OUTPUT_FEATURE; + + /** + * The feature id for the 'Target Input Feature' reference. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__TARGET_INPUT_FEATURE = FLOW_USAGE__TARGET_INPUT_FEATURE; + + /** + * The feature id for the 'Flow Definition' reference list. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE__FLOW_DEFINITION = FLOW_USAGE__FLOW_DEFINITION; + + /** + * The number of structural features of the 'Succession Flow Usage' class. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE_FEATURE_COUNT = FLOW_USAGE_FEATURE_COUNT + 0; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___EFFECTIVE_NAME = FLOW_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___EFFECTIVE_SHORT_NAME = FLOW_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___ESCAPED_NAME = FLOW_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___LIBRARY_NAMESPACE = FLOW_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___PATH = FLOW_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___IMPORTED_MEMBERSHIPS__ELIST = FLOW_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = FLOW_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___NAMES_OF__ELEMENT = FLOW_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___QUALIFICATION_OF__STRING = FLOW_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___RESOLVE__STRING = FLOW_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___RESOLVE_GLOBAL__STRING = FLOW_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___RESOLVE_LOCAL__STRING = FLOW_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___RESOLVE_VISIBLE__STRING = FLOW_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___UNQUALIFIED_NAME_OF__STRING = FLOW_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___VISIBILITY_OF__MEMBERSHIP = FLOW_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = FLOW_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = FLOW_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___ALL_SUPERTYPES = FLOW_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___DIRECTION_OF__FEATURE = FLOW_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = FLOW_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FLOW_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FLOW_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___IS_COMPATIBLE_WITH__TYPE = FLOW_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___MULTIPLICITIES = FLOW_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = FLOW_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = FLOW_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___SPECIALIZES__TYPE = FLOW_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = FLOW_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___SUPERTYPES__BOOLEAN = FLOW_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___ALL_REDEFINED_FEATURES = FLOW_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___AS_CARTESIAN_PRODUCT = FLOW_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___CAN_ACCESS__FEATURE = FLOW_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___DIRECTION_FOR__TYPE = FLOW_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___IS_CARTESIAN_PRODUCT = FLOW_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___IS_FEATURED_WITHIN__TYPE = FLOW_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___IS_FEATURING_TYPE__TYPE = FLOW_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___IS_OWNED_CROSS_FEATURE = FLOW_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___NAMING_FEATURE = FLOW_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___OWNED_CROSS_FEATURE = FLOW_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___REDEFINES__FEATURE = FLOW_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___REDEFINES_FROM_LIBRARY__STRING = FLOW_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = FLOW_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___TYPING_FEATURES = FLOW_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___REFERENCED_FEATURE_TARGET = FLOW_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___ARGUMENT__INT = FLOW_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___INPUT_PARAMETER__INT = FLOW_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___INPUT_PARAMETERS = FLOW_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE___IS_SUBACTION_USAGE = FLOW_USAGE___IS_SUBACTION_USAGE; + + /** + * The number of operations of the 'Succession Flow Usage' class. + * + * + * @generated + * @ordered + */ + int SUCCESSION_FLOW_USAGE_OPERATION_COUNT = FLOW_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.TerminateActionUsageImpl Terminate Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TerminateActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTerminateActionUsage() + * @generated + */ + int TERMINATE_ACTION_USAGE = 155; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Terminated Occurrence Argument' reference. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE__TERMINATED_OCCURRENCE_ARGUMENT = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Terminate Action Usage' class. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The number of operations of the 'Terminate Action Usage' class. + * + * + * @generated + * @ordered + */ + int TERMINATE_ACTION_USAGE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.TextualRepresentationImpl Textual Representation}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TextualRepresentationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTextualRepresentation() + * @generated + */ + int TEXTUAL_REPRESENTATION = 156; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__ALIAS_IDS = ANNOTATING_ELEMENT__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__DECLARED_NAME = ANNOTATING_ELEMENT__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__DECLARED_SHORT_NAME = ANNOTATING_ELEMENT__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__ELEMENT_ID = ANNOTATING_ELEMENT__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__IS_IMPLIED_INCLUDED = ANNOTATING_ELEMENT__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__IS_LIBRARY_ELEMENT = ANNOTATING_ELEMENT__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__NAME = ANNOTATING_ELEMENT__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__QUALIFIED_NAME = ANNOTATING_ELEMENT__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__SHORT_NAME = ANNOTATING_ELEMENT__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__DOCUMENTATION = ANNOTATING_ELEMENT__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__OWNED_ANNOTATION = ANNOTATING_ELEMENT__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__OWNED_ELEMENT = ANNOTATING_ELEMENT__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__OWNED_RELATIONSHIP = ANNOTATING_ELEMENT__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__OWNER = ANNOTATING_ELEMENT__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__OWNING_MEMBERSHIP = ANNOTATING_ELEMENT__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__OWNING_NAMESPACE = ANNOTATING_ELEMENT__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__OWNING_RELATIONSHIP = ANNOTATING_ELEMENT__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__TEXTUAL_REPRESENTATION = ANNOTATING_ELEMENT__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Annotated Element' reference list. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__ANNOTATED_ELEMENT = ANNOTATING_ELEMENT__ANNOTATED_ELEMENT; + + /** + * The feature id for the 'Annotation' reference list. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__ANNOTATION = ANNOTATING_ELEMENT__ANNOTATION; + + /** + * The feature id for the 'Owned Annotating Relationship' reference list. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__OWNED_ANNOTATING_RELATIONSHIP = ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP; + + /** + * The feature id for the 'Owning Annotating Relationship' reference. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__OWNING_ANNOTATING_RELATIONSHIP = ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP; + + /** + * The feature id for the 'Body' attribute. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__BODY = ANNOTATING_ELEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Language' attribute. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__LANGUAGE = ANNOTATING_ELEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Represented Element' reference. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION__REPRESENTED_ELEMENT = ANNOTATING_ELEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Textual Representation' class. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION_FEATURE_COUNT = ANNOTATING_ELEMENT_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION___EFFECTIVE_NAME = ANNOTATING_ELEMENT___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION___EFFECTIVE_SHORT_NAME = ANNOTATING_ELEMENT___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION___ESCAPED_NAME = ANNOTATING_ELEMENT___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION___LIBRARY_NAMESPACE = ANNOTATING_ELEMENT___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION___PATH = ANNOTATING_ELEMENT___PATH; + + /** + * The number of operations of the 'Textual Representation' class. + * + * + * @generated + * @ordered + */ + int TEXTUAL_REPRESENTATION_OPERATION_COUNT = ANNOTATING_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.TransitionFeatureMembershipImpl Transition Feature Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TransitionFeatureMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTransitionFeatureMembership() + * @generated + */ + int TRANSITION_FEATURE_MEMBERSHIP = 157; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__ALIAS_IDS = FEATURE_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__DECLARED_NAME = FEATURE_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME = FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__ELEMENT_ID = FEATURE_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED = FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT = FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__NAME = FEATURE_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__QUALIFIED_NAME = FEATURE_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__SHORT_NAME = FEATURE_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__DOCUMENTATION = FEATURE_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNED_ANNOTATION = FEATURE_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNER = FEATURE_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP = FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNING_NAMESPACE = FEATURE_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION = FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__IS_IMPLIED = FEATURE_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__RELATED_ELEMENT = FEATURE_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__SOURCE = FEATURE_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__TARGET = FEATURE_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__MEMBER_NAME = FEATURE_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__VISIBILITY = FEATURE_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__MEMBER_ELEMENT = FEATURE_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE = FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__OWNING_TYPE = FEATURE_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__KIND = FEATURE_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Transition Feature' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP__TRANSITION_FEATURE = FEATURE_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Transition Feature Membership' class. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP_FEATURE_COUNT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP___EFFECTIVE_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP___ESCAPED_NAME = FEATURE_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE = FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP___PATH = FEATURE_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Transition Feature Membership' class. + * + * + * @generated + * @ordered + */ + int TRANSITION_FEATURE_MEMBERSHIP_OPERATION_COUNT = FEATURE_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.TransitionUsageImpl Transition Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TransitionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTransitionUsage() + * @generated + */ + int TRANSITION_USAGE = 158; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__ALIAS_IDS = ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__DECLARED_NAME = ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__DECLARED_SHORT_NAME = ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__ELEMENT_ID = ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_IMPLIED_INCLUDED = ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_LIBRARY_ELEMENT = ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NAME = ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__QUALIFIED_NAME = ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__SHORT_NAME = ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__DOCUMENTATION = ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_ANNOTATION = ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_ELEMENT = ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_RELATIONSHIP = ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNER = ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNING_MEMBERSHIP = ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNING_NAMESPACE = ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNING_RELATIONSHIP = ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__TEXTUAL_REPRESENTATION = ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IMPORTED_MEMBERSHIP = ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__MEMBER = ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__MEMBERSHIP = ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_IMPORT = ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_MEMBER = ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_MEMBERSHIP = ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_ABSTRACT = ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_CONJUGATED = ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_SUFFICIENT = ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__DIFFERENCING_TYPE = ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__DIRECTED_FEATURE = ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__END_FEATURE = ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__FEATURE = ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__FEATURE_MEMBERSHIP = ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__INHERITED_FEATURE = ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__INHERITED_MEMBERSHIP = ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__INPUT = ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__INTERSECTING_TYPE = ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__MULTIPLICITY = ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OUTPUT = ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_CONJUGATOR = ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_DIFFERENCING = ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_DISJOINING = ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_END_FEATURE = ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_FEATURE = ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_INTERSECTING = ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_SPECIALIZATION = ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_UNIONING = ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__UNIONING_TYPE = ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__DIRECTION = ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_COMPOSITE = ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_CONSTANT = ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_DERIVED = ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_END = ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_NONUNIQUE = ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_ORDERED = ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_PORTION = ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_UNIQUE = ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_VARIABLE = ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__CHAINING_FEATURE = ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__CROSS_FEATURE = ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__END_OWNING_TYPE = ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__FEATURE_TARGET = ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__FEATURING_TYPE = ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_CROSS_SUBSETTING = ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_FEATURE_CHAINING = ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_FEATURE_INVERTING = ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_REDEFINITION = ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_REFERENCE_SUBSETTING = ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_SUBSETTING = ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_TYPE_FEATURING = ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNED_TYPING = ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNING_FEATURE_MEMBERSHIP = ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNING_TYPE = ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__TYPE = ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_REFERENCE = ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_VARIATION = ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__MAY_TIME_VARY = ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__DEFINITION = ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__DIRECTED_USAGE = ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_ACTION = ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_ALLOCATION = ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_ANALYSIS_CASE = ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_ATTRIBUTE = ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_CALCULATION = ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_CASE = ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_CONCERN = ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_CONNECTION = ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_CONSTRAINT = ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_ENUMERATION = ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_FLOW = ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_INTERFACE = ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_ITEM = ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_METADATA = ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_OCCURRENCE = ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_PART = ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_PORT = ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_REFERENCE = ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_RENDERING = ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_REQUIREMENT = ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_STATE = ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_TRANSITION = ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_USAGE = ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_USE_CASE = ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_VERIFICATION_CASE = ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_VIEW = ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__NESTED_VIEWPOINT = ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNING_DEFINITION = ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OWNING_USAGE = ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__USAGE = ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__VARIANT = ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__VARIANT_MEMBERSHIP = ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__IS_INDIVIDUAL = ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__PORTION_KIND = ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__INDIVIDUAL_DEFINITION = ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__OCCURRENCE_DEFINITION = ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__BEHAVIOR = ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__PARAMETER = ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__ACTION_DEFINITION = ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Effect Action' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__EFFECT_ACTION = ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Guard Expression' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__GUARD_EXPRESSION = ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Source' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__SOURCE = ACTION_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Succession' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__SUCCESSION = ACTION_USAGE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'Target' reference. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__TARGET = ACTION_USAGE_FEATURE_COUNT + 4; + + /** + * The feature id for the 'Trigger Action' reference list. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE__TRIGGER_ACTION = ACTION_USAGE_FEATURE_COUNT + 5; + + /** + * The number of structural features of the 'Transition Usage' class. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE_FEATURE_COUNT = ACTION_USAGE_FEATURE_COUNT + 6; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___EFFECTIVE_NAME = ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___EFFECTIVE_SHORT_NAME = ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___ESCAPED_NAME = ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___LIBRARY_NAMESPACE = ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___PATH = ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___NAMES_OF__ELEMENT = ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___QUALIFICATION_OF__STRING = ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___RESOLVE__STRING = ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___RESOLVE_GLOBAL__STRING = ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___RESOLVE_LOCAL__STRING = ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___RESOLVE_VISIBLE__STRING = ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___UNQUALIFIED_NAME_OF__STRING = ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___VISIBILITY_OF__MEMBERSHIP = ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___ALL_SUPERTYPES = ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___DIRECTION_OF__FEATURE = ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___IS_COMPATIBLE_WITH__TYPE = ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___MULTIPLICITIES = ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___SPECIALIZES__TYPE = ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___SUPERTYPES__BOOLEAN = ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___ALL_REDEFINED_FEATURES = ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___AS_CARTESIAN_PRODUCT = ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___CAN_ACCESS__FEATURE = ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___DIRECTION_FOR__TYPE = ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___IS_CARTESIAN_PRODUCT = ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___IS_FEATURED_WITHIN__TYPE = ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___IS_FEATURING_TYPE__TYPE = ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___IS_OWNED_CROSS_FEATURE = ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___NAMING_FEATURE = ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___OWNED_CROSS_FEATURE = ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___REDEFINES__FEATURE = ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___REDEFINES_FROM_LIBRARY__STRING = ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___TYPING_FEATURES = ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___REFERENCED_FEATURE_TARGET = ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___ARGUMENT__INT = ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___INPUT_PARAMETER__INT = ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___INPUT_PARAMETERS = ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___IS_SUBACTION_USAGE = ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Source Feature' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___SOURCE_FEATURE = ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The operation id for the 'Trigger Payload Parameter' operation. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE___TRIGGER_PAYLOAD_PARAMETER = ACTION_USAGE_OPERATION_COUNT + 1; + + /** + * The number of operations of the 'Transition Usage' class. + * + * + * @generated + * @ordered + */ + int TRANSITION_USAGE_OPERATION_COUNT = ACTION_USAGE_OPERATION_COUNT + 2; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.TriggerInvocationExpressionImpl Trigger Invocation Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TriggerInvocationExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTriggerInvocationExpression() + * @generated + */ + int TRIGGER_INVOCATION_EXPRESSION = 159; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__ALIAS_IDS = INVOCATION_EXPRESSION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__DECLARED_NAME = INVOCATION_EXPRESSION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__DECLARED_SHORT_NAME = INVOCATION_EXPRESSION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__ELEMENT_ID = INVOCATION_EXPRESSION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_IMPLIED_INCLUDED = INVOCATION_EXPRESSION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_LIBRARY_ELEMENT = INVOCATION_EXPRESSION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__NAME = INVOCATION_EXPRESSION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__QUALIFIED_NAME = INVOCATION_EXPRESSION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__SHORT_NAME = INVOCATION_EXPRESSION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__DOCUMENTATION = INVOCATION_EXPRESSION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_ANNOTATION = INVOCATION_EXPRESSION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_ELEMENT = INVOCATION_EXPRESSION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_RELATIONSHIP = INVOCATION_EXPRESSION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNER = INVOCATION_EXPRESSION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNING_MEMBERSHIP = INVOCATION_EXPRESSION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNING_NAMESPACE = INVOCATION_EXPRESSION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNING_RELATIONSHIP = INVOCATION_EXPRESSION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__TEXTUAL_REPRESENTATION = INVOCATION_EXPRESSION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IMPORTED_MEMBERSHIP = INVOCATION_EXPRESSION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__MEMBER = INVOCATION_EXPRESSION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__MEMBERSHIP = INVOCATION_EXPRESSION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_IMPORT = INVOCATION_EXPRESSION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_MEMBER = INVOCATION_EXPRESSION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_MEMBERSHIP = INVOCATION_EXPRESSION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_ABSTRACT = INVOCATION_EXPRESSION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_CONJUGATED = INVOCATION_EXPRESSION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_SUFFICIENT = INVOCATION_EXPRESSION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__DIFFERENCING_TYPE = INVOCATION_EXPRESSION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__DIRECTED_FEATURE = INVOCATION_EXPRESSION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__END_FEATURE = INVOCATION_EXPRESSION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__FEATURE = INVOCATION_EXPRESSION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__FEATURE_MEMBERSHIP = INVOCATION_EXPRESSION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__INHERITED_FEATURE = INVOCATION_EXPRESSION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__INHERITED_MEMBERSHIP = INVOCATION_EXPRESSION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__INPUT = INVOCATION_EXPRESSION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__INTERSECTING_TYPE = INVOCATION_EXPRESSION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__MULTIPLICITY = INVOCATION_EXPRESSION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OUTPUT = INVOCATION_EXPRESSION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_CONJUGATOR = INVOCATION_EXPRESSION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_DIFFERENCING = INVOCATION_EXPRESSION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_DISJOINING = INVOCATION_EXPRESSION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_END_FEATURE = INVOCATION_EXPRESSION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_FEATURE = INVOCATION_EXPRESSION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_FEATURE_MEMBERSHIP = INVOCATION_EXPRESSION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_INTERSECTING = INVOCATION_EXPRESSION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_SPECIALIZATION = INVOCATION_EXPRESSION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_UNIONING = INVOCATION_EXPRESSION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__UNIONING_TYPE = INVOCATION_EXPRESSION__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__DIRECTION = INVOCATION_EXPRESSION__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_COMPOSITE = INVOCATION_EXPRESSION__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_CONSTANT = INVOCATION_EXPRESSION__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_DERIVED = INVOCATION_EXPRESSION__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_END = INVOCATION_EXPRESSION__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_NONUNIQUE = INVOCATION_EXPRESSION__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_ORDERED = INVOCATION_EXPRESSION__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_PORTION = INVOCATION_EXPRESSION__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_UNIQUE = INVOCATION_EXPRESSION__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_VARIABLE = INVOCATION_EXPRESSION__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__CHAINING_FEATURE = INVOCATION_EXPRESSION__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__CROSS_FEATURE = INVOCATION_EXPRESSION__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__END_OWNING_TYPE = INVOCATION_EXPRESSION__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__FEATURE_TARGET = INVOCATION_EXPRESSION__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__FEATURING_TYPE = INVOCATION_EXPRESSION__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_CROSS_SUBSETTING = INVOCATION_EXPRESSION__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_FEATURE_CHAINING = INVOCATION_EXPRESSION__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_FEATURE_INVERTING = INVOCATION_EXPRESSION__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_REDEFINITION = INVOCATION_EXPRESSION__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_REFERENCE_SUBSETTING = INVOCATION_EXPRESSION__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_SUBSETTING = INVOCATION_EXPRESSION__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_TYPE_FEATURING = INVOCATION_EXPRESSION__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNED_TYPING = INVOCATION_EXPRESSION__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNING_FEATURE_MEMBERSHIP = INVOCATION_EXPRESSION__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OWNING_TYPE = INVOCATION_EXPRESSION__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__TYPE = INVOCATION_EXPRESSION__TYPE; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__BEHAVIOR = INVOCATION_EXPRESSION__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__PARAMETER = INVOCATION_EXPRESSION__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = INVOCATION_EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__FUNCTION = INVOCATION_EXPRESSION__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__RESULT = INVOCATION_EXPRESSION__RESULT; + + /** + * The feature id for the 'Argument' reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__ARGUMENT = INVOCATION_EXPRESSION__ARGUMENT; + + /** + * The feature id for the 'Instantiated Type' reference. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__INSTANTIATED_TYPE = INVOCATION_EXPRESSION__INSTANTIATED_TYPE; + + /** + * The feature id for the 'Operand' containment reference list. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__OPERAND = INVOCATION_EXPRESSION__OPERAND; + + /** + * The feature id for the 'Kind' attribute. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION__KIND = INVOCATION_EXPRESSION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Trigger Invocation Expression' class. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION_FEATURE_COUNT = INVOCATION_EXPRESSION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___EFFECTIVE_NAME = INVOCATION_EXPRESSION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___EFFECTIVE_SHORT_NAME = INVOCATION_EXPRESSION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___ESCAPED_NAME = INVOCATION_EXPRESSION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___LIBRARY_NAMESPACE = INVOCATION_EXPRESSION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___PATH = INVOCATION_EXPRESSION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST = INVOCATION_EXPRESSION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = INVOCATION_EXPRESSION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___NAMES_OF__ELEMENT = INVOCATION_EXPRESSION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___QUALIFICATION_OF__STRING = INVOCATION_EXPRESSION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___RESOLVE__STRING = INVOCATION_EXPRESSION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___RESOLVE_GLOBAL__STRING = INVOCATION_EXPRESSION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___RESOLVE_LOCAL__STRING = INVOCATION_EXPRESSION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___RESOLVE_VISIBLE__STRING = INVOCATION_EXPRESSION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___UNQUALIFIED_NAME_OF__STRING = INVOCATION_EXPRESSION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___VISIBILITY_OF__MEMBERSHIP = INVOCATION_EXPRESSION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = INVOCATION_EXPRESSION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = INVOCATION_EXPRESSION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___ALL_SUPERTYPES = INVOCATION_EXPRESSION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___DIRECTION_OF__FEATURE = INVOCATION_EXPRESSION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = INVOCATION_EXPRESSION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INVOCATION_EXPRESSION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INVOCATION_EXPRESSION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___IS_COMPATIBLE_WITH__TYPE = INVOCATION_EXPRESSION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___MULTIPLICITIES = INVOCATION_EXPRESSION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = INVOCATION_EXPRESSION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST = INVOCATION_EXPRESSION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___SPECIALIZES__TYPE = INVOCATION_EXPRESSION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING = INVOCATION_EXPRESSION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___SUPERTYPES__BOOLEAN = INVOCATION_EXPRESSION___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___ALL_REDEFINED_FEATURES = INVOCATION_EXPRESSION___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___AS_CARTESIAN_PRODUCT = INVOCATION_EXPRESSION___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___CAN_ACCESS__FEATURE = INVOCATION_EXPRESSION___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___DIRECTION_FOR__TYPE = INVOCATION_EXPRESSION___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___IS_CARTESIAN_PRODUCT = INVOCATION_EXPRESSION___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___IS_FEATURED_WITHIN__TYPE = INVOCATION_EXPRESSION___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___IS_FEATURING_TYPE__TYPE = INVOCATION_EXPRESSION___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___IS_OWNED_CROSS_FEATURE = INVOCATION_EXPRESSION___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___NAMING_FEATURE = INVOCATION_EXPRESSION___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___OWNED_CROSS_FEATURE = INVOCATION_EXPRESSION___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___REDEFINES__FEATURE = INVOCATION_EXPRESSION___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING = INVOCATION_EXPRESSION___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE = INVOCATION_EXPRESSION___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___TYPING_FEATURES = INVOCATION_EXPRESSION___TYPING_FEATURES; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___CHECK_CONDITION__ELEMENT = INVOCATION_EXPRESSION___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___EVALUATE__ELEMENT = INVOCATION_EXPRESSION___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = INVOCATION_EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The operation id for the 'Instantiated Type' operation. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION___INSTANTIATED_TYPE = INVOCATION_EXPRESSION___INSTANTIATED_TYPE; + + /** + * The number of operations of the 'Trigger Invocation Expression' class. + * + * + * @generated + * @ordered + */ + int TRIGGER_INVOCATION_EXPRESSION_OPERATION_COUNT = INVOCATION_EXPRESSION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.TypeFeaturingImpl Type Featuring}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TypeFeaturingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTypeFeaturing() + * @generated + */ + int TYPE_FEATURING = 161; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Feature Of Type' reference. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__FEATURE_OF_TYPE = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Featuring Type' reference. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__FEATURING_TYPE = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Owning Feature Of Type' reference. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING__OWNING_FEATURE_OF_TYPE = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Type Featuring' class. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 3; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Type Featuring' class. + * + * + * @generated + * @ordered + */ + int TYPE_FEATURING_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.UnioningImpl Unioning}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.UnioningImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getUnioning() + * @generated + */ + int UNIONING = 162; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int UNIONING__ALIAS_IDS = RELATIONSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int UNIONING__DECLARED_NAME = RELATIONSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int UNIONING__DECLARED_SHORT_NAME = RELATIONSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int UNIONING__ELEMENT_ID = RELATIONSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int UNIONING__IS_IMPLIED_INCLUDED = RELATIONSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int UNIONING__IS_LIBRARY_ELEMENT = RELATIONSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int UNIONING__NAME = RELATIONSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int UNIONING__QUALIFIED_NAME = RELATIONSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int UNIONING__SHORT_NAME = RELATIONSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int UNIONING__DOCUMENTATION = RELATIONSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int UNIONING__OWNED_ANNOTATION = RELATIONSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int UNIONING__OWNED_ELEMENT = RELATIONSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int UNIONING__OWNED_RELATIONSHIP = RELATIONSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int UNIONING__OWNER = RELATIONSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int UNIONING__OWNING_MEMBERSHIP = RELATIONSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int UNIONING__OWNING_NAMESPACE = RELATIONSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int UNIONING__OWNING_RELATIONSHIP = RELATIONSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int UNIONING__TEXTUAL_REPRESENTATION = RELATIONSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int UNIONING__IS_IMPLIED = RELATIONSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int UNIONING__OWNED_RELATED_ELEMENT = RELATIONSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int UNIONING__OWNING_RELATED_ELEMENT = RELATIONSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int UNIONING__RELATED_ELEMENT = RELATIONSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int UNIONING__SOURCE = RELATIONSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int UNIONING__TARGET = RELATIONSHIP__TARGET; + + /** + * The feature id for the 'Type Unioned' reference. + * + * + * @generated + * @ordered + */ + int UNIONING__TYPE_UNIONED = RELATIONSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Unioning Type' reference. + * + * + * @generated + * @ordered + */ + int UNIONING__UNIONING_TYPE = RELATIONSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Unioning' class. + * + * + * @generated + * @ordered + */ + int UNIONING_FEATURE_COUNT = RELATIONSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int UNIONING___EFFECTIVE_NAME = RELATIONSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int UNIONING___EFFECTIVE_SHORT_NAME = RELATIONSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int UNIONING___ESCAPED_NAME = RELATIONSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int UNIONING___LIBRARY_NAMESPACE = RELATIONSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int UNIONING___PATH = RELATIONSHIP___PATH; + + /** + * The number of operations of the 'Unioning' class. + * + * + * @generated + * @ordered + */ + int UNIONING_OPERATION_COUNT = RELATIONSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.UseCaseDefinitionImpl Use Case Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.UseCaseDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getUseCaseDefinition() + * @generated + */ + int USE_CASE_DEFINITION = 164; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__ALIAS_IDS = CASE_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__DECLARED_NAME = CASE_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__DECLARED_SHORT_NAME = CASE_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__ELEMENT_ID = CASE_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__IS_IMPLIED_INCLUDED = CASE_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__IS_LIBRARY_ELEMENT = CASE_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__NAME = CASE_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__QUALIFIED_NAME = CASE_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__SHORT_NAME = CASE_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__DOCUMENTATION = CASE_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_ANNOTATION = CASE_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_ELEMENT = CASE_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_RELATIONSHIP = CASE_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNER = CASE_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNING_MEMBERSHIP = CASE_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNING_NAMESPACE = CASE_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNING_RELATIONSHIP = CASE_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__TEXTUAL_REPRESENTATION = CASE_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__IMPORTED_MEMBERSHIP = CASE_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__MEMBER = CASE_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__MEMBERSHIP = CASE_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_IMPORT = CASE_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_MEMBER = CASE_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_MEMBERSHIP = CASE_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__IS_ABSTRACT = CASE_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__IS_CONJUGATED = CASE_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__IS_SUFFICIENT = CASE_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__DIFFERENCING_TYPE = CASE_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__DIRECTED_FEATURE = CASE_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__END_FEATURE = CASE_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__FEATURE = CASE_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__FEATURE_MEMBERSHIP = CASE_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__INHERITED_FEATURE = CASE_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__INHERITED_MEMBERSHIP = CASE_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__INPUT = CASE_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__INTERSECTING_TYPE = CASE_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__MULTIPLICITY = CASE_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OUTPUT = CASE_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_CONJUGATOR = CASE_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_DIFFERENCING = CASE_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_DISJOINING = CASE_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_END_FEATURE = CASE_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_FEATURE = CASE_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_FEATURE_MEMBERSHIP = CASE_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_INTERSECTING = CASE_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_SPECIALIZATION = CASE_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_UNIONING = CASE_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__UNIONING_TYPE = CASE_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_SUBCLASSIFICATION = CASE_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__IS_VARIATION = CASE_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__DIRECTED_USAGE = CASE_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_ACTION = CASE_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_ALLOCATION = CASE_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_ANALYSIS_CASE = CASE_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_ATTRIBUTE = CASE_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_CALCULATION = CASE_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_CASE = CASE_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_CONCERN = CASE_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_CONNECTION = CASE_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_CONSTRAINT = CASE_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_ENUMERATION = CASE_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_FLOW = CASE_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_INTERFACE = CASE_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_ITEM = CASE_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_METADATA = CASE_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_OCCURRENCE = CASE_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_PART = CASE_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_PORT = CASE_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_REFERENCE = CASE_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_RENDERING = CASE_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_REQUIREMENT = CASE_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_STATE = CASE_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_TRANSITION = CASE_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_USAGE = CASE_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_USE_CASE = CASE_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_VERIFICATION_CASE = CASE_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_VIEW = CASE_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OWNED_VIEWPOINT = CASE_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__USAGE = CASE_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__VARIANT = CASE_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__VARIANT_MEMBERSHIP = CASE_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__IS_INDIVIDUAL = CASE_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__PARAMETER = CASE_DEFINITION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__STEP = CASE_DEFINITION__STEP; + + /** + * The feature id for the 'Action' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__ACTION = CASE_DEFINITION__ACTION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__IS_MODEL_LEVEL_EVALUABLE = CASE_DEFINITION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__EXPRESSION = CASE_DEFINITION__EXPRESSION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__RESULT = CASE_DEFINITION__RESULT; + + /** + * The feature id for the 'Calculation' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__CALCULATION = CASE_DEFINITION__CALCULATION; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__ACTOR_PARAMETER = CASE_DEFINITION__ACTOR_PARAMETER; + + /** + * The feature id for the 'Objective Requirement' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__OBJECTIVE_REQUIREMENT = CASE_DEFINITION__OBJECTIVE_REQUIREMENT; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__SUBJECT_PARAMETER = CASE_DEFINITION__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Included Use Case' reference list. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION__INCLUDED_USE_CASE = CASE_DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Use Case Definition' class. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION_FEATURE_COUNT = CASE_DEFINITION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___EFFECTIVE_NAME = CASE_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___EFFECTIVE_SHORT_NAME = CASE_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___ESCAPED_NAME = CASE_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___LIBRARY_NAMESPACE = CASE_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___PATH = CASE_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = CASE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CASE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___NAMES_OF__ELEMENT = CASE_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___QUALIFICATION_OF__STRING = CASE_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___RESOLVE__STRING = CASE_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___RESOLVE_GLOBAL__STRING = CASE_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___RESOLVE_LOCAL__STRING = CASE_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___RESOLVE_VISIBLE__STRING = CASE_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___UNQUALIFIED_NAME_OF__STRING = CASE_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___VISIBILITY_OF__MEMBERSHIP = CASE_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CASE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CASE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___ALL_SUPERTYPES = CASE_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___DIRECTION_OF__FEATURE = CASE_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CASE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___IS_COMPATIBLE_WITH__TYPE = CASE_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___MULTIPLICITIES = CASE_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = CASE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___SPECIALIZES__TYPE = CASE_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = CASE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION___SUPERTYPES__BOOLEAN = CASE_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Use Case Definition' class. + * + * + * @generated + * @ordered + */ + int USE_CASE_DEFINITION_OPERATION_COUNT = CASE_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.VariantMembershipImpl Variant Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.VariantMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getVariantMembership() + * @generated + */ + int VARIANT_MEMBERSHIP = 166; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__ALIAS_IDS = OWNING_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__DECLARED_NAME = OWNING_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__DECLARED_SHORT_NAME = OWNING_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__ELEMENT_ID = OWNING_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__IS_IMPLIED_INCLUDED = OWNING_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__IS_LIBRARY_ELEMENT = OWNING_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__NAME = OWNING_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__QUALIFIED_NAME = OWNING_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__SHORT_NAME = OWNING_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__DOCUMENTATION = OWNING_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNED_ANNOTATION = OWNING_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNED_ELEMENT = OWNING_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNED_RELATIONSHIP = OWNING_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNER = OWNING_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNING_MEMBERSHIP = OWNING_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNING_NAMESPACE = OWNING_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNING_RELATIONSHIP = OWNING_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__TEXTUAL_REPRESENTATION = OWNING_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__IS_IMPLIED = OWNING_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNED_RELATED_ELEMENT = OWNING_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNING_RELATED_ELEMENT = OWNING_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__RELATED_ELEMENT = OWNING_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__SOURCE = OWNING_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__TARGET = OWNING_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__MEMBER_ELEMENT_ID = OWNING_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__MEMBER_NAME = OWNING_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__MEMBER_SHORT_NAME = OWNING_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__VISIBILITY = OWNING_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__MEMBER_ELEMENT = OWNING_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = OWNING_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNED_MEMBER_NAME = OWNING_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = OWNING_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNED_MEMBER_ELEMENT = OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Variant Usage' reference. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP__OWNED_VARIANT_USAGE = OWNING_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Variant Membership' class. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP_FEATURE_COUNT = OWNING_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP___EFFECTIVE_NAME = OWNING_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP___EFFECTIVE_SHORT_NAME = OWNING_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP___ESCAPED_NAME = OWNING_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP___LIBRARY_NAMESPACE = OWNING_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP___PATH = OWNING_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = OWNING_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'Variant Membership' class. + * + * + * @generated + * @ordered + */ + int VARIANT_MEMBERSHIP_OPERATION_COUNT = OWNING_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.VerificationCaseDefinitionImpl Verification Case Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.VerificationCaseDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getVerificationCaseDefinition() + * @generated + */ + int VERIFICATION_CASE_DEFINITION = 167; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__ALIAS_IDS = CASE_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__DECLARED_NAME = CASE_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__DECLARED_SHORT_NAME = CASE_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__ELEMENT_ID = CASE_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__IS_IMPLIED_INCLUDED = CASE_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__IS_LIBRARY_ELEMENT = CASE_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__NAME = CASE_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__QUALIFIED_NAME = CASE_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__SHORT_NAME = CASE_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__DOCUMENTATION = CASE_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_ANNOTATION = CASE_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_ELEMENT = CASE_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_RELATIONSHIP = CASE_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNER = CASE_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNING_MEMBERSHIP = CASE_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNING_NAMESPACE = CASE_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNING_RELATIONSHIP = CASE_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__TEXTUAL_REPRESENTATION = CASE_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__IMPORTED_MEMBERSHIP = CASE_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__MEMBER = CASE_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__MEMBERSHIP = CASE_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_IMPORT = CASE_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_MEMBER = CASE_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_MEMBERSHIP = CASE_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__IS_ABSTRACT = CASE_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__IS_CONJUGATED = CASE_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__IS_SUFFICIENT = CASE_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__DIFFERENCING_TYPE = CASE_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__DIRECTED_FEATURE = CASE_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__END_FEATURE = CASE_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__FEATURE = CASE_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__FEATURE_MEMBERSHIP = CASE_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__INHERITED_FEATURE = CASE_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__INHERITED_MEMBERSHIP = CASE_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__INPUT = CASE_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__INTERSECTING_TYPE = CASE_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__MULTIPLICITY = CASE_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OUTPUT = CASE_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_CONJUGATOR = CASE_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_DIFFERENCING = CASE_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_DISJOINING = CASE_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_END_FEATURE = CASE_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_FEATURE = CASE_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_FEATURE_MEMBERSHIP = CASE_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_INTERSECTING = CASE_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_SPECIALIZATION = CASE_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_UNIONING = CASE_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__UNIONING_TYPE = CASE_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_SUBCLASSIFICATION = CASE_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__IS_VARIATION = CASE_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__DIRECTED_USAGE = CASE_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_ACTION = CASE_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_ALLOCATION = CASE_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_ANALYSIS_CASE = CASE_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_ATTRIBUTE = CASE_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_CALCULATION = CASE_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_CASE = CASE_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_CONCERN = CASE_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_CONNECTION = CASE_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_CONSTRAINT = CASE_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_ENUMERATION = CASE_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_FLOW = CASE_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_INTERFACE = CASE_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_ITEM = CASE_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_METADATA = CASE_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_OCCURRENCE = CASE_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_PART = CASE_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_PORT = CASE_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_REFERENCE = CASE_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_RENDERING = CASE_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_REQUIREMENT = CASE_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_STATE = CASE_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_TRANSITION = CASE_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_USAGE = CASE_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_USE_CASE = CASE_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_VERIFICATION_CASE = CASE_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_VIEW = CASE_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OWNED_VIEWPOINT = CASE_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__USAGE = CASE_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__VARIANT = CASE_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__VARIANT_MEMBERSHIP = CASE_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__IS_INDIVIDUAL = CASE_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__PARAMETER = CASE_DEFINITION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__STEP = CASE_DEFINITION__STEP; + + /** + * The feature id for the 'Action' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__ACTION = CASE_DEFINITION__ACTION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__IS_MODEL_LEVEL_EVALUABLE = CASE_DEFINITION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__EXPRESSION = CASE_DEFINITION__EXPRESSION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__RESULT = CASE_DEFINITION__RESULT; + + /** + * The feature id for the 'Calculation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__CALCULATION = CASE_DEFINITION__CALCULATION; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__ACTOR_PARAMETER = CASE_DEFINITION__ACTOR_PARAMETER; + + /** + * The feature id for the 'Objective Requirement' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__OBJECTIVE_REQUIREMENT = CASE_DEFINITION__OBJECTIVE_REQUIREMENT; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__SUBJECT_PARAMETER = CASE_DEFINITION__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Verified Requirement' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION__VERIFIED_REQUIREMENT = CASE_DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Verification Case Definition' class. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION_FEATURE_COUNT = CASE_DEFINITION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___EFFECTIVE_NAME = CASE_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___EFFECTIVE_SHORT_NAME = CASE_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___ESCAPED_NAME = CASE_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___LIBRARY_NAMESPACE = CASE_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___PATH = CASE_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = CASE_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CASE_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___NAMES_OF__ELEMENT = CASE_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___QUALIFICATION_OF__STRING = CASE_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___RESOLVE__STRING = CASE_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___RESOLVE_GLOBAL__STRING = CASE_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___RESOLVE_LOCAL__STRING = CASE_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___RESOLVE_VISIBLE__STRING = CASE_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___UNQUALIFIED_NAME_OF__STRING = CASE_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___VISIBILITY_OF__MEMBERSHIP = CASE_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CASE_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CASE_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___ALL_SUPERTYPES = CASE_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___DIRECTION_OF__FEATURE = CASE_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CASE_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___IS_COMPATIBLE_WITH__TYPE = CASE_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___MULTIPLICITIES = CASE_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = CASE_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___SPECIALIZES__TYPE = CASE_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = CASE_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION___SUPERTYPES__BOOLEAN = CASE_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Verification Case Definition' class. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_DEFINITION_OPERATION_COUNT = CASE_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.VerificationCaseUsageImpl Verification Case Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.VerificationCaseUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getVerificationCaseUsage() + * @generated + */ + int VERIFICATION_CASE_USAGE = 168; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__ALIAS_IDS = CASE_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__DECLARED_NAME = CASE_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__DECLARED_SHORT_NAME = CASE_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__ELEMENT_ID = CASE_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_IMPLIED_INCLUDED = CASE_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_LIBRARY_ELEMENT = CASE_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NAME = CASE_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__QUALIFIED_NAME = CASE_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__SHORT_NAME = CASE_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__DOCUMENTATION = CASE_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_ANNOTATION = CASE_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_ELEMENT = CASE_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_RELATIONSHIP = CASE_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNER = CASE_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNING_MEMBERSHIP = CASE_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNING_NAMESPACE = CASE_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNING_RELATIONSHIP = CASE_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__TEXTUAL_REPRESENTATION = CASE_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IMPORTED_MEMBERSHIP = CASE_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__MEMBER = CASE_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__MEMBERSHIP = CASE_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_IMPORT = CASE_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_MEMBER = CASE_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_MEMBERSHIP = CASE_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_ABSTRACT = CASE_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_CONJUGATED = CASE_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_SUFFICIENT = CASE_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__DIFFERENCING_TYPE = CASE_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__DIRECTED_FEATURE = CASE_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__END_FEATURE = CASE_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__FEATURE = CASE_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__FEATURE_MEMBERSHIP = CASE_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__INHERITED_FEATURE = CASE_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__INHERITED_MEMBERSHIP = CASE_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__INPUT = CASE_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__INTERSECTING_TYPE = CASE_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__MULTIPLICITY = CASE_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OUTPUT = CASE_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_CONJUGATOR = CASE_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_DIFFERENCING = CASE_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_DISJOINING = CASE_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_END_FEATURE = CASE_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_FEATURE = CASE_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_FEATURE_MEMBERSHIP = CASE_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_INTERSECTING = CASE_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_SPECIALIZATION = CASE_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_UNIONING = CASE_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__UNIONING_TYPE = CASE_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__DIRECTION = CASE_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_COMPOSITE = CASE_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_CONSTANT = CASE_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_DERIVED = CASE_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_END = CASE_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_NONUNIQUE = CASE_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_ORDERED = CASE_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_PORTION = CASE_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_UNIQUE = CASE_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_VARIABLE = CASE_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__CHAINING_FEATURE = CASE_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__CROSS_FEATURE = CASE_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__END_OWNING_TYPE = CASE_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__FEATURE_TARGET = CASE_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__FEATURING_TYPE = CASE_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_CROSS_SUBSETTING = CASE_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_FEATURE_CHAINING = CASE_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_FEATURE_INVERTING = CASE_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_REDEFINITION = CASE_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_REFERENCE_SUBSETTING = CASE_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_SUBSETTING = CASE_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_TYPE_FEATURING = CASE_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNED_TYPING = CASE_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNING_FEATURE_MEMBERSHIP = CASE_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNING_TYPE = CASE_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__TYPE = CASE_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_REFERENCE = CASE_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_VARIATION = CASE_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__MAY_TIME_VARY = CASE_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__DEFINITION = CASE_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__DIRECTED_USAGE = CASE_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_ACTION = CASE_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_ALLOCATION = CASE_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_ANALYSIS_CASE = CASE_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_ATTRIBUTE = CASE_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_CALCULATION = CASE_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_CASE = CASE_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_CONCERN = CASE_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_CONNECTION = CASE_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_CONSTRAINT = CASE_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_ENUMERATION = CASE_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_FLOW = CASE_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_INTERFACE = CASE_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_ITEM = CASE_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_METADATA = CASE_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_OCCURRENCE = CASE_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_PART = CASE_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_PORT = CASE_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_REFERENCE = CASE_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_RENDERING = CASE_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_REQUIREMENT = CASE_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_STATE = CASE_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_TRANSITION = CASE_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_USAGE = CASE_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_USE_CASE = CASE_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_VERIFICATION_CASE = CASE_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_VIEW = CASE_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__NESTED_VIEWPOINT = CASE_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNING_DEFINITION = CASE_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OWNING_USAGE = CASE_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__USAGE = CASE_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__VARIANT = CASE_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__VARIANT_MEMBERSHIP = CASE_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_INDIVIDUAL = CASE_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__PORTION_KIND = CASE_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__INDIVIDUAL_DEFINITION = CASE_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OCCURRENCE_DEFINITION = CASE_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__BEHAVIOR = CASE_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__PARAMETER = CASE_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__ACTION_DEFINITION = CASE_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__IS_MODEL_LEVEL_EVALUABLE = CASE_USAGE__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__FUNCTION = CASE_USAGE__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__RESULT = CASE_USAGE__RESULT; + + /** + * The feature id for the 'Calculation Definition' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__CALCULATION_DEFINITION = CASE_USAGE__CALCULATION_DEFINITION; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__ACTOR_PARAMETER = CASE_USAGE__ACTOR_PARAMETER; + + /** + * The feature id for the 'Case Definition' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__CASE_DEFINITION = CASE_USAGE__CASE_DEFINITION; + + /** + * The feature id for the 'Objective Requirement' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__OBJECTIVE_REQUIREMENT = CASE_USAGE__OBJECTIVE_REQUIREMENT; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__SUBJECT_PARAMETER = CASE_USAGE__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Verification Case Definition' reference. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__VERIFICATION_CASE_DEFINITION = CASE_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Verified Requirement' reference list. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE__VERIFIED_REQUIREMENT = CASE_USAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Verification Case Usage' class. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE_FEATURE_COUNT = CASE_USAGE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___EFFECTIVE_NAME = CASE_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___EFFECTIVE_SHORT_NAME = CASE_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___ESCAPED_NAME = CASE_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___LIBRARY_NAMESPACE = CASE_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___PATH = CASE_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___IMPORTED_MEMBERSHIPS__ELIST = CASE_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = CASE_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___NAMES_OF__ELEMENT = CASE_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___QUALIFICATION_OF__STRING = CASE_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___RESOLVE__STRING = CASE_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___RESOLVE_GLOBAL__STRING = CASE_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___RESOLVE_LOCAL__STRING = CASE_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___RESOLVE_VISIBLE__STRING = CASE_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___UNQUALIFIED_NAME_OF__STRING = CASE_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___VISIBILITY_OF__MEMBERSHIP = CASE_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = CASE_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = CASE_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___ALL_SUPERTYPES = CASE_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___DIRECTION_OF__FEATURE = CASE_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = CASE_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___IS_COMPATIBLE_WITH__TYPE = CASE_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___MULTIPLICITIES = CASE_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = CASE_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = CASE_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___SPECIALIZES__TYPE = CASE_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = CASE_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___SUPERTYPES__BOOLEAN = CASE_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___ALL_REDEFINED_FEATURES = CASE_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___AS_CARTESIAN_PRODUCT = CASE_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___CAN_ACCESS__FEATURE = CASE_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___DIRECTION_FOR__TYPE = CASE_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___IS_CARTESIAN_PRODUCT = CASE_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___IS_FEATURED_WITHIN__TYPE = CASE_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___IS_FEATURING_TYPE__TYPE = CASE_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___IS_OWNED_CROSS_FEATURE = CASE_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___NAMING_FEATURE = CASE_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___OWNED_CROSS_FEATURE = CASE_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___REDEFINES__FEATURE = CASE_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___REDEFINES_FROM_LIBRARY__STRING = CASE_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = CASE_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___TYPING_FEATURES = CASE_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___REFERENCED_FEATURE_TARGET = CASE_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___ARGUMENT__INT = CASE_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___INPUT_PARAMETER__INT = CASE_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___INPUT_PARAMETERS = CASE_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___IS_SUBACTION_USAGE = CASE_USAGE___IS_SUBACTION_USAGE; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___CHECK_CONDITION__ELEMENT = CASE_USAGE___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___EVALUATE__ELEMENT = CASE_USAGE___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = CASE_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Verification Case Usage' class. + * + * + * @generated + * @ordered + */ + int VERIFICATION_CASE_USAGE_OPERATION_COUNT = CASE_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ViewDefinitionImpl View Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ViewDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getViewDefinition() + * @generated + */ + int VIEW_DEFINITION = 169; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__ALIAS_IDS = PART_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__DECLARED_NAME = PART_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__DECLARED_SHORT_NAME = PART_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__ELEMENT_ID = PART_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__IS_IMPLIED_INCLUDED = PART_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__IS_LIBRARY_ELEMENT = PART_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__NAME = PART_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__QUALIFIED_NAME = PART_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__SHORT_NAME = PART_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__DOCUMENTATION = PART_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_ANNOTATION = PART_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_ELEMENT = PART_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_RELATIONSHIP = PART_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNER = PART_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNING_MEMBERSHIP = PART_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNING_NAMESPACE = PART_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNING_RELATIONSHIP = PART_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__TEXTUAL_REPRESENTATION = PART_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__IMPORTED_MEMBERSHIP = PART_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__MEMBER = PART_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__MEMBERSHIP = PART_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_IMPORT = PART_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_MEMBER = PART_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_MEMBERSHIP = PART_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__IS_ABSTRACT = PART_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__IS_CONJUGATED = PART_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__IS_SUFFICIENT = PART_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__DIFFERENCING_TYPE = PART_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__DIRECTED_FEATURE = PART_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__END_FEATURE = PART_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__FEATURE = PART_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__FEATURE_MEMBERSHIP = PART_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__INHERITED_FEATURE = PART_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__INHERITED_MEMBERSHIP = PART_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__INPUT = PART_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__INTERSECTING_TYPE = PART_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__MULTIPLICITY = PART_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OUTPUT = PART_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_CONJUGATOR = PART_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_DIFFERENCING = PART_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_DISJOINING = PART_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_END_FEATURE = PART_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_FEATURE = PART_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_FEATURE_MEMBERSHIP = PART_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_INTERSECTING = PART_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_SPECIALIZATION = PART_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_UNIONING = PART_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__UNIONING_TYPE = PART_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_SUBCLASSIFICATION = PART_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__IS_VARIATION = PART_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__DIRECTED_USAGE = PART_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_ACTION = PART_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_ALLOCATION = PART_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_ANALYSIS_CASE = PART_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_ATTRIBUTE = PART_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_CALCULATION = PART_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_CASE = PART_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_CONCERN = PART_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_CONNECTION = PART_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_CONSTRAINT = PART_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_ENUMERATION = PART_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_FLOW = PART_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_INTERFACE = PART_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_ITEM = PART_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_METADATA = PART_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_OCCURRENCE = PART_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_PART = PART_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_PORT = PART_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_REFERENCE = PART_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_RENDERING = PART_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_REQUIREMENT = PART_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_STATE = PART_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_TRANSITION = PART_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_USAGE = PART_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_USE_CASE = PART_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_VERIFICATION_CASE = PART_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_VIEW = PART_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__OWNED_VIEWPOINT = PART_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__USAGE = PART_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__VARIANT = PART_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__VARIANT_MEMBERSHIP = PART_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__IS_INDIVIDUAL = PART_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Satisfied Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__SATISFIED_VIEWPOINT = PART_DEFINITION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'View' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__VIEW = PART_DEFINITION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'View Condition' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__VIEW_CONDITION = PART_DEFINITION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'View Rendering' reference. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION__VIEW_RENDERING = PART_DEFINITION_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'View Definition' class. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION_FEATURE_COUNT = PART_DEFINITION_FEATURE_COUNT + 4; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___EFFECTIVE_NAME = PART_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___EFFECTIVE_SHORT_NAME = PART_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___ESCAPED_NAME = PART_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___LIBRARY_NAMESPACE = PART_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___PATH = PART_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = PART_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = PART_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___NAMES_OF__ELEMENT = PART_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___QUALIFICATION_OF__STRING = PART_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___RESOLVE__STRING = PART_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___RESOLVE_GLOBAL__STRING = PART_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___RESOLVE_LOCAL__STRING = PART_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___RESOLVE_VISIBLE__STRING = PART_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___UNQUALIFIED_NAME_OF__STRING = PART_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___VISIBILITY_OF__MEMBERSHIP = PART_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = PART_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = PART_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___ALL_SUPERTYPES = PART_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___DIRECTION_OF__FEATURE = PART_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = PART_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___IS_COMPATIBLE_WITH__TYPE = PART_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___MULTIPLICITIES = PART_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = PART_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___SPECIALIZES__TYPE = PART_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = PART_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION___SUPERTYPES__BOOLEAN = PART_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'View Definition' class. + * + * + * @generated + * @ordered + */ + int VIEW_DEFINITION_OPERATION_COUNT = PART_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ViewpointDefinitionImpl Viewpoint Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ViewpointDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getViewpointDefinition() + * @generated + */ + int VIEWPOINT_DEFINITION = 170; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__ALIAS_IDS = REQUIREMENT_DEFINITION__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__DECLARED_NAME = REQUIREMENT_DEFINITION__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__DECLARED_SHORT_NAME = REQUIREMENT_DEFINITION__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__ELEMENT_ID = REQUIREMENT_DEFINITION__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__IS_IMPLIED_INCLUDED = REQUIREMENT_DEFINITION__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__IS_LIBRARY_ELEMENT = REQUIREMENT_DEFINITION__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__NAME = REQUIREMENT_DEFINITION__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__QUALIFIED_NAME = REQUIREMENT_DEFINITION__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__SHORT_NAME = REQUIREMENT_DEFINITION__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__DOCUMENTATION = REQUIREMENT_DEFINITION__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_ANNOTATION = REQUIREMENT_DEFINITION__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_ELEMENT = REQUIREMENT_DEFINITION__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_RELATIONSHIP = REQUIREMENT_DEFINITION__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNER = REQUIREMENT_DEFINITION__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNING_MEMBERSHIP = REQUIREMENT_DEFINITION__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNING_NAMESPACE = REQUIREMENT_DEFINITION__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNING_RELATIONSHIP = REQUIREMENT_DEFINITION__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__TEXTUAL_REPRESENTATION = REQUIREMENT_DEFINITION__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__IMPORTED_MEMBERSHIP = REQUIREMENT_DEFINITION__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__MEMBER = REQUIREMENT_DEFINITION__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__MEMBERSHIP = REQUIREMENT_DEFINITION__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_IMPORT = REQUIREMENT_DEFINITION__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_MEMBER = REQUIREMENT_DEFINITION__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_MEMBERSHIP = REQUIREMENT_DEFINITION__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__IS_ABSTRACT = REQUIREMENT_DEFINITION__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__IS_CONJUGATED = REQUIREMENT_DEFINITION__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__IS_SUFFICIENT = REQUIREMENT_DEFINITION__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__DIFFERENCING_TYPE = REQUIREMENT_DEFINITION__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__DIRECTED_FEATURE = REQUIREMENT_DEFINITION__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__END_FEATURE = REQUIREMENT_DEFINITION__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__FEATURE = REQUIREMENT_DEFINITION__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__FEATURE_MEMBERSHIP = REQUIREMENT_DEFINITION__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__INHERITED_FEATURE = REQUIREMENT_DEFINITION__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__INHERITED_MEMBERSHIP = REQUIREMENT_DEFINITION__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__INPUT = REQUIREMENT_DEFINITION__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__INTERSECTING_TYPE = REQUIREMENT_DEFINITION__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__MULTIPLICITY = REQUIREMENT_DEFINITION__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OUTPUT = REQUIREMENT_DEFINITION__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_CONJUGATOR = REQUIREMENT_DEFINITION__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_DIFFERENCING = REQUIREMENT_DEFINITION__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_DISJOINING = REQUIREMENT_DEFINITION__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_END_FEATURE = REQUIREMENT_DEFINITION__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_FEATURE = REQUIREMENT_DEFINITION__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_FEATURE_MEMBERSHIP = REQUIREMENT_DEFINITION__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_INTERSECTING = REQUIREMENT_DEFINITION__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_SPECIALIZATION = REQUIREMENT_DEFINITION__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_UNIONING = REQUIREMENT_DEFINITION__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__UNIONING_TYPE = REQUIREMENT_DEFINITION__UNIONING_TYPE; + + /** + * The feature id for the 'Owned Subclassification' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_SUBCLASSIFICATION = REQUIREMENT_DEFINITION__OWNED_SUBCLASSIFICATION; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__IS_VARIATION = REQUIREMENT_DEFINITION__IS_VARIATION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__DIRECTED_USAGE = REQUIREMENT_DEFINITION__DIRECTED_USAGE; + + /** + * The feature id for the 'Owned Action' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_ACTION = REQUIREMENT_DEFINITION__OWNED_ACTION; + + /** + * The feature id for the 'Owned Allocation' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_ALLOCATION = REQUIREMENT_DEFINITION__OWNED_ALLOCATION; + + /** + * The feature id for the 'Owned Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_ANALYSIS_CASE = REQUIREMENT_DEFINITION__OWNED_ANALYSIS_CASE; + + /** + * The feature id for the 'Owned Attribute' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_ATTRIBUTE = REQUIREMENT_DEFINITION__OWNED_ATTRIBUTE; + + /** + * The feature id for the 'Owned Calculation' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_CALCULATION = REQUIREMENT_DEFINITION__OWNED_CALCULATION; + + /** + * The feature id for the 'Owned Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_CASE = REQUIREMENT_DEFINITION__OWNED_CASE; + + /** + * The feature id for the 'Owned Concern' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_CONCERN = REQUIREMENT_DEFINITION__OWNED_CONCERN; + + /** + * The feature id for the 'Owned Connection' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_CONNECTION = REQUIREMENT_DEFINITION__OWNED_CONNECTION; + + /** + * The feature id for the 'Owned Constraint' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_CONSTRAINT = REQUIREMENT_DEFINITION__OWNED_CONSTRAINT; + + /** + * The feature id for the 'Owned Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_ENUMERATION = REQUIREMENT_DEFINITION__OWNED_ENUMERATION; + + /** + * The feature id for the 'Owned Flow' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_FLOW = REQUIREMENT_DEFINITION__OWNED_FLOW; + + /** + * The feature id for the 'Owned Interface' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_INTERFACE = REQUIREMENT_DEFINITION__OWNED_INTERFACE; + + /** + * The feature id for the 'Owned Item' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_ITEM = REQUIREMENT_DEFINITION__OWNED_ITEM; + + /** + * The feature id for the 'Owned Metadata' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_METADATA = REQUIREMENT_DEFINITION__OWNED_METADATA; + + /** + * The feature id for the 'Owned Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_OCCURRENCE = REQUIREMENT_DEFINITION__OWNED_OCCURRENCE; + + /** + * The feature id for the 'Owned Part' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_PART = REQUIREMENT_DEFINITION__OWNED_PART; + + /** + * The feature id for the 'Owned Port' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_PORT = REQUIREMENT_DEFINITION__OWNED_PORT; + + /** + * The feature id for the 'Owned Reference' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_REFERENCE = REQUIREMENT_DEFINITION__OWNED_REFERENCE; + + /** + * The feature id for the 'Owned Rendering' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_RENDERING = REQUIREMENT_DEFINITION__OWNED_RENDERING; + + /** + * The feature id for the 'Owned Requirement' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_REQUIREMENT = REQUIREMENT_DEFINITION__OWNED_REQUIREMENT; + + /** + * The feature id for the 'Owned State' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_STATE = REQUIREMENT_DEFINITION__OWNED_STATE; + + /** + * The feature id for the 'Owned Transition' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_TRANSITION = REQUIREMENT_DEFINITION__OWNED_TRANSITION; + + /** + * The feature id for the 'Owned Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_USAGE = REQUIREMENT_DEFINITION__OWNED_USAGE; + + /** + * The feature id for the 'Owned Use Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_USE_CASE = REQUIREMENT_DEFINITION__OWNED_USE_CASE; + + /** + * The feature id for the 'Owned Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_VERIFICATION_CASE = REQUIREMENT_DEFINITION__OWNED_VERIFICATION_CASE; + + /** + * The feature id for the 'Owned View' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_VIEW = REQUIREMENT_DEFINITION__OWNED_VIEW; + + /** + * The feature id for the 'Owned Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__OWNED_VIEWPOINT = REQUIREMENT_DEFINITION__OWNED_VIEWPOINT; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__USAGE = REQUIREMENT_DEFINITION__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__VARIANT = REQUIREMENT_DEFINITION__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__VARIANT_MEMBERSHIP = REQUIREMENT_DEFINITION__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__IS_INDIVIDUAL = REQUIREMENT_DEFINITION__IS_INDIVIDUAL; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__PARAMETER = REQUIREMENT_DEFINITION__PARAMETER; + + /** + * The feature id for the 'Step' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__STEP = REQUIREMENT_DEFINITION__STEP; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__IS_MODEL_LEVEL_EVALUABLE = REQUIREMENT_DEFINITION__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Expression' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__EXPRESSION = REQUIREMENT_DEFINITION__EXPRESSION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__RESULT = REQUIREMENT_DEFINITION__RESULT; + + /** + * The feature id for the 'Req Id' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__REQ_ID = REQUIREMENT_DEFINITION__REQ_ID; + + /** + * The feature id for the 'Text' attribute list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__TEXT = REQUIREMENT_DEFINITION__TEXT; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__ACTOR_PARAMETER = REQUIREMENT_DEFINITION__ACTOR_PARAMETER; + + /** + * The feature id for the 'Assumed Constraint' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__ASSUMED_CONSTRAINT = REQUIREMENT_DEFINITION__ASSUMED_CONSTRAINT; + + /** + * The feature id for the 'Framed Concern' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__FRAMED_CONCERN = REQUIREMENT_DEFINITION__FRAMED_CONCERN; + + /** + * The feature id for the 'Required Constraint' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__REQUIRED_CONSTRAINT = REQUIREMENT_DEFINITION__REQUIRED_CONSTRAINT; + + /** + * The feature id for the 'Stakeholder Parameter' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__STAKEHOLDER_PARAMETER = REQUIREMENT_DEFINITION__STAKEHOLDER_PARAMETER; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__SUBJECT_PARAMETER = REQUIREMENT_DEFINITION__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Viewpoint Stakeholder' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION__VIEWPOINT_STAKEHOLDER = REQUIREMENT_DEFINITION_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Viewpoint Definition' class. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION_FEATURE_COUNT = REQUIREMENT_DEFINITION_FEATURE_COUNT + 1; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___EFFECTIVE_NAME = REQUIREMENT_DEFINITION___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___EFFECTIVE_SHORT_NAME = REQUIREMENT_DEFINITION___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___ESCAPED_NAME = REQUIREMENT_DEFINITION___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___LIBRARY_NAMESPACE = REQUIREMENT_DEFINITION___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___PATH = REQUIREMENT_DEFINITION___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST = REQUIREMENT_DEFINITION___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = REQUIREMENT_DEFINITION___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___NAMES_OF__ELEMENT = REQUIREMENT_DEFINITION___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___QUALIFICATION_OF__STRING = REQUIREMENT_DEFINITION___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___RESOLVE__STRING = REQUIREMENT_DEFINITION___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___RESOLVE_GLOBAL__STRING = REQUIREMENT_DEFINITION___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___RESOLVE_LOCAL__STRING = REQUIREMENT_DEFINITION___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___RESOLVE_VISIBLE__STRING = REQUIREMENT_DEFINITION___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___UNQUALIFIED_NAME_OF__STRING = REQUIREMENT_DEFINITION___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___VISIBILITY_OF__MEMBERSHIP = REQUIREMENT_DEFINITION___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = REQUIREMENT_DEFINITION___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = REQUIREMENT_DEFINITION___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___ALL_SUPERTYPES = REQUIREMENT_DEFINITION___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___DIRECTION_OF__FEATURE = REQUIREMENT_DEFINITION___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = REQUIREMENT_DEFINITION___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_DEFINITION___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_DEFINITION___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___IS_COMPATIBLE_WITH__TYPE = REQUIREMENT_DEFINITION___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___MULTIPLICITIES = REQUIREMENT_DEFINITION___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_DEFINITION___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST = REQUIREMENT_DEFINITION___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___SPECIALIZES__TYPE = REQUIREMENT_DEFINITION___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING = REQUIREMENT_DEFINITION___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION___SUPERTYPES__BOOLEAN = REQUIREMENT_DEFINITION___SUPERTYPES__BOOLEAN; + + /** + * The number of operations of the 'Viewpoint Definition' class. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_DEFINITION_OPERATION_COUNT = REQUIREMENT_DEFINITION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ViewpointUsageImpl Viewpoint Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ViewpointUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getViewpointUsage() + * @generated + */ + int VIEWPOINT_USAGE = 171; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__ALIAS_IDS = REQUIREMENT_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__DECLARED_NAME = REQUIREMENT_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__DECLARED_SHORT_NAME = REQUIREMENT_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__ELEMENT_ID = REQUIREMENT_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_IMPLIED_INCLUDED = REQUIREMENT_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_LIBRARY_ELEMENT = REQUIREMENT_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NAME = REQUIREMENT_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__QUALIFIED_NAME = REQUIREMENT_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__SHORT_NAME = REQUIREMENT_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__DOCUMENTATION = REQUIREMENT_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_ANNOTATION = REQUIREMENT_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_ELEMENT = REQUIREMENT_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_RELATIONSHIP = REQUIREMENT_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNER = REQUIREMENT_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNING_MEMBERSHIP = REQUIREMENT_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNING_NAMESPACE = REQUIREMENT_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNING_RELATIONSHIP = REQUIREMENT_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__TEXTUAL_REPRESENTATION = REQUIREMENT_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IMPORTED_MEMBERSHIP = REQUIREMENT_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__MEMBER = REQUIREMENT_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__MEMBERSHIP = REQUIREMENT_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_IMPORT = REQUIREMENT_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_MEMBER = REQUIREMENT_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_MEMBERSHIP = REQUIREMENT_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_ABSTRACT = REQUIREMENT_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_CONJUGATED = REQUIREMENT_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_SUFFICIENT = REQUIREMENT_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__DIFFERENCING_TYPE = REQUIREMENT_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__DIRECTED_FEATURE = REQUIREMENT_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__END_FEATURE = REQUIREMENT_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__FEATURE = REQUIREMENT_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__FEATURE_MEMBERSHIP = REQUIREMENT_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__INHERITED_FEATURE = REQUIREMENT_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__INHERITED_MEMBERSHIP = REQUIREMENT_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__INPUT = REQUIREMENT_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__INTERSECTING_TYPE = REQUIREMENT_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__MULTIPLICITY = REQUIREMENT_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OUTPUT = REQUIREMENT_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_CONJUGATOR = REQUIREMENT_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_DIFFERENCING = REQUIREMENT_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_DISJOINING = REQUIREMENT_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_END_FEATURE = REQUIREMENT_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_FEATURE = REQUIREMENT_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_FEATURE_MEMBERSHIP = REQUIREMENT_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_INTERSECTING = REQUIREMENT_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_SPECIALIZATION = REQUIREMENT_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_UNIONING = REQUIREMENT_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__UNIONING_TYPE = REQUIREMENT_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__DIRECTION = REQUIREMENT_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_COMPOSITE = REQUIREMENT_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_CONSTANT = REQUIREMENT_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_DERIVED = REQUIREMENT_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_END = REQUIREMENT_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_NONUNIQUE = REQUIREMENT_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_ORDERED = REQUIREMENT_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_PORTION = REQUIREMENT_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_UNIQUE = REQUIREMENT_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_VARIABLE = REQUIREMENT_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__CHAINING_FEATURE = REQUIREMENT_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__CROSS_FEATURE = REQUIREMENT_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__END_OWNING_TYPE = REQUIREMENT_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__FEATURE_TARGET = REQUIREMENT_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__FEATURING_TYPE = REQUIREMENT_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_CROSS_SUBSETTING = REQUIREMENT_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_FEATURE_CHAINING = REQUIREMENT_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_FEATURE_INVERTING = REQUIREMENT_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_REDEFINITION = REQUIREMENT_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_REFERENCE_SUBSETTING = REQUIREMENT_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_SUBSETTING = REQUIREMENT_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_TYPE_FEATURING = REQUIREMENT_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNED_TYPING = REQUIREMENT_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNING_FEATURE_MEMBERSHIP = REQUIREMENT_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNING_TYPE = REQUIREMENT_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__TYPE = REQUIREMENT_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_REFERENCE = REQUIREMENT_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_VARIATION = REQUIREMENT_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__MAY_TIME_VARY = REQUIREMENT_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__DEFINITION = REQUIREMENT_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__DIRECTED_USAGE = REQUIREMENT_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_ACTION = REQUIREMENT_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_ALLOCATION = REQUIREMENT_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_ANALYSIS_CASE = REQUIREMENT_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_ATTRIBUTE = REQUIREMENT_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_CALCULATION = REQUIREMENT_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_CASE = REQUIREMENT_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_CONCERN = REQUIREMENT_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_CONNECTION = REQUIREMENT_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_CONSTRAINT = REQUIREMENT_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_ENUMERATION = REQUIREMENT_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_FLOW = REQUIREMENT_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_INTERFACE = REQUIREMENT_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_ITEM = REQUIREMENT_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_METADATA = REQUIREMENT_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_OCCURRENCE = REQUIREMENT_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_PART = REQUIREMENT_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_PORT = REQUIREMENT_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_REFERENCE = REQUIREMENT_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_RENDERING = REQUIREMENT_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_REQUIREMENT = REQUIREMENT_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_STATE = REQUIREMENT_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_TRANSITION = REQUIREMENT_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_USAGE = REQUIREMENT_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_USE_CASE = REQUIREMENT_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_VERIFICATION_CASE = REQUIREMENT_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_VIEW = REQUIREMENT_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__NESTED_VIEWPOINT = REQUIREMENT_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNING_DEFINITION = REQUIREMENT_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OWNING_USAGE = REQUIREMENT_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__USAGE = REQUIREMENT_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__VARIANT = REQUIREMENT_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__VARIANT_MEMBERSHIP = REQUIREMENT_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_INDIVIDUAL = REQUIREMENT_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__PORTION_KIND = REQUIREMENT_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__INDIVIDUAL_DEFINITION = REQUIREMENT_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__OCCURRENCE_DEFINITION = REQUIREMENT_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__BEHAVIOR = REQUIREMENT_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__PARAMETER = REQUIREMENT_USAGE__PARAMETER; + + /** + * The feature id for the 'Is Model Level Evaluable' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__IS_MODEL_LEVEL_EVALUABLE = REQUIREMENT_USAGE__IS_MODEL_LEVEL_EVALUABLE; + + /** + * The feature id for the 'Function' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__FUNCTION = REQUIREMENT_USAGE__FUNCTION; + + /** + * The feature id for the 'Result' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__RESULT = REQUIREMENT_USAGE__RESULT; + + /** + * The feature id for the 'Predicate' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__PREDICATE = REQUIREMENT_USAGE__PREDICATE; + + /** + * The feature id for the 'Constraint Definition' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__CONSTRAINT_DEFINITION = REQUIREMENT_USAGE__CONSTRAINT_DEFINITION; + + /** + * The feature id for the 'Req Id' attribute. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__REQ_ID = REQUIREMENT_USAGE__REQ_ID; + + /** + * The feature id for the 'Text' attribute list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__TEXT = REQUIREMENT_USAGE__TEXT; + + /** + * The feature id for the 'Actor Parameter' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__ACTOR_PARAMETER = REQUIREMENT_USAGE__ACTOR_PARAMETER; + + /** + * The feature id for the 'Assumed Constraint' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__ASSUMED_CONSTRAINT = REQUIREMENT_USAGE__ASSUMED_CONSTRAINT; + + /** + * The feature id for the 'Framed Concern' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__FRAMED_CONCERN = REQUIREMENT_USAGE__FRAMED_CONCERN; + + /** + * The feature id for the 'Required Constraint' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__REQUIRED_CONSTRAINT = REQUIREMENT_USAGE__REQUIRED_CONSTRAINT; + + /** + * The feature id for the 'Requirement Definition' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__REQUIREMENT_DEFINITION = REQUIREMENT_USAGE__REQUIREMENT_DEFINITION; + + /** + * The feature id for the 'Stakeholder Parameter' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__STAKEHOLDER_PARAMETER = REQUIREMENT_USAGE__STAKEHOLDER_PARAMETER; + + /** + * The feature id for the 'Subject Parameter' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__SUBJECT_PARAMETER = REQUIREMENT_USAGE__SUBJECT_PARAMETER; + + /** + * The feature id for the 'Viewpoint Definition' reference. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__VIEWPOINT_DEFINITION = REQUIREMENT_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Viewpoint Stakeholder' reference list. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE__VIEWPOINT_STAKEHOLDER = REQUIREMENT_USAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Viewpoint Usage' class. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE_FEATURE_COUNT = REQUIREMENT_USAGE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___EFFECTIVE_NAME = REQUIREMENT_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___EFFECTIVE_SHORT_NAME = REQUIREMENT_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___ESCAPED_NAME = REQUIREMENT_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___LIBRARY_NAMESPACE = REQUIREMENT_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___PATH = REQUIREMENT_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___IMPORTED_MEMBERSHIPS__ELIST = REQUIREMENT_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = REQUIREMENT_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___NAMES_OF__ELEMENT = REQUIREMENT_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___QUALIFICATION_OF__STRING = REQUIREMENT_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___RESOLVE__STRING = REQUIREMENT_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___RESOLVE_GLOBAL__STRING = REQUIREMENT_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___RESOLVE_LOCAL__STRING = REQUIREMENT_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___RESOLVE_VISIBLE__STRING = REQUIREMENT_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___UNQUALIFIED_NAME_OF__STRING = REQUIREMENT_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___VISIBILITY_OF__MEMBERSHIP = REQUIREMENT_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = REQUIREMENT_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = REQUIREMENT_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___ALL_SUPERTYPES = REQUIREMENT_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___DIRECTION_OF__FEATURE = REQUIREMENT_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = REQUIREMENT_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___IS_COMPATIBLE_WITH__TYPE = REQUIREMENT_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___MULTIPLICITIES = REQUIREMENT_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = REQUIREMENT_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = REQUIREMENT_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___SPECIALIZES__TYPE = REQUIREMENT_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = REQUIREMENT_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___SUPERTYPES__BOOLEAN = REQUIREMENT_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___ALL_REDEFINED_FEATURES = REQUIREMENT_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___AS_CARTESIAN_PRODUCT = REQUIREMENT_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___CAN_ACCESS__FEATURE = REQUIREMENT_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___DIRECTION_FOR__TYPE = REQUIREMENT_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___IS_CARTESIAN_PRODUCT = REQUIREMENT_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___IS_FEATURED_WITHIN__TYPE = REQUIREMENT_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___IS_FEATURING_TYPE__TYPE = REQUIREMENT_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___IS_OWNED_CROSS_FEATURE = REQUIREMENT_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___NAMING_FEATURE = REQUIREMENT_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___OWNED_CROSS_FEATURE = REQUIREMENT_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___REDEFINES__FEATURE = REQUIREMENT_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___REDEFINES_FROM_LIBRARY__STRING = REQUIREMENT_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = REQUIREMENT_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___TYPING_FEATURES = REQUIREMENT_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___REFERENCED_FEATURE_TARGET = REQUIREMENT_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Check Condition' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___CHECK_CONDITION__ELEMENT = REQUIREMENT_USAGE___CHECK_CONDITION__ELEMENT; + + /** + * The operation id for the 'Evaluate' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___EVALUATE__ELEMENT = REQUIREMENT_USAGE___EVALUATE__ELEMENT; + + /** + * The operation id for the 'Model Level Evaluable' operation. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST = REQUIREMENT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + + /** + * The number of operations of the 'Viewpoint Usage' class. + * + * + * @generated + * @ordered + */ + int VIEWPOINT_USAGE_OPERATION_COUNT = REQUIREMENT_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ViewRenderingMembershipImpl View Rendering Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ViewRenderingMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getViewRenderingMembership() + * @generated + */ + int VIEW_RENDERING_MEMBERSHIP = 172; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__ALIAS_IDS = FEATURE_MEMBERSHIP__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__DECLARED_NAME = FEATURE_MEMBERSHIP__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__DECLARED_SHORT_NAME = FEATURE_MEMBERSHIP__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__ELEMENT_ID = FEATURE_MEMBERSHIP__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__IS_IMPLIED_INCLUDED = FEATURE_MEMBERSHIP__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__IS_LIBRARY_ELEMENT = FEATURE_MEMBERSHIP__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__NAME = FEATURE_MEMBERSHIP__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__QUALIFIED_NAME = FEATURE_MEMBERSHIP__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__SHORT_NAME = FEATURE_MEMBERSHIP__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__DOCUMENTATION = FEATURE_MEMBERSHIP__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNED_ANNOTATION = FEATURE_MEMBERSHIP__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNED_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNER = FEATURE_MEMBERSHIP__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNING_MEMBERSHIP = FEATURE_MEMBERSHIP__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNING_NAMESPACE = FEATURE_MEMBERSHIP__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNING_RELATIONSHIP = FEATURE_MEMBERSHIP__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__TEXTUAL_REPRESENTATION = FEATURE_MEMBERSHIP__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Is Implied' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__IS_IMPLIED = FEATURE_MEMBERSHIP__IS_IMPLIED; + + /** + * The feature id for the 'Owned Related Element' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNED_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNED_RELATED_ELEMENT; + + /** + * The feature id for the 'Owning Related Element' container reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNING_RELATED_ELEMENT = FEATURE_MEMBERSHIP__OWNING_RELATED_ELEMENT; + + /** + * The feature id for the 'Related Element' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__RELATED_ELEMENT = FEATURE_MEMBERSHIP__RELATED_ELEMENT; + + /** + * The feature id for the 'Source' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__SOURCE = FEATURE_MEMBERSHIP__SOURCE; + + /** + * The feature id for the 'Target' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__TARGET = FEATURE_MEMBERSHIP__TARGET; + + /** + * The feature id for the 'Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Member Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__MEMBER_NAME = FEATURE_MEMBERSHIP__MEMBER_NAME; + + /** + * The feature id for the 'Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Visibility' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__VISIBILITY = FEATURE_MEMBERSHIP__VISIBILITY; + + /** + * The feature id for the 'Member Element' reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__MEMBER_ELEMENT = FEATURE_MEMBERSHIP__MEMBER_ELEMENT; + + /** + * The feature id for the 'Membership Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = FEATURE_MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE; + + /** + * The feature id for the 'Owned Member Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID; + + /** + * The feature id for the 'Owned Member Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNED_MEMBER_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_NAME; + + /** + * The feature id for the 'Owned Member Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = FEATURE_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME; + + /** + * The feature id for the 'Owned Member Element' reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNED_MEMBER_ELEMENT = FEATURE_MEMBERSHIP__OWNED_MEMBER_ELEMENT; + + /** + * The feature id for the 'Owned Member Feature' reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNED_MEMBER_FEATURE = FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNING_TYPE = FEATURE_MEMBERSHIP__OWNING_TYPE; + + /** + * The feature id for the 'Owned Rendering' reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__OWNED_RENDERING = FEATURE_MEMBERSHIP_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Referenced Rendering' reference. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP__REFERENCED_RENDERING = FEATURE_MEMBERSHIP_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'View Rendering Membership' class. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP_FEATURE_COUNT = FEATURE_MEMBERSHIP_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP___EFFECTIVE_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP___EFFECTIVE_SHORT_NAME = FEATURE_MEMBERSHIP___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP___ESCAPED_NAME = FEATURE_MEMBERSHIP___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP___LIBRARY_NAMESPACE = FEATURE_MEMBERSHIP___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP___PATH = FEATURE_MEMBERSHIP___PATH; + + /** + * The operation id for the 'Is Distinguishable From' operation. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = FEATURE_MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP; + + /** + * The number of operations of the 'View Rendering Membership' class. + * + * + * @generated + * @ordered + */ + int VIEW_RENDERING_MEMBERSHIP_OPERATION_COUNT = FEATURE_MEMBERSHIP_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.ViewUsageImpl View Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ViewUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getViewUsage() + * @generated + */ + int VIEW_USAGE = 173; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__ALIAS_IDS = PART_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__DECLARED_NAME = PART_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__DECLARED_SHORT_NAME = PART_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__ELEMENT_ID = PART_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_IMPLIED_INCLUDED = PART_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_LIBRARY_ELEMENT = PART_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NAME = PART_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__QUALIFIED_NAME = PART_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__SHORT_NAME = PART_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__DOCUMENTATION = PART_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_ANNOTATION = PART_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_ELEMENT = PART_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_RELATIONSHIP = PART_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNER = PART_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNING_MEMBERSHIP = PART_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNING_NAMESPACE = PART_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNING_RELATIONSHIP = PART_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__TEXTUAL_REPRESENTATION = PART_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IMPORTED_MEMBERSHIP = PART_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__MEMBER = PART_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__MEMBERSHIP = PART_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_IMPORT = PART_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_MEMBER = PART_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_MEMBERSHIP = PART_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_ABSTRACT = PART_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_CONJUGATED = PART_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_SUFFICIENT = PART_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__DIFFERENCING_TYPE = PART_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__DIRECTED_FEATURE = PART_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__END_FEATURE = PART_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__FEATURE = PART_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__FEATURE_MEMBERSHIP = PART_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__INHERITED_FEATURE = PART_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__INHERITED_MEMBERSHIP = PART_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__INPUT = PART_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__INTERSECTING_TYPE = PART_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__MULTIPLICITY = PART_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OUTPUT = PART_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_CONJUGATOR = PART_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_DIFFERENCING = PART_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_DISJOINING = PART_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_END_FEATURE = PART_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_FEATURE = PART_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_FEATURE_MEMBERSHIP = PART_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_INTERSECTING = PART_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_SPECIALIZATION = PART_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_UNIONING = PART_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__UNIONING_TYPE = PART_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__DIRECTION = PART_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_COMPOSITE = PART_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_CONSTANT = PART_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_DERIVED = PART_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_END = PART_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_NONUNIQUE = PART_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_ORDERED = PART_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_PORTION = PART_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_UNIQUE = PART_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_VARIABLE = PART_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__CHAINING_FEATURE = PART_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__CROSS_FEATURE = PART_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__END_OWNING_TYPE = PART_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__FEATURE_TARGET = PART_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__FEATURING_TYPE = PART_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_CROSS_SUBSETTING = PART_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_FEATURE_CHAINING = PART_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_FEATURE_INVERTING = PART_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_REDEFINITION = PART_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_REFERENCE_SUBSETTING = PART_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_SUBSETTING = PART_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_TYPE_FEATURING = PART_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNED_TYPING = PART_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNING_FEATURE_MEMBERSHIP = PART_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNING_TYPE = PART_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__TYPE = PART_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_REFERENCE = PART_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_VARIATION = PART_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__MAY_TIME_VARY = PART_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__DEFINITION = PART_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__DIRECTED_USAGE = PART_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_ACTION = PART_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_ALLOCATION = PART_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_ANALYSIS_CASE = PART_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_ATTRIBUTE = PART_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_CALCULATION = PART_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_CASE = PART_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_CONCERN = PART_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_CONNECTION = PART_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_CONSTRAINT = PART_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_ENUMERATION = PART_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_FLOW = PART_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_INTERFACE = PART_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_ITEM = PART_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_METADATA = PART_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_OCCURRENCE = PART_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_PART = PART_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_PORT = PART_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_REFERENCE = PART_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_RENDERING = PART_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_REQUIREMENT = PART_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_STATE = PART_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_TRANSITION = PART_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_USAGE = PART_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_USE_CASE = PART_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_VERIFICATION_CASE = PART_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_VIEW = PART_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__NESTED_VIEWPOINT = PART_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNING_DEFINITION = PART_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OWNING_USAGE = PART_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__USAGE = PART_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__VARIANT = PART_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__VARIANT_MEMBERSHIP = PART_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__IS_INDIVIDUAL = PART_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__PORTION_KIND = PART_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__INDIVIDUAL_DEFINITION = PART_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__OCCURRENCE_DEFINITION = PART_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Item Definition' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__ITEM_DEFINITION = PART_USAGE__ITEM_DEFINITION; + + /** + * The feature id for the 'Part Definition' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__PART_DEFINITION = PART_USAGE__PART_DEFINITION; + + /** + * The feature id for the 'Exposed Element' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__EXPOSED_ELEMENT = PART_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Satisfied Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__SATISFIED_VIEWPOINT = PART_USAGE_FEATURE_COUNT + 1; + + /** + * The feature id for the 'View Condition' reference list. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__VIEW_CONDITION = PART_USAGE_FEATURE_COUNT + 2; + + /** + * The feature id for the 'View Definition' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__VIEW_DEFINITION = PART_USAGE_FEATURE_COUNT + 3; + + /** + * The feature id for the 'View Rendering' reference. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE__VIEW_RENDERING = PART_USAGE_FEATURE_COUNT + 4; + + /** + * The number of structural features of the 'View Usage' class. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE_FEATURE_COUNT = PART_USAGE_FEATURE_COUNT + 5; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___EFFECTIVE_NAME = PART_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___EFFECTIVE_SHORT_NAME = PART_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___ESCAPED_NAME = PART_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___LIBRARY_NAMESPACE = PART_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___PATH = PART_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___IMPORTED_MEMBERSHIPS__ELIST = PART_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = PART_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___NAMES_OF__ELEMENT = PART_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___QUALIFICATION_OF__STRING = PART_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___RESOLVE__STRING = PART_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___RESOLVE_GLOBAL__STRING = PART_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___RESOLVE_LOCAL__STRING = PART_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___RESOLVE_VISIBLE__STRING = PART_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___UNQUALIFIED_NAME_OF__STRING = PART_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___VISIBILITY_OF__MEMBERSHIP = PART_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = PART_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = PART_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___ALL_SUPERTYPES = PART_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___DIRECTION_OF__FEATURE = PART_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = PART_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___IS_COMPATIBLE_WITH__TYPE = PART_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___MULTIPLICITIES = PART_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = PART_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = PART_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___SPECIALIZES__TYPE = PART_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = PART_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___SUPERTYPES__BOOLEAN = PART_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___ALL_REDEFINED_FEATURES = PART_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___AS_CARTESIAN_PRODUCT = PART_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___CAN_ACCESS__FEATURE = PART_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___DIRECTION_FOR__TYPE = PART_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___IS_CARTESIAN_PRODUCT = PART_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___IS_FEATURED_WITHIN__TYPE = PART_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___IS_FEATURING_TYPE__TYPE = PART_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___IS_OWNED_CROSS_FEATURE = PART_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___NAMING_FEATURE = PART_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___OWNED_CROSS_FEATURE = PART_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___REDEFINES__FEATURE = PART_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___REDEFINES_FROM_LIBRARY__STRING = PART_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = PART_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___TYPING_FEATURES = PART_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___REFERENCED_FEATURE_TARGET = PART_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Include As Exposed' operation. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE___INCLUDE_AS_EXPOSED__ELEMENT = PART_USAGE_OPERATION_COUNT + 0; + + /** + * The number of operations of the 'View Usage' class. + * + * + * @generated + * @ordered + */ + int VIEW_USAGE_OPERATION_COUNT = PART_USAGE_OPERATION_COUNT + 1; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.impl.WhileLoopActionUsageImpl While Loop Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.WhileLoopActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getWhileLoopActionUsage() + * @generated + */ + int WHILE_LOOP_ACTION_USAGE = 174; + + /** + * The feature id for the 'Alias Ids' attribute list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__ALIAS_IDS = LOOP_ACTION_USAGE__ALIAS_IDS; + + /** + * The feature id for the 'Declared Name' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__DECLARED_NAME = LOOP_ACTION_USAGE__DECLARED_NAME; + + /** + * The feature id for the 'Declared Short Name' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__DECLARED_SHORT_NAME = LOOP_ACTION_USAGE__DECLARED_SHORT_NAME; + + /** + * The feature id for the 'Element Id' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__ELEMENT_ID = LOOP_ACTION_USAGE__ELEMENT_ID; + + /** + * The feature id for the 'Is Implied Included' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_IMPLIED_INCLUDED = LOOP_ACTION_USAGE__IS_IMPLIED_INCLUDED; + + /** + * The feature id for the 'Is Library Element' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_LIBRARY_ELEMENT = LOOP_ACTION_USAGE__IS_LIBRARY_ELEMENT; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NAME = LOOP_ACTION_USAGE__NAME; + + /** + * The feature id for the 'Qualified Name' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__QUALIFIED_NAME = LOOP_ACTION_USAGE__QUALIFIED_NAME; + + /** + * The feature id for the 'Short Name' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__SHORT_NAME = LOOP_ACTION_USAGE__SHORT_NAME; + + /** + * The feature id for the 'Documentation' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__DOCUMENTATION = LOOP_ACTION_USAGE__DOCUMENTATION; + + /** + * The feature id for the 'Owned Annotation' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_ANNOTATION = LOOP_ACTION_USAGE__OWNED_ANNOTATION; + + /** + * The feature id for the 'Owned Element' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_ELEMENT = LOOP_ACTION_USAGE__OWNED_ELEMENT; + + /** + * The feature id for the 'Owned Relationship' containment reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_RELATIONSHIP = LOOP_ACTION_USAGE__OWNED_RELATIONSHIP; + + /** + * The feature id for the 'Owner' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNER = LOOP_ACTION_USAGE__OWNER; + + /** + * The feature id for the 'Owning Membership' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNING_MEMBERSHIP = LOOP_ACTION_USAGE__OWNING_MEMBERSHIP; + + /** + * The feature id for the 'Owning Namespace' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNING_NAMESPACE = LOOP_ACTION_USAGE__OWNING_NAMESPACE; + + /** + * The feature id for the 'Owning Relationship' container reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNING_RELATIONSHIP = LOOP_ACTION_USAGE__OWNING_RELATIONSHIP; + + /** + * The feature id for the 'Textual Representation' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__TEXTUAL_REPRESENTATION = LOOP_ACTION_USAGE__TEXTUAL_REPRESENTATION; + + /** + * The feature id for the 'Imported Membership' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IMPORTED_MEMBERSHIP = LOOP_ACTION_USAGE__IMPORTED_MEMBERSHIP; + + /** + * The feature id for the 'Member' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__MEMBER = LOOP_ACTION_USAGE__MEMBER; + + /** + * The feature id for the 'Membership' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__MEMBERSHIP = LOOP_ACTION_USAGE__MEMBERSHIP; + + /** + * The feature id for the 'Owned Import' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_IMPORT = LOOP_ACTION_USAGE__OWNED_IMPORT; + + /** + * The feature id for the 'Owned Member' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_MEMBER = LOOP_ACTION_USAGE__OWNED_MEMBER; + + /** + * The feature id for the 'Owned Membership' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_MEMBERSHIP = LOOP_ACTION_USAGE__OWNED_MEMBERSHIP; + + /** + * The feature id for the 'Is Abstract' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_ABSTRACT = LOOP_ACTION_USAGE__IS_ABSTRACT; + + /** + * The feature id for the 'Is Conjugated' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_CONJUGATED = LOOP_ACTION_USAGE__IS_CONJUGATED; + + /** + * The feature id for the 'Is Sufficient' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_SUFFICIENT = LOOP_ACTION_USAGE__IS_SUFFICIENT; + + /** + * The feature id for the 'Differencing Type' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__DIFFERENCING_TYPE = LOOP_ACTION_USAGE__DIFFERENCING_TYPE; + + /** + * The feature id for the 'Directed Feature' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__DIRECTED_FEATURE = LOOP_ACTION_USAGE__DIRECTED_FEATURE; + + /** + * The feature id for the 'End Feature' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__END_FEATURE = LOOP_ACTION_USAGE__END_FEATURE; + + /** + * The feature id for the 'Feature' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__FEATURE = LOOP_ACTION_USAGE__FEATURE; + + /** + * The feature id for the 'Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__FEATURE_MEMBERSHIP = LOOP_ACTION_USAGE__FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Inherited Feature' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__INHERITED_FEATURE = LOOP_ACTION_USAGE__INHERITED_FEATURE; + + /** + * The feature id for the 'Inherited Membership' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__INHERITED_MEMBERSHIP = LOOP_ACTION_USAGE__INHERITED_MEMBERSHIP; + + /** + * The feature id for the 'Input' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__INPUT = LOOP_ACTION_USAGE__INPUT; + + /** + * The feature id for the 'Intersecting Type' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__INTERSECTING_TYPE = LOOP_ACTION_USAGE__INTERSECTING_TYPE; + + /** + * The feature id for the 'Multiplicity' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__MULTIPLICITY = LOOP_ACTION_USAGE__MULTIPLICITY; + + /** + * The feature id for the 'Output' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OUTPUT = LOOP_ACTION_USAGE__OUTPUT; + + /** + * The feature id for the 'Owned Conjugator' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_CONJUGATOR = LOOP_ACTION_USAGE__OWNED_CONJUGATOR; + + /** + * The feature id for the 'Owned Differencing' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_DIFFERENCING = LOOP_ACTION_USAGE__OWNED_DIFFERENCING; + + /** + * The feature id for the 'Owned Disjoining' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_DISJOINING = LOOP_ACTION_USAGE__OWNED_DISJOINING; + + /** + * The feature id for the 'Owned End Feature' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_END_FEATURE = LOOP_ACTION_USAGE__OWNED_END_FEATURE; + + /** + * The feature id for the 'Owned Feature' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_FEATURE = LOOP_ACTION_USAGE__OWNED_FEATURE; + + /** + * The feature id for the 'Owned Feature Membership' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP = LOOP_ACTION_USAGE__OWNED_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owned Intersecting' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_INTERSECTING = LOOP_ACTION_USAGE__OWNED_INTERSECTING; + + /** + * The feature id for the 'Owned Specialization' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_SPECIALIZATION = LOOP_ACTION_USAGE__OWNED_SPECIALIZATION; + + /** + * The feature id for the 'Owned Unioning' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_UNIONING = LOOP_ACTION_USAGE__OWNED_UNIONING; + + /** + * The feature id for the 'Unioning Type' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__UNIONING_TYPE = LOOP_ACTION_USAGE__UNIONING_TYPE; + + /** + * The feature id for the 'Direction' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__DIRECTION = LOOP_ACTION_USAGE__DIRECTION; + + /** + * The feature id for the 'Is Composite' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_COMPOSITE = LOOP_ACTION_USAGE__IS_COMPOSITE; + + /** + * The feature id for the 'Is Constant' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_CONSTANT = LOOP_ACTION_USAGE__IS_CONSTANT; + + /** + * The feature id for the 'Is Derived' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_DERIVED = LOOP_ACTION_USAGE__IS_DERIVED; + + /** + * The feature id for the 'Is End' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_END = LOOP_ACTION_USAGE__IS_END; + + /** + * The feature id for the 'Is Nonunique' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_NONUNIQUE = LOOP_ACTION_USAGE__IS_NONUNIQUE; + + /** + * The feature id for the 'Is Ordered' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_ORDERED = LOOP_ACTION_USAGE__IS_ORDERED; + + /** + * The feature id for the 'Is Portion' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_PORTION = LOOP_ACTION_USAGE__IS_PORTION; + + /** + * The feature id for the 'Is Unique' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_UNIQUE = LOOP_ACTION_USAGE__IS_UNIQUE; + + /** + * The feature id for the 'Is Variable' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_VARIABLE = LOOP_ACTION_USAGE__IS_VARIABLE; + + /** + * The feature id for the 'Chaining Feature' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__CHAINING_FEATURE = LOOP_ACTION_USAGE__CHAINING_FEATURE; + + /** + * The feature id for the 'Cross Feature' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__CROSS_FEATURE = LOOP_ACTION_USAGE__CROSS_FEATURE; + + /** + * The feature id for the 'End Owning Type' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__END_OWNING_TYPE = LOOP_ACTION_USAGE__END_OWNING_TYPE; + + /** + * The feature id for the 'Feature Target' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__FEATURE_TARGET = LOOP_ACTION_USAGE__FEATURE_TARGET; + + /** + * The feature id for the 'Featuring Type' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__FEATURING_TYPE = LOOP_ACTION_USAGE__FEATURING_TYPE; + + /** + * The feature id for the 'Owned Cross Subsetting' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_CROSS_SUBSETTING = LOOP_ACTION_USAGE__OWNED_CROSS_SUBSETTING; + + /** + * The feature id for the 'Owned Feature Chaining' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_FEATURE_CHAINING = LOOP_ACTION_USAGE__OWNED_FEATURE_CHAINING; + + /** + * The feature id for the 'Owned Feature Inverting' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_FEATURE_INVERTING = LOOP_ACTION_USAGE__OWNED_FEATURE_INVERTING; + + /** + * The feature id for the 'Owned Redefinition' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_REDEFINITION = LOOP_ACTION_USAGE__OWNED_REDEFINITION; + + /** + * The feature id for the 'Owned Reference Subsetting' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING = LOOP_ACTION_USAGE__OWNED_REFERENCE_SUBSETTING; + + /** + * The feature id for the 'Owned Subsetting' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_SUBSETTING = LOOP_ACTION_USAGE__OWNED_SUBSETTING; + + /** + * The feature id for the 'Owned Type Featuring' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_TYPE_FEATURING = LOOP_ACTION_USAGE__OWNED_TYPE_FEATURING; + + /** + * The feature id for the 'Owned Typing' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNED_TYPING = LOOP_ACTION_USAGE__OWNED_TYPING; + + /** + * The feature id for the 'Owning Feature Membership' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP = LOOP_ACTION_USAGE__OWNING_FEATURE_MEMBERSHIP; + + /** + * The feature id for the 'Owning Type' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNING_TYPE = LOOP_ACTION_USAGE__OWNING_TYPE; + + /** + * The feature id for the 'Type' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__TYPE = LOOP_ACTION_USAGE__TYPE; + + /** + * The feature id for the 'Is Reference' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_REFERENCE = LOOP_ACTION_USAGE__IS_REFERENCE; + + /** + * The feature id for the 'Is Variation' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_VARIATION = LOOP_ACTION_USAGE__IS_VARIATION; + + /** + * The feature id for the 'May Time Vary' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__MAY_TIME_VARY = LOOP_ACTION_USAGE__MAY_TIME_VARY; + + /** + * The feature id for the 'Definition' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__DEFINITION = LOOP_ACTION_USAGE__DEFINITION; + + /** + * The feature id for the 'Directed Usage' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__DIRECTED_USAGE = LOOP_ACTION_USAGE__DIRECTED_USAGE; + + /** + * The feature id for the 'Nested Action' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_ACTION = LOOP_ACTION_USAGE__NESTED_ACTION; + + /** + * The feature id for the 'Nested Allocation' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_ALLOCATION = LOOP_ACTION_USAGE__NESTED_ALLOCATION; + + /** + * The feature id for the 'Nested Analysis Case' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_ANALYSIS_CASE = LOOP_ACTION_USAGE__NESTED_ANALYSIS_CASE; + + /** + * The feature id for the 'Nested Attribute' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_ATTRIBUTE = LOOP_ACTION_USAGE__NESTED_ATTRIBUTE; + + /** + * The feature id for the 'Nested Calculation' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_CALCULATION = LOOP_ACTION_USAGE__NESTED_CALCULATION; + + /** + * The feature id for the 'Nested Case' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_CASE = LOOP_ACTION_USAGE__NESTED_CASE; + + /** + * The feature id for the 'Nested Concern' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_CONCERN = LOOP_ACTION_USAGE__NESTED_CONCERN; + + /** + * The feature id for the 'Nested Connection' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_CONNECTION = LOOP_ACTION_USAGE__NESTED_CONNECTION; + + /** + * The feature id for the 'Nested Constraint' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_CONSTRAINT = LOOP_ACTION_USAGE__NESTED_CONSTRAINT; + + /** + * The feature id for the 'Nested Enumeration' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_ENUMERATION = LOOP_ACTION_USAGE__NESTED_ENUMERATION; + + /** + * The feature id for the 'Nested Flow' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_FLOW = LOOP_ACTION_USAGE__NESTED_FLOW; + + /** + * The feature id for the 'Nested Interface' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_INTERFACE = LOOP_ACTION_USAGE__NESTED_INTERFACE; + + /** + * The feature id for the 'Nested Item' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_ITEM = LOOP_ACTION_USAGE__NESTED_ITEM; + + /** + * The feature id for the 'Nested Metadata' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_METADATA = LOOP_ACTION_USAGE__NESTED_METADATA; + + /** + * The feature id for the 'Nested Occurrence' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_OCCURRENCE = LOOP_ACTION_USAGE__NESTED_OCCURRENCE; + + /** + * The feature id for the 'Nested Part' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_PART = LOOP_ACTION_USAGE__NESTED_PART; + + /** + * The feature id for the 'Nested Port' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_PORT = LOOP_ACTION_USAGE__NESTED_PORT; + + /** + * The feature id for the 'Nested Reference' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_REFERENCE = LOOP_ACTION_USAGE__NESTED_REFERENCE; + + /** + * The feature id for the 'Nested Rendering' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_RENDERING = LOOP_ACTION_USAGE__NESTED_RENDERING; + + /** + * The feature id for the 'Nested Requirement' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_REQUIREMENT = LOOP_ACTION_USAGE__NESTED_REQUIREMENT; + + /** + * The feature id for the 'Nested State' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_STATE = LOOP_ACTION_USAGE__NESTED_STATE; + + /** + * The feature id for the 'Nested Transition' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_TRANSITION = LOOP_ACTION_USAGE__NESTED_TRANSITION; + + /** + * The feature id for the 'Nested Usage' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_USAGE = LOOP_ACTION_USAGE__NESTED_USAGE; + + /** + * The feature id for the 'Nested Use Case' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_USE_CASE = LOOP_ACTION_USAGE__NESTED_USE_CASE; + + /** + * The feature id for the 'Nested Verification Case' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_VERIFICATION_CASE = LOOP_ACTION_USAGE__NESTED_VERIFICATION_CASE; + + /** + * The feature id for the 'Nested View' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_VIEW = LOOP_ACTION_USAGE__NESTED_VIEW; + + /** + * The feature id for the 'Nested Viewpoint' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__NESTED_VIEWPOINT = LOOP_ACTION_USAGE__NESTED_VIEWPOINT; + + /** + * The feature id for the 'Owning Definition' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNING_DEFINITION = LOOP_ACTION_USAGE__OWNING_DEFINITION; + + /** + * The feature id for the 'Owning Usage' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OWNING_USAGE = LOOP_ACTION_USAGE__OWNING_USAGE; + + /** + * The feature id for the 'Usage' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__USAGE = LOOP_ACTION_USAGE__USAGE; + + /** + * The feature id for the 'Variant' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__VARIANT = LOOP_ACTION_USAGE__VARIANT; + + /** + * The feature id for the 'Variant Membership' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__VARIANT_MEMBERSHIP = LOOP_ACTION_USAGE__VARIANT_MEMBERSHIP; + + /** + * The feature id for the 'Is Individual' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__IS_INDIVIDUAL = LOOP_ACTION_USAGE__IS_INDIVIDUAL; + + /** + * The feature id for the 'Portion Kind' attribute. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__PORTION_KIND = LOOP_ACTION_USAGE__PORTION_KIND; + + /** + * The feature id for the 'Individual Definition' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__INDIVIDUAL_DEFINITION = LOOP_ACTION_USAGE__INDIVIDUAL_DEFINITION; + + /** + * The feature id for the 'Occurrence Definition' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__OCCURRENCE_DEFINITION = LOOP_ACTION_USAGE__OCCURRENCE_DEFINITION; + + /** + * The feature id for the 'Behavior' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__BEHAVIOR = LOOP_ACTION_USAGE__BEHAVIOR; + + /** + * The feature id for the 'Parameter' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__PARAMETER = LOOP_ACTION_USAGE__PARAMETER; + + /** + * The feature id for the 'Action Definition' reference list. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__ACTION_DEFINITION = LOOP_ACTION_USAGE__ACTION_DEFINITION; + + /** + * The feature id for the 'Body Action' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__BODY_ACTION = LOOP_ACTION_USAGE__BODY_ACTION; + + /** + * The feature id for the 'Until Argument' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__UNTIL_ARGUMENT = LOOP_ACTION_USAGE_FEATURE_COUNT + 0; + + /** + * The feature id for the 'While Argument' reference. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE__WHILE_ARGUMENT = LOOP_ACTION_USAGE_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'While Loop Action Usage' class. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE_FEATURE_COUNT = LOOP_ACTION_USAGE_FEATURE_COUNT + 2; + + /** + * The operation id for the 'Effective Name' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___EFFECTIVE_NAME = LOOP_ACTION_USAGE___EFFECTIVE_NAME; + + /** + * The operation id for the 'Effective Short Name' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___EFFECTIVE_SHORT_NAME = LOOP_ACTION_USAGE___EFFECTIVE_SHORT_NAME; + + /** + * The operation id for the 'Escaped Name' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___ESCAPED_NAME = LOOP_ACTION_USAGE___ESCAPED_NAME; + + /** + * The operation id for the 'Library Namespace' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___LIBRARY_NAMESPACE = LOOP_ACTION_USAGE___LIBRARY_NAMESPACE; + + /** + * The operation id for the 'Path' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___PATH = LOOP_ACTION_USAGE___PATH; + + /** + * The operation id for the 'Imported Memberships' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST = LOOP_ACTION_USAGE___IMPORTED_MEMBERSHIPS__ELIST; + + /** + * The operation id for the 'Memberships Of Visibility' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = LOOP_ACTION_USAGE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST; + + /** + * The operation id for the 'Names Of' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___NAMES_OF__ELEMENT = LOOP_ACTION_USAGE___NAMES_OF__ELEMENT; + + /** + * The operation id for the 'Qualification Of' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___QUALIFICATION_OF__STRING = LOOP_ACTION_USAGE___QUALIFICATION_OF__STRING; + + /** + * The operation id for the 'Resolve' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___RESOLVE__STRING = LOOP_ACTION_USAGE___RESOLVE__STRING; + + /** + * The operation id for the 'Resolve Global' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___RESOLVE_GLOBAL__STRING = LOOP_ACTION_USAGE___RESOLVE_GLOBAL__STRING; + + /** + * The operation id for the 'Resolve Local' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___RESOLVE_LOCAL__STRING = LOOP_ACTION_USAGE___RESOLVE_LOCAL__STRING; + + /** + * The operation id for the 'Resolve Visible' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___RESOLVE_VISIBLE__STRING = LOOP_ACTION_USAGE___RESOLVE_VISIBLE__STRING; + + /** + * The operation id for the 'Unqualified Name Of' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING = LOOP_ACTION_USAGE___UNQUALIFIED_NAME_OF__STRING; + + /** + * The operation id for the 'Visibility Of' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP = LOOP_ACTION_USAGE___VISIBILITY_OF__MEMBERSHIP; + + /** + * The operation id for the 'Visible Memberships' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = LOOP_ACTION_USAGE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN; + + /** + * The operation id for the 'All Redefined Features Of' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = LOOP_ACTION_USAGE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP; + + /** + * The operation id for the 'All Supertypes' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___ALL_SUPERTYPES = LOOP_ACTION_USAGE___ALL_SUPERTYPES; + + /** + * The operation id for the 'Direction Of' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___DIRECTION_OF__FEATURE = LOOP_ACTION_USAGE___DIRECTION_OF__FEATURE; + + /** + * The operation id for the 'Direction Of Excluding' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = LOOP_ACTION_USAGE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST; + + /** + * The operation id for the 'Inheritable Memberships' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LOOP_ACTION_USAGE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Inherited Memberships' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LOOP_ACTION_USAGE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Is Compatible With' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE = LOOP_ACTION_USAGE___IS_COMPATIBLE_WITH__TYPE; + + /** + * The operation id for the 'Multiplicities' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___MULTIPLICITIES = LOOP_ACTION_USAGE___MULTIPLICITIES; + + /** + * The operation id for the 'Non Private Memberships' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = LOOP_ACTION_USAGE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN; + + /** + * The operation id for the 'Remove Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST = LOOP_ACTION_USAGE___REMOVE_REDEFINED_FEATURES__ELIST; + + /** + * The operation id for the 'Specializes' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___SPECIALIZES__TYPE = LOOP_ACTION_USAGE___SPECIALIZES__TYPE; + + /** + * The operation id for the 'Specializes From Library' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING = LOOP_ACTION_USAGE___SPECIALIZES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Supertypes' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___SUPERTYPES__BOOLEAN = LOOP_ACTION_USAGE___SUPERTYPES__BOOLEAN; + + /** + * The operation id for the 'All Redefined Features' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___ALL_REDEFINED_FEATURES = LOOP_ACTION_USAGE___ALL_REDEFINED_FEATURES; + + /** + * The operation id for the 'As Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___AS_CARTESIAN_PRODUCT = LOOP_ACTION_USAGE___AS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Can Access' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___CAN_ACCESS__FEATURE = LOOP_ACTION_USAGE___CAN_ACCESS__FEATURE; + + /** + * The operation id for the 'Direction For' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___DIRECTION_FOR__TYPE = LOOP_ACTION_USAGE___DIRECTION_FOR__TYPE; + + /** + * The operation id for the 'Is Cartesian Product' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___IS_CARTESIAN_PRODUCT = LOOP_ACTION_USAGE___IS_CARTESIAN_PRODUCT; + + /** + * The operation id for the 'Is Featured Within' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE = LOOP_ACTION_USAGE___IS_FEATURED_WITHIN__TYPE; + + /** + * The operation id for the 'Is Featuring Type' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___IS_FEATURING_TYPE__TYPE = LOOP_ACTION_USAGE___IS_FEATURING_TYPE__TYPE; + + /** + * The operation id for the 'Is Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___IS_OWNED_CROSS_FEATURE = LOOP_ACTION_USAGE___IS_OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Naming Feature' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___NAMING_FEATURE = LOOP_ACTION_USAGE___NAMING_FEATURE; + + /** + * The operation id for the 'Owned Cross Feature' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___OWNED_CROSS_FEATURE = LOOP_ACTION_USAGE___OWNED_CROSS_FEATURE; + + /** + * The operation id for the 'Redefines' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___REDEFINES__FEATURE = LOOP_ACTION_USAGE___REDEFINES__FEATURE; + + /** + * The operation id for the 'Redefines From Library' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING = LOOP_ACTION_USAGE___REDEFINES_FROM_LIBRARY__STRING; + + /** + * The operation id for the 'Subsets Chain' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE = LOOP_ACTION_USAGE___SUBSETS_CHAIN__FEATURE_FEATURE; + + /** + * The operation id for the 'Typing Features' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___TYPING_FEATURES = LOOP_ACTION_USAGE___TYPING_FEATURES; + + /** + * The operation id for the 'Referenced Feature Target' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___REFERENCED_FEATURE_TARGET = LOOP_ACTION_USAGE___REFERENCED_FEATURE_TARGET; + + /** + * The operation id for the 'Argument' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___ARGUMENT__INT = LOOP_ACTION_USAGE___ARGUMENT__INT; + + /** + * The operation id for the 'Input Parameter' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___INPUT_PARAMETER__INT = LOOP_ACTION_USAGE___INPUT_PARAMETER__INT; + + /** + * The operation id for the 'Input Parameters' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___INPUT_PARAMETERS = LOOP_ACTION_USAGE___INPUT_PARAMETERS; + + /** + * The operation id for the 'Is Subaction Usage' operation. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE___IS_SUBACTION_USAGE = LOOP_ACTION_USAGE___IS_SUBACTION_USAGE; + + /** + * The number of operations of the 'While Loop Action Usage' class. + * + * + * @generated + * @ordered + */ + int WHILE_LOOP_ACTION_USAGE_OPERATION_COUNT = LOOP_ACTION_USAGE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.FeatureDirectionKind Feature Direction Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.FeatureDirectionKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureDirectionKind() + * @generated + */ + int FEATURE_DIRECTION_KIND = 175; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.PortionKind Portion Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.PortionKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPortionKind() + * @generated + */ + int PORTION_KIND = 176; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.RequirementConstraintKind Requirement Constraint Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.RequirementConstraintKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRequirementConstraintKind() + * @generated + */ + int REQUIREMENT_CONSTRAINT_KIND = 177; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.StateSubactionKind State Subaction Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.StateSubactionKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStateSubactionKind() + * @generated + */ + int STATE_SUBACTION_KIND = 178; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.TransitionFeatureKind Transition Feature Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.TransitionFeatureKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTransitionFeatureKind() + * @generated + */ + int TRANSITION_FEATURE_KIND = 179; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.TriggerKind Trigger Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.TriggerKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTriggerKind() + * @generated + */ + int TRIGGER_KIND = 180; + + /** + * The meta object id for the '{@link org.omg.sysml.model.sysml.VisibilityKind Visibility Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.VisibilityKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getVisibilityKind() + * @generated + */ + int VISIBILITY_KIND = 181; + + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AcceptActionUsage Accept Action Usage}'. + * + * + * @return the meta object for class 'Accept Action Usage'. + * @see org.omg.sysml.model.sysml.AcceptActionUsage + * @generated + */ + EClass getAcceptActionUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AcceptActionUsage#getPayloadArgument Payload Argument}'. + * + * + * @return the meta object for the reference 'Payload Argument'. + * @see org.omg.sysml.model.sysml.AcceptActionUsage#getPayloadArgument() + * @see #getAcceptActionUsage() + * @generated + */ + EReference getAcceptActionUsage_PayloadArgument(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AcceptActionUsage#getPayloadParameter Payload Parameter}'. + * + * + * @return the meta object for the reference 'Payload Parameter'. + * @see org.omg.sysml.model.sysml.AcceptActionUsage#getPayloadParameter() + * @see #getAcceptActionUsage() + * @generated + */ + EReference getAcceptActionUsage_PayloadParameter(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AcceptActionUsage#getReceiverArgument Receiver Argument}'. + * + * + * @return the meta object for the reference 'Receiver Argument'. + * @see org.omg.sysml.model.sysml.AcceptActionUsage#getReceiverArgument() + * @see #getAcceptActionUsage() + * @generated + */ + EReference getAcceptActionUsage_ReceiverArgument(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.AcceptActionUsage#isTriggerAction() Is Trigger Action}' operation. + * + * + * @return the meta object for the 'Is Trigger Action' operation. + * @see org.omg.sysml.model.sysml.AcceptActionUsage#isTriggerAction() + * @generated + */ + EOperation getAcceptActionUsage__IsTriggerAction(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ActionDefinition Action Definition}'. + * + * + * @return the meta object for class 'Action Definition'. + * @see org.omg.sysml.model.sysml.ActionDefinition + * @generated + */ + EClass getActionDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ActionDefinition#getAction Action}'. + * + * + * @return the meta object for the reference list 'Action'. + * @see org.omg.sysml.model.sysml.ActionDefinition#getAction() + * @see #getActionDefinition() + * @generated + */ + EReference getActionDefinition_Action(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ActionUsage Action Usage}'. + * + * + * @return the meta object for class 'Action Usage'. + * @see org.omg.sysml.model.sysml.ActionUsage + * @generated + */ + EClass getActionUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ActionUsage#getActionDefinition Action Definition}'. + * + * + * @return the meta object for the reference list 'Action Definition'. + * @see org.omg.sysml.model.sysml.ActionUsage#getActionDefinition() + * @see #getActionUsage() + * @generated + */ + EReference getActionUsage_ActionDefinition(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.ActionUsage#argument(int) Argument}' operation. + * + * + * @return the meta object for the 'Argument' operation. + * @see org.omg.sysml.model.sysml.ActionUsage#argument(int) + * @generated + */ + EOperation getActionUsage__Argument__int(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.ActionUsage#inputParameter(int) Input Parameter}' operation. + * + * + * @return the meta object for the 'Input Parameter' operation. + * @see org.omg.sysml.model.sysml.ActionUsage#inputParameter(int) + * @generated + */ + EOperation getActionUsage__InputParameter__int(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.ActionUsage#inputParameters() Input Parameters}' operation. + * + * + * @return the meta object for the 'Input Parameters' operation. + * @see org.omg.sysml.model.sysml.ActionUsage#inputParameters() + * @generated + */ + EOperation getActionUsage__InputParameters(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.ActionUsage#isSubactionUsage() Is Subaction Usage}' operation. + * + * + * @return the meta object for the 'Is Subaction Usage' operation. + * @see org.omg.sysml.model.sysml.ActionUsage#isSubactionUsage() + * @generated + */ + EOperation getActionUsage__IsSubactionUsage(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ActorMembership Actor Membership}'. + * + * + * @return the meta object for class 'Actor Membership'. + * @see org.omg.sysml.model.sysml.ActorMembership + * @generated + */ + EClass getActorMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ActorMembership#getOwnedActorParameter Owned Actor Parameter}'. + * + * + * @return the meta object for the reference 'Owned Actor Parameter'. + * @see org.omg.sysml.model.sysml.ActorMembership#getOwnedActorParameter() + * @see #getActorMembership() + * @generated + */ + EReference getActorMembership_OwnedActorParameter(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AllocationDefinition Allocation Definition}'. + * + * + * @return the meta object for class 'Allocation Definition'. + * @see org.omg.sysml.model.sysml.AllocationDefinition + * @generated + */ + EClass getAllocationDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.AllocationDefinition#getAllocation Allocation}'. + * + * + * @return the meta object for the reference list 'Allocation'. + * @see org.omg.sysml.model.sysml.AllocationDefinition#getAllocation() + * @see #getAllocationDefinition() + * @generated + */ + EReference getAllocationDefinition_Allocation(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AllocationUsage Allocation Usage}'. + * + * + * @return the meta object for class 'Allocation Usage'. + * @see org.omg.sysml.model.sysml.AllocationUsage + * @generated + */ + EClass getAllocationUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.AllocationUsage#getAllocationDefinition Allocation Definition}'. + * + * + * @return the meta object for the reference list 'Allocation Definition'. + * @see org.omg.sysml.model.sysml.AllocationUsage#getAllocationDefinition() + * @see #getAllocationUsage() + * @generated + */ + EReference getAllocationUsage_AllocationDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AnalysisCaseDefinition Analysis Case Definition}'. + * + * + * @return the meta object for class 'Analysis Case Definition'. + * @see org.omg.sysml.model.sysml.AnalysisCaseDefinition + * @generated + */ + EClass getAnalysisCaseDefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AnalysisCaseDefinition#getResultExpression Result Expression}'. + * + * + * @return the meta object for the reference 'Result Expression'. + * @see org.omg.sysml.model.sysml.AnalysisCaseDefinition#getResultExpression() + * @see #getAnalysisCaseDefinition() + * @generated + */ + EReference getAnalysisCaseDefinition_ResultExpression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AnalysisCaseUsage Analysis Case Usage}'. + * + * + * @return the meta object for class 'Analysis Case Usage'. + * @see org.omg.sysml.model.sysml.AnalysisCaseUsage + * @generated + */ + EClass getAnalysisCaseUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AnalysisCaseUsage#getAnalysisCaseDefinition Analysis Case Definition}'. + * + * + * @return the meta object for the reference 'Analysis Case Definition'. + * @see org.omg.sysml.model.sysml.AnalysisCaseUsage#getAnalysisCaseDefinition() + * @see #getAnalysisCaseUsage() + * @generated + */ + EReference getAnalysisCaseUsage_AnalysisCaseDefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AnalysisCaseUsage#getResultExpression Result Expression}'. + * + * + * @return the meta object for the reference 'Result Expression'. + * @see org.omg.sysml.model.sysml.AnalysisCaseUsage#getResultExpression() + * @see #getAnalysisCaseUsage() + * @generated + */ + EReference getAnalysisCaseUsage_ResultExpression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AnnotatingElement Annotating Element}'. + * + * + * @return the meta object for class 'Annotating Element'. + * @see org.omg.sysml.model.sysml.AnnotatingElement + * @generated + */ + EClass getAnnotatingElement(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.AnnotatingElement#getAnnotatedElement Annotated Element}'. + * + * + * @return the meta object for the reference list 'Annotated Element'. + * @see org.omg.sysml.model.sysml.AnnotatingElement#getAnnotatedElement() + * @see #getAnnotatingElement() + * @generated + */ + EReference getAnnotatingElement_AnnotatedElement(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.AnnotatingElement#getAnnotation Annotation}'. + * + * + * @return the meta object for the reference list 'Annotation'. + * @see org.omg.sysml.model.sysml.AnnotatingElement#getAnnotation() + * @see #getAnnotatingElement() + * @generated + */ + EReference getAnnotatingElement_Annotation(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.AnnotatingElement#getOwnedAnnotatingRelationship Owned Annotating Relationship}'. + * + * + * @return the meta object for the reference list 'Owned Annotating Relationship'. + * @see org.omg.sysml.model.sysml.AnnotatingElement#getOwnedAnnotatingRelationship() + * @see #getAnnotatingElement() + * @generated + */ + EReference getAnnotatingElement_OwnedAnnotatingRelationship(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AnnotatingElement#getOwningAnnotatingRelationship Owning Annotating Relationship}'. + * + * + * @return the meta object for the reference 'Owning Annotating Relationship'. + * @see org.omg.sysml.model.sysml.AnnotatingElement#getOwningAnnotatingRelationship() + * @see #getAnnotatingElement() + * @generated + */ + EReference getAnnotatingElement_OwningAnnotatingRelationship(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Annotation Annotation}'. + * + * + * @return the meta object for class 'Annotation'. + * @see org.omg.sysml.model.sysml.Annotation + * @generated + */ + EClass getAnnotation(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Annotation#getAnnotatedElement Annotated Element}'. + * + * + * @return the meta object for the reference 'Annotated Element'. + * @see org.omg.sysml.model.sysml.Annotation#getAnnotatedElement() + * @see #getAnnotation() + * @generated + */ + EReference getAnnotation_AnnotatedElement(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Annotation#getAnnotatingElement Annotating Element}'. + * + * + * @return the meta object for the reference 'Annotating Element'. + * @see org.omg.sysml.model.sysml.Annotation#getAnnotatingElement() + * @see #getAnnotation() + * @generated + */ + EReference getAnnotation_AnnotatingElement(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Annotation#getOwnedAnnotatingElement Owned Annotating Element}'. + * + * + * @return the meta object for the reference 'Owned Annotating Element'. + * @see org.omg.sysml.model.sysml.Annotation#getOwnedAnnotatingElement() + * @see #getAnnotation() + * @generated + */ + EReference getAnnotation_OwnedAnnotatingElement(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Annotation#getOwningAnnotatedElement Owning Annotated Element}'. + * + * + * @return the meta object for the reference 'Owning Annotated Element'. + * @see org.omg.sysml.model.sysml.Annotation#getOwningAnnotatedElement() + * @see #getAnnotation() + * @generated + */ + EReference getAnnotation_OwningAnnotatedElement(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Annotation#getOwningAnnotatingElement Owning Annotating Element}'. + * + * + * @return the meta object for the reference 'Owning Annotating Element'. + * @see org.omg.sysml.model.sysml.Annotation#getOwningAnnotatingElement() + * @see #getAnnotation() + * @generated + */ + EReference getAnnotation_OwningAnnotatingElement(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AssertConstraintUsage Assert Constraint Usage}'. + * + * + * @return the meta object for class 'Assert Constraint Usage'. + * @see org.omg.sysml.model.sysml.AssertConstraintUsage + * @generated + */ + EClass getAssertConstraintUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AssertConstraintUsage#getAssertedConstraint Asserted Constraint}'. + * + * + * @return the meta object for the reference 'Asserted Constraint'. + * @see org.omg.sysml.model.sysml.AssertConstraintUsage#getAssertedConstraint() + * @see #getAssertConstraintUsage() + * @generated + */ + EReference getAssertConstraintUsage_AssertedConstraint(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AssignmentActionUsage Assignment Action Usage}'. + * + * + * @return the meta object for class 'Assignment Action Usage'. + * @see org.omg.sysml.model.sysml.AssignmentActionUsage + * @generated + */ + EClass getAssignmentActionUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AssignmentActionUsage#getReferent Referent}'. + * + * + * @return the meta object for the reference 'Referent'. + * @see org.omg.sysml.model.sysml.AssignmentActionUsage#getReferent() + * @see #getAssignmentActionUsage() + * @generated + */ + EReference getAssignmentActionUsage_Referent(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AssignmentActionUsage#getTargetArgument Target Argument}'. + * + * + * @return the meta object for the reference 'Target Argument'. + * @see org.omg.sysml.model.sysml.AssignmentActionUsage#getTargetArgument() + * @see #getAssignmentActionUsage() + * @generated + */ + EReference getAssignmentActionUsage_TargetArgument(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.AssignmentActionUsage#getValueExpression Value Expression}'. + * + * + * @return the meta object for the reference 'Value Expression'. + * @see org.omg.sysml.model.sysml.AssignmentActionUsage#getValueExpression() + * @see #getAssignmentActionUsage() + * @generated + */ + EReference getAssignmentActionUsage_ValueExpression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Association Association}'. + * + * + * @return the meta object for class 'Association'. + * @see org.omg.sysml.model.sysml.Association + * @generated + */ + EClass getAssociation(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Association#getAssociationEnd Association End}'. + * + * + * @return the meta object for the reference list 'Association End'. + * @see org.omg.sysml.model.sysml.Association#getAssociationEnd() + * @see #getAssociation() + * @generated + */ + EReference getAssociation_AssociationEnd(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Association#getRelatedType Related Type}'. + * + * + * @return the meta object for the reference list 'Related Type'. + * @see org.omg.sysml.model.sysml.Association#getRelatedType() + * @see #getAssociation() + * @generated + */ + EReference getAssociation_RelatedType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Association#getSourceType Source Type}'. + * + * + * @return the meta object for the reference 'Source Type'. + * @see org.omg.sysml.model.sysml.Association#getSourceType() + * @see #getAssociation() + * @generated + */ + EReference getAssociation_SourceType(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Association#getTargetType Target Type}'. + * + * + * @return the meta object for the reference list 'Target Type'. + * @see org.omg.sysml.model.sysml.Association#getTargetType() + * @see #getAssociation() + * @generated + */ + EReference getAssociation_TargetType(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AssociationStructure Association Structure}'. + * + * + * @return the meta object for class 'Association Structure'. + * @see org.omg.sysml.model.sysml.AssociationStructure + * @generated + */ + EClass getAssociationStructure(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AttributeDefinition Attribute Definition}'. + * + * + * @return the meta object for class 'Attribute Definition'. + * @see org.omg.sysml.model.sysml.AttributeDefinition + * @generated + */ + EClass getAttributeDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.AttributeUsage Attribute Usage}'. + * + * + * @return the meta object for class 'Attribute Usage'. + * @see org.omg.sysml.model.sysml.AttributeUsage + * @generated + */ + EClass getAttributeUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.AttributeUsage#getAttributeDefinition Attribute Definition}'. + * + * + * @return the meta object for the reference list 'Attribute Definition'. + * @see org.omg.sysml.model.sysml.AttributeUsage#getAttributeDefinition() + * @see #getAttributeUsage() + * @generated + */ + EReference getAttributeUsage_AttributeDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Behavior Behavior}'. + * + * + * @return the meta object for class 'Behavior'. + * @see org.omg.sysml.model.sysml.Behavior + * @generated + */ + EClass getBehavior(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Behavior#getParameter Parameter}'. + * + * + * @return the meta object for the reference list 'Parameter'. + * @see org.omg.sysml.model.sysml.Behavior#getParameter() + * @see #getBehavior() + * @generated + */ + EReference getBehavior_Parameter(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Behavior#getStep Step}'. + * + * + * @return the meta object for the reference list 'Step'. + * @see org.omg.sysml.model.sysml.Behavior#getStep() + * @see #getBehavior() + * @generated + */ + EReference getBehavior_Step(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.BindingConnector Binding Connector}'. + * + * + * @return the meta object for class 'Binding Connector'. + * @see org.omg.sysml.model.sysml.BindingConnector + * @generated + */ + EClass getBindingConnector(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.BindingConnectorAsUsage Binding Connector As Usage}'. + * + * + * @return the meta object for class 'Binding Connector As Usage'. + * @see org.omg.sysml.model.sysml.BindingConnectorAsUsage + * @generated + */ + EClass getBindingConnectorAsUsage(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.BooleanExpression Boolean Expression}'. + * + * + * @return the meta object for class 'Boolean Expression'. + * @see org.omg.sysml.model.sysml.BooleanExpression + * @generated + */ + EClass getBooleanExpression(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.BooleanExpression#getPredicate Predicate}'. + * + * + * @return the meta object for the reference 'Predicate'. + * @see org.omg.sysml.model.sysml.BooleanExpression#getPredicate() + * @see #getBooleanExpression() + * @generated + */ + EReference getBooleanExpression_Predicate(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.CalculationDefinition Calculation Definition}'. + * + * + * @return the meta object for class 'Calculation Definition'. + * @see org.omg.sysml.model.sysml.CalculationDefinition + * @generated + */ + EClass getCalculationDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.CalculationDefinition#getCalculation Calculation}'. + * + * + * @return the meta object for the reference list 'Calculation'. + * @see org.omg.sysml.model.sysml.CalculationDefinition#getCalculation() + * @see #getCalculationDefinition() + * @generated + */ + EReference getCalculationDefinition_Calculation(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.CalculationUsage Calculation Usage}'. + * + * + * @return the meta object for class 'Calculation Usage'. + * @see org.omg.sysml.model.sysml.CalculationUsage + * @generated + */ + EClass getCalculationUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.CalculationUsage#getCalculationDefinition Calculation Definition}'. + * + * + * @return the meta object for the reference 'Calculation Definition'. + * @see org.omg.sysml.model.sysml.CalculationUsage#getCalculationDefinition() + * @see #getCalculationUsage() + * @generated + */ + EReference getCalculationUsage_CalculationDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.CaseDefinition Case Definition}'. + * + * + * @return the meta object for class 'Case Definition'. + * @see org.omg.sysml.model.sysml.CaseDefinition + * @generated + */ + EClass getCaseDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.CaseDefinition#getActorParameter Actor Parameter}'. + * + * + * @return the meta object for the reference list 'Actor Parameter'. + * @see org.omg.sysml.model.sysml.CaseDefinition#getActorParameter() + * @see #getCaseDefinition() + * @generated + */ + EReference getCaseDefinition_ActorParameter(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.CaseDefinition#getObjectiveRequirement Objective Requirement}'. + * + * + * @return the meta object for the reference 'Objective Requirement'. + * @see org.omg.sysml.model.sysml.CaseDefinition#getObjectiveRequirement() + * @see #getCaseDefinition() + * @generated + */ + EReference getCaseDefinition_ObjectiveRequirement(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.CaseDefinition#getSubjectParameter Subject Parameter}'. + * + * + * @return the meta object for the reference 'Subject Parameter'. + * @see org.omg.sysml.model.sysml.CaseDefinition#getSubjectParameter() + * @see #getCaseDefinition() + * @generated + */ + EReference getCaseDefinition_SubjectParameter(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.CaseUsage Case Usage}'. + * + * + * @return the meta object for class 'Case Usage'. + * @see org.omg.sysml.model.sysml.CaseUsage + * @generated + */ + EClass getCaseUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.CaseUsage#getActorParameter Actor Parameter}'. + * + * + * @return the meta object for the reference list 'Actor Parameter'. + * @see org.omg.sysml.model.sysml.CaseUsage#getActorParameter() + * @see #getCaseUsage() + * @generated + */ + EReference getCaseUsage_ActorParameter(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.CaseUsage#getCaseDefinition Case Definition}'. + * + * + * @return the meta object for the reference 'Case Definition'. + * @see org.omg.sysml.model.sysml.CaseUsage#getCaseDefinition() + * @see #getCaseUsage() + * @generated + */ + EReference getCaseUsage_CaseDefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.CaseUsage#getObjectiveRequirement Objective Requirement}'. + * + * + * @return the meta object for the reference 'Objective Requirement'. + * @see org.omg.sysml.model.sysml.CaseUsage#getObjectiveRequirement() + * @see #getCaseUsage() + * @generated + */ + EReference getCaseUsage_ObjectiveRequirement(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.CaseUsage#getSubjectParameter Subject Parameter}'. + * + * + * @return the meta object for the reference 'Subject Parameter'. + * @see org.omg.sysml.model.sysml.CaseUsage#getSubjectParameter() + * @see #getCaseUsage() + * @generated + */ + EReference getCaseUsage_SubjectParameter(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Class Class}'. + * + * + * @return the meta object for class 'Class'. + * @see org.omg.sysml.model.sysml.Class + * @generated + */ + EClass getClass_(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Classifier Classifier}'. + * + * + * @return the meta object for class 'Classifier'. + * @see org.omg.sysml.model.sysml.Classifier + * @generated + */ + EClass getClassifier(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Classifier#getOwnedSubclassification Owned Subclassification}'. + * + * + * @return the meta object for the reference list 'Owned Subclassification'. + * @see org.omg.sysml.model.sysml.Classifier#getOwnedSubclassification() + * @see #getClassifier() + * @generated + */ + EReference getClassifier_OwnedSubclassification(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.CollectExpression Collect Expression}'. + * + * + * @return the meta object for class 'Collect Expression'. + * @see org.omg.sysml.model.sysml.CollectExpression + * @generated + */ + EClass getCollectExpression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Comment Comment}'. + * + * + * @return the meta object for class 'Comment'. + * @see org.omg.sysml.model.sysml.Comment + * @generated + */ + EClass getComment(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Comment#getBody Body}'. + * + * + * @return the meta object for the attribute 'Body'. + * @see org.omg.sysml.model.sysml.Comment#getBody() + * @see #getComment() + * @generated + */ + EAttribute getComment_Body(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Comment#getLocale Locale}'. + * + * + * @return the meta object for the attribute 'Locale'. + * @see org.omg.sysml.model.sysml.Comment#getLocale() + * @see #getComment() + * @generated + */ + EAttribute getComment_Locale(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ConcernDefinition Concern Definition}'. + * + * + * @return the meta object for class 'Concern Definition'. + * @see org.omg.sysml.model.sysml.ConcernDefinition + * @generated + */ + EClass getConcernDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ConcernUsage Concern Usage}'. + * + * + * @return the meta object for class 'Concern Usage'. + * @see org.omg.sysml.model.sysml.ConcernUsage + * @generated + */ + EClass getConcernUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ConcernUsage#getConcernDefinition Concern Definition}'. + * + * + * @return the meta object for the reference 'Concern Definition'. + * @see org.omg.sysml.model.sysml.ConcernUsage#getConcernDefinition() + * @see #getConcernUsage() + * @generated + */ + EReference getConcernUsage_ConcernDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ConjugatedPortDefinition Conjugated Port Definition}'. + * + * + * @return the meta object for class 'Conjugated Port Definition'. + * @see org.omg.sysml.model.sysml.ConjugatedPortDefinition + * @generated + */ + EClass getConjugatedPortDefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOriginalPortDefinition Original Port Definition}'. + * + * + * @return the meta object for the reference 'Original Port Definition'. + * @see org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOriginalPortDefinition() + * @see #getConjugatedPortDefinition() + * @generated + */ + EReference getConjugatedPortDefinition_OriginalPortDefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOwnedPortConjugator Owned Port Conjugator}'. + * + * + * @return the meta object for the reference 'Owned Port Conjugator'. + * @see org.omg.sysml.model.sysml.ConjugatedPortDefinition#getOwnedPortConjugator() + * @see #getConjugatedPortDefinition() + * @generated + */ + EReference getConjugatedPortDefinition_OwnedPortConjugator(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ConjugatedPortTyping Conjugated Port Typing}'. + * + * + * @return the meta object for class 'Conjugated Port Typing'. + * @see org.omg.sysml.model.sysml.ConjugatedPortTyping + * @generated + */ + EClass getConjugatedPortTyping(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ConjugatedPortTyping#getConjugatedPortDefinition Conjugated Port Definition}'. + * + * + * @return the meta object for the reference 'Conjugated Port Definition'. + * @see org.omg.sysml.model.sysml.ConjugatedPortTyping#getConjugatedPortDefinition() + * @see #getConjugatedPortTyping() + * @generated + */ + EReference getConjugatedPortTyping_ConjugatedPortDefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ConjugatedPortTyping#getPortDefinition Port Definition}'. + * + * + * @return the meta object for the reference 'Port Definition'. + * @see org.omg.sysml.model.sysml.ConjugatedPortTyping#getPortDefinition() + * @see #getConjugatedPortTyping() + * @generated + */ + EReference getConjugatedPortTyping_PortDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Conjugation Conjugation}'. + * + * + * @return the meta object for class 'Conjugation'. + * @see org.omg.sysml.model.sysml.Conjugation + * @generated + */ + EClass getConjugation(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Conjugation#getConjugatedType Conjugated Type}'. + * + * + * @return the meta object for the reference 'Conjugated Type'. + * @see org.omg.sysml.model.sysml.Conjugation#getConjugatedType() + * @see #getConjugation() + * @generated + */ + EReference getConjugation_ConjugatedType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Conjugation#getOriginalType Original Type}'. + * + * + * @return the meta object for the reference 'Original Type'. + * @see org.omg.sysml.model.sysml.Conjugation#getOriginalType() + * @see #getConjugation() + * @generated + */ + EReference getConjugation_OriginalType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Conjugation#getOwningType Owning Type}'. + * + * + * @return the meta object for the reference 'Owning Type'. + * @see org.omg.sysml.model.sysml.Conjugation#getOwningType() + * @see #getConjugation() + * @generated + */ + EReference getConjugation_OwningType(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ConnectionDefinition Connection Definition}'. + * + * + * @return the meta object for class 'Connection Definition'. + * @see org.omg.sysml.model.sysml.ConnectionDefinition + * @generated + */ + EClass getConnectionDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ConnectionDefinition#getConnectionEnd Connection End}'. + * + * + * @return the meta object for the reference list 'Connection End'. + * @see org.omg.sysml.model.sysml.ConnectionDefinition#getConnectionEnd() + * @see #getConnectionDefinition() + * @generated + */ + EReference getConnectionDefinition_ConnectionEnd(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ConnectionUsage Connection Usage}'. + * + * + * @return the meta object for class 'Connection Usage'. + * @see org.omg.sysml.model.sysml.ConnectionUsage + * @generated + */ + EClass getConnectionUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ConnectionUsage#getConnectionDefinition Connection Definition}'. + * + * + * @return the meta object for the reference list 'Connection Definition'. + * @see org.omg.sysml.model.sysml.ConnectionUsage#getConnectionDefinition() + * @see #getConnectionUsage() + * @generated + */ + EReference getConnectionUsage_ConnectionDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Connector Connector}'. + * + * + * @return the meta object for class 'Connector'. + * @see org.omg.sysml.model.sysml.Connector + * @generated + */ + EClass getConnector(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Connector#getAssociation Association}'. + * + * + * @return the meta object for the reference list 'Association'. + * @see org.omg.sysml.model.sysml.Connector#getAssociation() + * @see #getConnector() + * @generated + */ + EReference getConnector_Association(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Connector#getConnectorEnd Connector End}'. + * + * + * @return the meta object for the reference list 'Connector End'. + * @see org.omg.sysml.model.sysml.Connector#getConnectorEnd() + * @see #getConnector() + * @generated + */ + EReference getConnector_ConnectorEnd(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Connector#getDefaultFeaturingType Default Featuring Type}'. + * + * + * @return the meta object for the reference 'Default Featuring Type'. + * @see org.omg.sysml.model.sysml.Connector#getDefaultFeaturingType() + * @see #getConnector() + * @generated + */ + EReference getConnector_DefaultFeaturingType(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Connector#getRelatedFeature Related Feature}'. + * + * + * @return the meta object for the reference list 'Related Feature'. + * @see org.omg.sysml.model.sysml.Connector#getRelatedFeature() + * @see #getConnector() + * @generated + */ + EReference getConnector_RelatedFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Connector#getSourceFeature Source Feature}'. + * + * + * @return the meta object for the reference 'Source Feature'. + * @see org.omg.sysml.model.sysml.Connector#getSourceFeature() + * @see #getConnector() + * @generated + */ + EReference getConnector_SourceFeature(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Connector#getTargetFeature Target Feature}'. + * + * + * @return the meta object for the reference list 'Target Feature'. + * @see org.omg.sysml.model.sysml.Connector#getTargetFeature() + * @see #getConnector() + * @generated + */ + EReference getConnector_TargetFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ConnectorAsUsage Connector As Usage}'. + * + * + * @return the meta object for class 'Connector As Usage'. + * @see org.omg.sysml.model.sysml.ConnectorAsUsage + * @generated + */ + EClass getConnectorAsUsage(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ConstraintDefinition Constraint Definition}'. + * + * + * @return the meta object for class 'Constraint Definition'. + * @see org.omg.sysml.model.sysml.ConstraintDefinition + * @generated + */ + EClass getConstraintDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ConstraintUsage Constraint Usage}'. + * + * + * @return the meta object for class 'Constraint Usage'. + * @see org.omg.sysml.model.sysml.ConstraintUsage + * @generated + */ + EClass getConstraintUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ConstraintUsage#getConstraintDefinition Constraint Definition}'. + * + * + * @return the meta object for the reference 'Constraint Definition'. + * @see org.omg.sysml.model.sysml.ConstraintUsage#getConstraintDefinition() + * @see #getConstraintUsage() + * @generated + */ + EReference getConstraintUsage_ConstraintDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ConstructorExpression Constructor Expression}'. + * + * + * @return the meta object for class 'Constructor Expression'. + * @see org.omg.sysml.model.sysml.ConstructorExpression + * @generated + */ + EClass getConstructorExpression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ControlNode Control Node}'. + * + * + * @return the meta object for class 'Control Node'. + * @see org.omg.sysml.model.sysml.ControlNode + * @generated + */ + EClass getControlNode(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.ControlNode#multiplicityHasBounds(org.omg.sysml.model.sysml.Multiplicity, int, int) Multiplicity Has Bounds}' operation. + * + * + * @return the meta object for the 'Multiplicity Has Bounds' operation. + * @see org.omg.sysml.model.sysml.ControlNode#multiplicityHasBounds(org.omg.sysml.model.sysml.Multiplicity, int, int) + * @generated + */ + EOperation getControlNode__MultiplicityHasBounds__Multiplicity_int_int(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.CrossSubsetting Cross Subsetting}'. + * + * + * @return the meta object for class 'Cross Subsetting'. + * @see org.omg.sysml.model.sysml.CrossSubsetting + * @generated + */ + EClass getCrossSubsetting(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.CrossSubsetting#getCrossedFeature Crossed Feature}'. + * + * + * @return the meta object for the reference 'Crossed Feature'. + * @see org.omg.sysml.model.sysml.CrossSubsetting#getCrossedFeature() + * @see #getCrossSubsetting() + * @generated + */ + EReference getCrossSubsetting_CrossedFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.CrossSubsetting#getCrossingFeature Crossing Feature}'. + * + * + * @return the meta object for the reference 'Crossing Feature'. + * @see org.omg.sysml.model.sysml.CrossSubsetting#getCrossingFeature() + * @see #getCrossSubsetting() + * @generated + */ + EReference getCrossSubsetting_CrossingFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.DataType Data Type}'. + * + * + * @return the meta object for class 'Data Type'. + * @see org.omg.sysml.model.sysml.DataType + * @generated + */ + EClass getDataType(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.DecisionNode Decision Node}'. + * + * + * @return the meta object for class 'Decision Node'. + * @see org.omg.sysml.model.sysml.DecisionNode + * @generated + */ + EClass getDecisionNode(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Definition Definition}'. + * + * + * @return the meta object for class 'Definition'. + * @see org.omg.sysml.model.sysml.Definition + * @generated + */ + EClass getDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Definition#isIsVariation Is Variation}'. + * + * + * @return the meta object for the attribute 'Is Variation'. + * @see org.omg.sysml.model.sysml.Definition#isIsVariation() + * @see #getDefinition() + * @generated + */ + EAttribute getDefinition_IsVariation(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getDirectedUsage Directed Usage}'. + * + * + * @return the meta object for the reference list 'Directed Usage'. + * @see org.omg.sysml.model.sysml.Definition#getDirectedUsage() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_DirectedUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedAction Owned Action}'. + * + * + * @return the meta object for the reference list 'Owned Action'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedAction() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedAction(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedAllocation Owned Allocation}'. + * + * + * @return the meta object for the reference list 'Owned Allocation'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedAllocation() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedAllocation(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedAnalysisCase Owned Analysis Case}'. + * + * + * @return the meta object for the reference list 'Owned Analysis Case'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedAnalysisCase() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedAnalysisCase(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedAttribute Owned Attribute}'. + * + * + * @return the meta object for the reference list 'Owned Attribute'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedAttribute() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedAttribute(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedCalculation Owned Calculation}'. + * + * + * @return the meta object for the reference list 'Owned Calculation'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedCalculation() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedCalculation(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedCase Owned Case}'. + * + * + * @return the meta object for the reference list 'Owned Case'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedCase() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedCase(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedConcern Owned Concern}'. + * + * + * @return the meta object for the reference list 'Owned Concern'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedConcern() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedConcern(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedConnection Owned Connection}'. + * + * + * @return the meta object for the reference list 'Owned Connection'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedConnection() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedConnection(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedConstraint Owned Constraint}'. + * + * + * @return the meta object for the reference list 'Owned Constraint'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedConstraint() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedConstraint(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedEnumeration Owned Enumeration}'. + * + * + * @return the meta object for the reference list 'Owned Enumeration'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedEnumeration() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedEnumeration(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedFlow Owned Flow}'. + * + * + * @return the meta object for the reference list 'Owned Flow'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedFlow() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedFlow(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedInterface Owned Interface}'. + * + * + * @return the meta object for the reference list 'Owned Interface'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedInterface() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedInterface(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedItem Owned Item}'. + * + * + * @return the meta object for the reference list 'Owned Item'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedItem() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedItem(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedMetadata Owned Metadata}'. + * + * + * @return the meta object for the reference list 'Owned Metadata'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedMetadata() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedMetadata(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedOccurrence Owned Occurrence}'. + * + * + * @return the meta object for the reference list 'Owned Occurrence'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedOccurrence() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedOccurrence(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedPart Owned Part}'. + * + * + * @return the meta object for the reference list 'Owned Part'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedPart() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedPart(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedPort Owned Port}'. + * + * + * @return the meta object for the reference list 'Owned Port'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedPort() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedPort(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedReference Owned Reference}'. + * + * + * @return the meta object for the reference list 'Owned Reference'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedReference() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedReference(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedRendering Owned Rendering}'. + * + * + * @return the meta object for the reference list 'Owned Rendering'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedRendering() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedRendering(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedRequirement Owned Requirement}'. + * + * + * @return the meta object for the reference list 'Owned Requirement'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedRequirement() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedRequirement(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedState Owned State}'. + * + * + * @return the meta object for the reference list 'Owned State'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedState() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedState(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedTransition Owned Transition}'. + * + * + * @return the meta object for the reference list 'Owned Transition'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedTransition() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedTransition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedUsage Owned Usage}'. + * + * + * @return the meta object for the reference list 'Owned Usage'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedUsage() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedUseCase Owned Use Case}'. + * + * + * @return the meta object for the reference list 'Owned Use Case'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedUseCase() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedUseCase(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedVerificationCase Owned Verification Case}'. + * + * + * @return the meta object for the reference list 'Owned Verification Case'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedVerificationCase() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedVerificationCase(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedView Owned View}'. + * + * + * @return the meta object for the reference list 'Owned View'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedView() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedView(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getOwnedViewpoint Owned Viewpoint}'. + * + * + * @return the meta object for the reference list 'Owned Viewpoint'. + * @see org.omg.sysml.model.sysml.Definition#getOwnedViewpoint() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_OwnedViewpoint(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getUsage Usage}'. + * + * + * @return the meta object for the reference list 'Usage'. + * @see org.omg.sysml.model.sysml.Definition#getUsage() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_Usage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getVariant Variant}'. + * + * + * @return the meta object for the reference list 'Variant'. + * @see org.omg.sysml.model.sysml.Definition#getVariant() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_Variant(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Definition#getVariantMembership Variant Membership}'. + * + * + * @return the meta object for the reference list 'Variant Membership'. + * @see org.omg.sysml.model.sysml.Definition#getVariantMembership() + * @see #getDefinition() + * @generated + */ + EReference getDefinition_VariantMembership(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Dependency Dependency}'. + * + * + * @return the meta object for class 'Dependency'. + * @see org.omg.sysml.model.sysml.Dependency + * @generated + */ + EClass getDependency(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Dependency#getClient Client}'. + * + * + * @return the meta object for the reference list 'Client'. + * @see org.omg.sysml.model.sysml.Dependency#getClient() + * @see #getDependency() + * @generated + */ + EReference getDependency_Client(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Dependency#getSupplier Supplier}'. + * + * + * @return the meta object for the reference list 'Supplier'. + * @see org.omg.sysml.model.sysml.Dependency#getSupplier() + * @see #getDependency() + * @generated + */ + EReference getDependency_Supplier(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Differencing Differencing}'. + * + * + * @return the meta object for class 'Differencing'. + * @see org.omg.sysml.model.sysml.Differencing + * @generated + */ + EClass getDifferencing(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Differencing#getDifferencingType Differencing Type}'. + * + * + * @return the meta object for the reference 'Differencing Type'. + * @see org.omg.sysml.model.sysml.Differencing#getDifferencingType() + * @see #getDifferencing() + * @generated + */ + EReference getDifferencing_DifferencingType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Differencing#getTypeDifferenced Type Differenced}'. + * + * + * @return the meta object for the reference 'Type Differenced'. + * @see org.omg.sysml.model.sysml.Differencing#getTypeDifferenced() + * @see #getDifferencing() + * @generated + */ + EReference getDifferencing_TypeDifferenced(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Disjoining Disjoining}'. + * + * + * @return the meta object for class 'Disjoining'. + * @see org.omg.sysml.model.sysml.Disjoining + * @generated + */ + EClass getDisjoining(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Disjoining#getDisjoiningType Disjoining Type}'. + * + * + * @return the meta object for the reference 'Disjoining Type'. + * @see org.omg.sysml.model.sysml.Disjoining#getDisjoiningType() + * @see #getDisjoining() + * @generated + */ + EReference getDisjoining_DisjoiningType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Disjoining#getOwningType Owning Type}'. + * + * + * @return the meta object for the reference 'Owning Type'. + * @see org.omg.sysml.model.sysml.Disjoining#getOwningType() + * @see #getDisjoining() + * @generated + */ + EReference getDisjoining_OwningType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Disjoining#getTypeDisjoined Type Disjoined}'. + * + * + * @return the meta object for the reference 'Type Disjoined'. + * @see org.omg.sysml.model.sysml.Disjoining#getTypeDisjoined() + * @see #getDisjoining() + * @generated + */ + EReference getDisjoining_TypeDisjoined(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Documentation Documentation}'. + * + * + * @return the meta object for class 'Documentation'. + * @see org.omg.sysml.model.sysml.Documentation + * @generated + */ + EClass getDocumentation(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Documentation#getDocumentedElement Documented Element}'. + * + * + * @return the meta object for the reference 'Documented Element'. + * @see org.omg.sysml.model.sysml.Documentation#getDocumentedElement() + * @see #getDocumentation() + * @generated + */ + EReference getDocumentation_DocumentedElement(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Element Element}'. + * + * + * @return the meta object for class 'Element'. + * @see org.omg.sysml.model.sysml.Element + * @generated + */ + EClass getElement(); + + /** + * Returns the meta object for the attribute list '{@link org.omg.sysml.model.sysml.Element#getAliasIds Alias Ids}'. + * + * + * @return the meta object for the attribute list 'Alias Ids'. + * @see org.omg.sysml.model.sysml.Element#getAliasIds() + * @see #getElement() + * @generated + */ + EAttribute getElement_AliasIds(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Element#getDeclaredName Declared Name}'. + * + * + * @return the meta object for the attribute 'Declared Name'. + * @see org.omg.sysml.model.sysml.Element#getDeclaredName() + * @see #getElement() + * @generated + */ + EAttribute getElement_DeclaredName(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Element#getDeclaredShortName Declared Short Name}'. + * + * + * @return the meta object for the attribute 'Declared Short Name'. + * @see org.omg.sysml.model.sysml.Element#getDeclaredShortName() + * @see #getElement() + * @generated + */ + EAttribute getElement_DeclaredShortName(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Element#getElementId Element Id}'. + * + * + * @return the meta object for the attribute 'Element Id'. + * @see org.omg.sysml.model.sysml.Element#getElementId() + * @see #getElement() + * @generated + */ + EAttribute getElement_ElementId(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Element#isIsImpliedIncluded Is Implied Included}'. + * + * + * @return the meta object for the attribute 'Is Implied Included'. + * @see org.omg.sysml.model.sysml.Element#isIsImpliedIncluded() + * @see #getElement() + * @generated + */ + EAttribute getElement_IsImpliedIncluded(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Element#isIsLibraryElement Is Library Element}'. + * + * + * @return the meta object for the attribute 'Is Library Element'. + * @see org.omg.sysml.model.sysml.Element#isIsLibraryElement() + * @see #getElement() + * @generated + */ + EAttribute getElement_IsLibraryElement(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Element#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see org.omg.sysml.model.sysml.Element#getName() + * @see #getElement() + * @generated + */ + EAttribute getElement_Name(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Element#getQualifiedName Qualified Name}'. + * + * + * @return the meta object for the attribute 'Qualified Name'. + * @see org.omg.sysml.model.sysml.Element#getQualifiedName() + * @see #getElement() + * @generated + */ + EAttribute getElement_QualifiedName(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Element#getShortName Short Name}'. + * + * + * @return the meta object for the attribute 'Short Name'. + * @see org.omg.sysml.model.sysml.Element#getShortName() + * @see #getElement() + * @generated + */ + EAttribute getElement_ShortName(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Element#getDocumentation Documentation}'. + * + * + * @return the meta object for the reference list 'Documentation'. + * @see org.omg.sysml.model.sysml.Element#getDocumentation() + * @see #getElement() + * @generated + */ + EReference getElement_Documentation(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Element#getOwnedAnnotation Owned Annotation}'. + * + * + * @return the meta object for the reference list 'Owned Annotation'. + * @see org.omg.sysml.model.sysml.Element#getOwnedAnnotation() + * @see #getElement() + * @generated + */ + EReference getElement_OwnedAnnotation(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Element#getOwnedElement Owned Element}'. + * + * + * @return the meta object for the reference list 'Owned Element'. + * @see org.omg.sysml.model.sysml.Element#getOwnedElement() + * @see #getElement() + * @generated + */ + EReference getElement_OwnedElement(); + + /** + * Returns the meta object for the containment reference list '{@link org.omg.sysml.model.sysml.Element#getOwnedRelationship Owned Relationship}'. + * + * + * @return the meta object for the containment reference list 'Owned Relationship'. + * @see org.omg.sysml.model.sysml.Element#getOwnedRelationship() + * @see #getElement() + * @generated + */ + EReference getElement_OwnedRelationship(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Element#getOwner Owner}'. + * + * + * @return the meta object for the reference 'Owner'. + * @see org.omg.sysml.model.sysml.Element#getOwner() + * @see #getElement() + * @generated + */ + EReference getElement_Owner(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Element#getOwningMembership Owning Membership}'. + * + * + * @return the meta object for the reference 'Owning Membership'. + * @see org.omg.sysml.model.sysml.Element#getOwningMembership() + * @see #getElement() + * @generated + */ + EReference getElement_OwningMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Element#getOwningNamespace Owning Namespace}'. + * + * + * @return the meta object for the reference 'Owning Namespace'. + * @see org.omg.sysml.model.sysml.Element#getOwningNamespace() + * @see #getElement() + * @generated + */ + EReference getElement_OwningNamespace(); + + /** + * Returns the meta object for the container reference '{@link org.omg.sysml.model.sysml.Element#getOwningRelationship Owning Relationship}'. + * + * + * @return the meta object for the container reference 'Owning Relationship'. + * @see org.omg.sysml.model.sysml.Element#getOwningRelationship() + * @see #getElement() + * @generated + */ + EReference getElement_OwningRelationship(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Element#getTextualRepresentation Textual Representation}'. + * + * + * @return the meta object for the reference list 'Textual Representation'. + * @see org.omg.sysml.model.sysml.Element#getTextualRepresentation() + * @see #getElement() + * @generated + */ + EReference getElement_TextualRepresentation(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Element#effectiveName() Effective Name}' operation. + * + * + * @return the meta object for the 'Effective Name' operation. + * @see org.omg.sysml.model.sysml.Element#effectiveName() + * @generated + */ + EOperation getElement__EffectiveName(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Element#effectiveShortName() Effective Short Name}' operation. + * + * + * @return the meta object for the 'Effective Short Name' operation. + * @see org.omg.sysml.model.sysml.Element#effectiveShortName() + * @generated + */ + EOperation getElement__EffectiveShortName(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Element#escapedName() Escaped Name}' operation. + * + * + * @return the meta object for the 'Escaped Name' operation. + * @see org.omg.sysml.model.sysml.Element#escapedName() + * @generated + */ + EOperation getElement__EscapedName(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Element#libraryNamespace() Library Namespace}' operation. + * + * + * @return the meta object for the 'Library Namespace' operation. + * @see org.omg.sysml.model.sysml.Element#libraryNamespace() + * @generated + */ + EOperation getElement__LibraryNamespace(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Element#path() Path}' operation. + * + * + * @return the meta object for the 'Path' operation. + * @see org.omg.sysml.model.sysml.Element#path() + * @generated + */ + EOperation getElement__Path(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ElementFilterMembership Element Filter Membership}'. + * + * + * @return the meta object for class 'Element Filter Membership'. + * @see org.omg.sysml.model.sysml.ElementFilterMembership + * @generated + */ + EClass getElementFilterMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ElementFilterMembership#getCondition Condition}'. + * + * + * @return the meta object for the reference 'Condition'. + * @see org.omg.sysml.model.sysml.ElementFilterMembership#getCondition() + * @see #getElementFilterMembership() + * @generated + */ + EReference getElementFilterMembership_Condition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.EndFeatureMembership End Feature Membership}'. + * + * + * @return the meta object for class 'End Feature Membership'. + * @see org.omg.sysml.model.sysml.EndFeatureMembership + * @generated + */ + EClass getEndFeatureMembership(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.EnumerationDefinition Enumeration Definition}'. + * + * + * @return the meta object for class 'Enumeration Definition'. + * @see org.omg.sysml.model.sysml.EnumerationDefinition + * @generated + */ + EClass getEnumerationDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.EnumerationDefinition#getEnumeratedValue Enumerated Value}'. + * + * + * @return the meta object for the reference list 'Enumerated Value'. + * @see org.omg.sysml.model.sysml.EnumerationDefinition#getEnumeratedValue() + * @see #getEnumerationDefinition() + * @generated + */ + EReference getEnumerationDefinition_EnumeratedValue(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.EnumerationUsage Enumeration Usage}'. + * + * + * @return the meta object for class 'Enumeration Usage'. + * @see org.omg.sysml.model.sysml.EnumerationUsage + * @generated + */ + EClass getEnumerationUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.EnumerationUsage#getEnumerationDefinition Enumeration Definition}'. + * + * + * @return the meta object for the reference 'Enumeration Definition'. + * @see org.omg.sysml.model.sysml.EnumerationUsage#getEnumerationDefinition() + * @see #getEnumerationUsage() + * @generated + */ + EReference getEnumerationUsage_EnumerationDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.EventOccurrenceUsage Event Occurrence Usage}'. + * + * + * @return the meta object for class 'Event Occurrence Usage'. + * @see org.omg.sysml.model.sysml.EventOccurrenceUsage + * @generated + */ + EClass getEventOccurrenceUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.EventOccurrenceUsage#getEventOccurrence Event Occurrence}'. + * + * + * @return the meta object for the reference 'Event Occurrence'. + * @see org.omg.sysml.model.sysml.EventOccurrenceUsage#getEventOccurrence() + * @see #getEventOccurrenceUsage() + * @generated + */ + EReference getEventOccurrenceUsage_EventOccurrence(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ExhibitStateUsage Exhibit State Usage}'. + * + * + * @return the meta object for class 'Exhibit State Usage'. + * @see org.omg.sysml.model.sysml.ExhibitStateUsage + * @generated + */ + EClass getExhibitStateUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ExhibitStateUsage#getExhibitedState Exhibited State}'. + * + * + * @return the meta object for the reference 'Exhibited State'. + * @see org.omg.sysml.model.sysml.ExhibitStateUsage#getExhibitedState() + * @see #getExhibitStateUsage() + * @generated + */ + EReference getExhibitStateUsage_ExhibitedState(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Expose Expose}'. + * + * + * @return the meta object for class 'Expose'. + * @see org.omg.sysml.model.sysml.Expose + * @generated + */ + EClass getExpose(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Expression Expression}'. + * + * + * @return the meta object for class 'Expression'. + * @see org.omg.sysml.model.sysml.Expression + * @generated + */ + EClass getExpression(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Expression#isIsModelLevelEvaluable Is Model Level Evaluable}'. + * + * + * @return the meta object for the attribute 'Is Model Level Evaluable'. + * @see org.omg.sysml.model.sysml.Expression#isIsModelLevelEvaluable() + * @see #getExpression() + * @generated + */ + EAttribute getExpression_IsModelLevelEvaluable(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Expression#getFunction Function}'. + * + * + * @return the meta object for the reference 'Function'. + * @see org.omg.sysml.model.sysml.Expression#getFunction() + * @see #getExpression() + * @generated + */ + EReference getExpression_Function(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Expression#getResult Result}'. + * + * + * @return the meta object for the reference 'Result'. + * @see org.omg.sysml.model.sysml.Expression#getResult() + * @see #getExpression() + * @generated + */ + EReference getExpression_Result(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Expression#checkCondition(org.omg.sysml.model.sysml.Element) Check Condition}' operation. + * + * + * @return the meta object for the 'Check Condition' operation. + * @see org.omg.sysml.model.sysml.Expression#checkCondition(org.omg.sysml.model.sysml.Element) + * @generated + */ + EOperation getExpression__CheckCondition__Element(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Expression#evaluate(org.omg.sysml.model.sysml.Element) Evaluate}' operation. + * + * + * @return the meta object for the 'Evaluate' operation. + * @see org.omg.sysml.model.sysml.Expression#evaluate(org.omg.sysml.model.sysml.Element) + * @generated + */ + EOperation getExpression__Evaluate__Element(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Expression#modelLevelEvaluable(org.eclipse.emf.common.util.EList) Model Level Evaluable}' operation. + * + * + * @return the meta object for the 'Model Level Evaluable' operation. + * @see org.omg.sysml.model.sysml.Expression#modelLevelEvaluable(org.eclipse.emf.common.util.EList) + * @generated + */ + EOperation getExpression__ModelLevelEvaluable__EList(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Feature Feature}'. + * + * + * @return the meta object for class 'Feature'. + * @see org.omg.sysml.model.sysml.Feature + * @generated + */ + EClass getFeature(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Feature#getDirection Direction}'. + * + * + * @return the meta object for the attribute 'Direction'. + * @see org.omg.sysml.model.sysml.Feature#getDirection() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_Direction(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Feature#isIsComposite Is Composite}'. + * + * + * @return the meta object for the attribute 'Is Composite'. + * @see org.omg.sysml.model.sysml.Feature#isIsComposite() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_IsComposite(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Feature#isIsConstant Is Constant}'. + * + * + * @return the meta object for the attribute 'Is Constant'. + * @see org.omg.sysml.model.sysml.Feature#isIsConstant() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_IsConstant(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Feature#isIsDerived Is Derived}'. + * + * + * @return the meta object for the attribute 'Is Derived'. + * @see org.omg.sysml.model.sysml.Feature#isIsDerived() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_IsDerived(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Feature#isIsEnd Is End}'. + * + * + * @return the meta object for the attribute 'Is End'. + * @see org.omg.sysml.model.sysml.Feature#isIsEnd() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_IsEnd(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Feature#isIsNonunique Is Nonunique}'. + * + * + * @return the meta object for the attribute 'Is Nonunique'. + * @see org.omg.sysml.model.sysml.Feature#isIsNonunique() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_IsNonunique(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Feature#isIsOrdered Is Ordered}'. + * + * + * @return the meta object for the attribute 'Is Ordered'. + * @see org.omg.sysml.model.sysml.Feature#isIsOrdered() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_IsOrdered(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Feature#isIsPortion Is Portion}'. + * + * + * @return the meta object for the attribute 'Is Portion'. + * @see org.omg.sysml.model.sysml.Feature#isIsPortion() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_IsPortion(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Feature#isIsUnique Is Unique}'. + * + * + * @return the meta object for the attribute 'Is Unique'. + * @see org.omg.sysml.model.sysml.Feature#isIsUnique() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_IsUnique(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Feature#isIsVariable Is Variable}'. + * + * + * @return the meta object for the attribute 'Is Variable'. + * @see org.omg.sysml.model.sysml.Feature#isIsVariable() + * @see #getFeature() + * @generated + */ + EAttribute getFeature_IsVariable(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Feature#getChainingFeature Chaining Feature}'. + * + * + * @return the meta object for the reference list 'Chaining Feature'. + * @see org.omg.sysml.model.sysml.Feature#getChainingFeature() + * @see #getFeature() + * @generated + */ + EReference getFeature_ChainingFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Feature#getCrossFeature Cross Feature}'. + * + * + * @return the meta object for the reference 'Cross Feature'. + * @see org.omg.sysml.model.sysml.Feature#getCrossFeature() + * @see #getFeature() + * @generated + */ + EReference getFeature_CrossFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Feature#getEndOwningType End Owning Type}'. + * + * + * @return the meta object for the reference 'End Owning Type'. + * @see org.omg.sysml.model.sysml.Feature#getEndOwningType() + * @see #getFeature() + * @generated + */ + EReference getFeature_EndOwningType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Feature#getFeatureTarget Feature Target}'. + * + * + * @return the meta object for the reference 'Feature Target'. + * @see org.omg.sysml.model.sysml.Feature#getFeatureTarget() + * @see #getFeature() + * @generated + */ + EReference getFeature_FeatureTarget(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Feature#getFeaturingType Featuring Type}'. + * + * + * @return the meta object for the reference list 'Featuring Type'. + * @see org.omg.sysml.model.sysml.Feature#getFeaturingType() + * @see #getFeature() + * @generated + */ + EReference getFeature_FeaturingType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Feature#getOwnedCrossSubsetting Owned Cross Subsetting}'. + * + * + * @return the meta object for the reference 'Owned Cross Subsetting'. + * @see org.omg.sysml.model.sysml.Feature#getOwnedCrossSubsetting() + * @see #getFeature() + * @generated + */ + EReference getFeature_OwnedCrossSubsetting(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Feature#getOwnedFeatureChaining Owned Feature Chaining}'. + * + * + * @return the meta object for the reference list 'Owned Feature Chaining'. + * @see org.omg.sysml.model.sysml.Feature#getOwnedFeatureChaining() + * @see #getFeature() + * @generated + */ + EReference getFeature_OwnedFeatureChaining(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Feature#getOwnedFeatureInverting Owned Feature Inverting}'. + * + * + * @return the meta object for the reference list 'Owned Feature Inverting'. + * @see org.omg.sysml.model.sysml.Feature#getOwnedFeatureInverting() + * @see #getFeature() + * @generated + */ + EReference getFeature_OwnedFeatureInverting(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Feature#getOwnedRedefinition Owned Redefinition}'. + * + * + * @return the meta object for the reference list 'Owned Redefinition'. + * @see org.omg.sysml.model.sysml.Feature#getOwnedRedefinition() + * @see #getFeature() + * @generated + */ + EReference getFeature_OwnedRedefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Feature#getOwnedReferenceSubsetting Owned Reference Subsetting}'. + * + * + * @return the meta object for the reference 'Owned Reference Subsetting'. + * @see org.omg.sysml.model.sysml.Feature#getOwnedReferenceSubsetting() + * @see #getFeature() + * @generated + */ + EReference getFeature_OwnedReferenceSubsetting(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Feature#getOwnedSubsetting Owned Subsetting}'. + * + * + * @return the meta object for the reference list 'Owned Subsetting'. + * @see org.omg.sysml.model.sysml.Feature#getOwnedSubsetting() + * @see #getFeature() + * @generated + */ + EReference getFeature_OwnedSubsetting(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Feature#getOwnedTypeFeaturing Owned Type Featuring}'. + * + * + * @return the meta object for the reference list 'Owned Type Featuring'. + * @see org.omg.sysml.model.sysml.Feature#getOwnedTypeFeaturing() + * @see #getFeature() + * @generated + */ + EReference getFeature_OwnedTypeFeaturing(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Feature#getOwnedTyping Owned Typing}'. + * + * + * @return the meta object for the reference list 'Owned Typing'. + * @see org.omg.sysml.model.sysml.Feature#getOwnedTyping() + * @see #getFeature() + * @generated + */ + EReference getFeature_OwnedTyping(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Feature#getOwningFeatureMembership Owning Feature Membership}'. + * + * + * @return the meta object for the reference 'Owning Feature Membership'. + * @see org.omg.sysml.model.sysml.Feature#getOwningFeatureMembership() + * @see #getFeature() + * @generated + */ + EReference getFeature_OwningFeatureMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Feature#getOwningType Owning Type}'. + * + * + * @return the meta object for the reference 'Owning Type'. + * @see org.omg.sysml.model.sysml.Feature#getOwningType() + * @see #getFeature() + * @generated + */ + EReference getFeature_OwningType(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Feature#getType Type}'. + * + * + * @return the meta object for the reference list 'Type'. + * @see org.omg.sysml.model.sysml.Feature#getType() + * @see #getFeature() + * @generated + */ + EReference getFeature_Type(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#allRedefinedFeatures() All Redefined Features}' operation. + * + * + * @return the meta object for the 'All Redefined Features' operation. + * @see org.omg.sysml.model.sysml.Feature#allRedefinedFeatures() + * @generated + */ + EOperation getFeature__AllRedefinedFeatures(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#asCartesianProduct() As Cartesian Product}' operation. + * + * + * @return the meta object for the 'As Cartesian Product' operation. + * @see org.omg.sysml.model.sysml.Feature#asCartesianProduct() + * @generated + */ + EOperation getFeature__AsCartesianProduct(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#canAccess(org.omg.sysml.model.sysml.Feature) Can Access}' operation. + * + * + * @return the meta object for the 'Can Access' operation. + * @see org.omg.sysml.model.sysml.Feature#canAccess(org.omg.sysml.model.sysml.Feature) + * @generated + */ + EOperation getFeature__CanAccess__Feature(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#directionFor(org.omg.sysml.model.sysml.Type) Direction For}' operation. + * + * + * @return the meta object for the 'Direction For' operation. + * @see org.omg.sysml.model.sysml.Feature#directionFor(org.omg.sysml.model.sysml.Type) + * @generated + */ + EOperation getFeature__DirectionFor__Type(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#isCartesianProduct() Is Cartesian Product}' operation. + * + * + * @return the meta object for the 'Is Cartesian Product' operation. + * @see org.omg.sysml.model.sysml.Feature#isCartesianProduct() + * @generated + */ + EOperation getFeature__IsCartesianProduct(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#isFeaturedWithin(org.omg.sysml.model.sysml.Type) Is Featured Within}' operation. + * + * + * @return the meta object for the 'Is Featured Within' operation. + * @see org.omg.sysml.model.sysml.Feature#isFeaturedWithin(org.omg.sysml.model.sysml.Type) + * @generated + */ + EOperation getFeature__IsFeaturedWithin__Type(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#isFeaturingType(org.omg.sysml.model.sysml.Type) Is Featuring Type}' operation. + * + * + * @return the meta object for the 'Is Featuring Type' operation. + * @see org.omg.sysml.model.sysml.Feature#isFeaturingType(org.omg.sysml.model.sysml.Type) + * @generated + */ + EOperation getFeature__IsFeaturingType__Type(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#isOwnedCrossFeature() Is Owned Cross Feature}' operation. + * + * + * @return the meta object for the 'Is Owned Cross Feature' operation. + * @see org.omg.sysml.model.sysml.Feature#isOwnedCrossFeature() + * @generated + */ + EOperation getFeature__IsOwnedCrossFeature(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#namingFeature() Naming Feature}' operation. + * + * + * @return the meta object for the 'Naming Feature' operation. + * @see org.omg.sysml.model.sysml.Feature#namingFeature() + * @generated + */ + EOperation getFeature__NamingFeature(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#ownedCrossFeature() Owned Cross Feature}' operation. + * + * + * @return the meta object for the 'Owned Cross Feature' operation. + * @see org.omg.sysml.model.sysml.Feature#ownedCrossFeature() + * @generated + */ + EOperation getFeature__OwnedCrossFeature(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#redefines(org.omg.sysml.model.sysml.Feature) Redefines}' operation. + * + * + * @return the meta object for the 'Redefines' operation. + * @see org.omg.sysml.model.sysml.Feature#redefines(org.omg.sysml.model.sysml.Feature) + * @generated + */ + EOperation getFeature__Redefines__Feature(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#redefinesFromLibrary(java.lang.String) Redefines From Library}' operation. + * + * + * @return the meta object for the 'Redefines From Library' operation. + * @see org.omg.sysml.model.sysml.Feature#redefinesFromLibrary(java.lang.String) + * @generated + */ + EOperation getFeature__RedefinesFromLibrary__String(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#subsetsChain(org.omg.sysml.model.sysml.Feature, org.omg.sysml.model.sysml.Feature) Subsets Chain}' operation. + * + * + * @return the meta object for the 'Subsets Chain' operation. + * @see org.omg.sysml.model.sysml.Feature#subsetsChain(org.omg.sysml.model.sysml.Feature, org.omg.sysml.model.sysml.Feature) + * @generated + */ + EOperation getFeature__SubsetsChain__Feature_Feature(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Feature#typingFeatures() Typing Features}' operation. + * + * + * @return the meta object for the 'Typing Features' operation. + * @see org.omg.sysml.model.sysml.Feature#typingFeatures() + * @generated + */ + EOperation getFeature__TypingFeatures(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FeatureChainExpression Feature Chain Expression}'. + * + * + * @return the meta object for class 'Feature Chain Expression'. + * @see org.omg.sysml.model.sysml.FeatureChainExpression + * @generated + */ + EClass getFeatureChainExpression(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureChainExpression#getTargetFeature Target Feature}'. + * + * + * @return the meta object for the reference 'Target Feature'. + * @see org.omg.sysml.model.sysml.FeatureChainExpression#getTargetFeature() + * @see #getFeatureChainExpression() + * @generated + */ + EReference getFeatureChainExpression_TargetFeature(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.FeatureChainExpression#sourceTargetFeature() Source Target Feature}' operation. + * + * + * @return the meta object for the 'Source Target Feature' operation. + * @see org.omg.sysml.model.sysml.FeatureChainExpression#sourceTargetFeature() + * @generated + */ + EOperation getFeatureChainExpression__SourceTargetFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FeatureChaining Feature Chaining}'. + * + * + * @return the meta object for class 'Feature Chaining'. + * @see org.omg.sysml.model.sysml.FeatureChaining + * @generated + */ + EClass getFeatureChaining(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureChaining#getChainingFeature Chaining Feature}'. + * + * + * @return the meta object for the reference 'Chaining Feature'. + * @see org.omg.sysml.model.sysml.FeatureChaining#getChainingFeature() + * @see #getFeatureChaining() + * @generated + */ + EReference getFeatureChaining_ChainingFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureChaining#getFeatureChained Feature Chained}'. + * + * + * @return the meta object for the reference 'Feature Chained'. + * @see org.omg.sysml.model.sysml.FeatureChaining#getFeatureChained() + * @see #getFeatureChaining() + * @generated + */ + EReference getFeatureChaining_FeatureChained(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FeatureInverting Feature Inverting}'. + * + * + * @return the meta object for class 'Feature Inverting'. + * @see org.omg.sysml.model.sysml.FeatureInverting + * @generated + */ + EClass getFeatureInverting(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureInverting#getFeatureInverted Feature Inverted}'. + * + * + * @return the meta object for the reference 'Feature Inverted'. + * @see org.omg.sysml.model.sysml.FeatureInverting#getFeatureInverted() + * @see #getFeatureInverting() + * @generated + */ + EReference getFeatureInverting_FeatureInverted(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureInverting#getInvertingFeature Inverting Feature}'. + * + * + * @return the meta object for the reference 'Inverting Feature'. + * @see org.omg.sysml.model.sysml.FeatureInverting#getInvertingFeature() + * @see #getFeatureInverting() + * @generated + */ + EReference getFeatureInverting_InvertingFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureInverting#getOwningFeature Owning Feature}'. + * + * + * @return the meta object for the reference 'Owning Feature'. + * @see org.omg.sysml.model.sysml.FeatureInverting#getOwningFeature() + * @see #getFeatureInverting() + * @generated + */ + EReference getFeatureInverting_OwningFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FeatureMembership Feature Membership}'. + * + * + * @return the meta object for class 'Feature Membership'. + * @see org.omg.sysml.model.sysml.FeatureMembership + * @generated + */ + EClass getFeatureMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureMembership#getOwnedMemberFeature Owned Member Feature}'. + * + * + * @return the meta object for the reference 'Owned Member Feature'. + * @see org.omg.sysml.model.sysml.FeatureMembership#getOwnedMemberFeature() + * @see #getFeatureMembership() + * @generated + */ + EReference getFeatureMembership_OwnedMemberFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureMembership#getOwningType Owning Type}'. + * + * + * @return the meta object for the reference 'Owning Type'. + * @see org.omg.sysml.model.sysml.FeatureMembership#getOwningType() + * @see #getFeatureMembership() + * @generated + */ + EReference getFeatureMembership_OwningType(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FeatureReferenceExpression Feature Reference Expression}'. + * + * + * @return the meta object for class 'Feature Reference Expression'. + * @see org.omg.sysml.model.sysml.FeatureReferenceExpression + * @generated + */ + EClass getFeatureReferenceExpression(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureReferenceExpression#getReferent Referent}'. + * + * + * @return the meta object for the reference 'Referent'. + * @see org.omg.sysml.model.sysml.FeatureReferenceExpression#getReferent() + * @see #getFeatureReferenceExpression() + * @generated + */ + EReference getFeatureReferenceExpression_Referent(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FeatureTyping Feature Typing}'. + * + * + * @return the meta object for class 'Feature Typing'. + * @see org.omg.sysml.model.sysml.FeatureTyping + * @generated + */ + EClass getFeatureTyping(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureTyping#getOwningFeature Owning Feature}'. + * + * + * @return the meta object for the reference 'Owning Feature'. + * @see org.omg.sysml.model.sysml.FeatureTyping#getOwningFeature() + * @see #getFeatureTyping() + * @generated + */ + EReference getFeatureTyping_OwningFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureTyping#getType Type}'. + * + * + * @return the meta object for the reference 'Type'. + * @see org.omg.sysml.model.sysml.FeatureTyping#getType() + * @see #getFeatureTyping() + * @generated + */ + EReference getFeatureTyping_Type(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureTyping#getTypedFeature Typed Feature}'. + * + * + * @return the meta object for the reference 'Typed Feature'. + * @see org.omg.sysml.model.sysml.FeatureTyping#getTypedFeature() + * @see #getFeatureTyping() + * @generated + */ + EReference getFeatureTyping_TypedFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FeatureValue Feature Value}'. + * + * + * @return the meta object for class 'Feature Value'. + * @see org.omg.sysml.model.sysml.FeatureValue + * @generated + */ + EClass getFeatureValue(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.FeatureValue#isIsDefault Is Default}'. + * + * + * @return the meta object for the attribute 'Is Default'. + * @see org.omg.sysml.model.sysml.FeatureValue#isIsDefault() + * @see #getFeatureValue() + * @generated + */ + EAttribute getFeatureValue_IsDefault(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.FeatureValue#isIsInitial Is Initial}'. + * + * + * @return the meta object for the attribute 'Is Initial'. + * @see org.omg.sysml.model.sysml.FeatureValue#isIsInitial() + * @see #getFeatureValue() + * @generated + */ + EAttribute getFeatureValue_IsInitial(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureValue#getFeatureWithValue Feature With Value}'. + * + * + * @return the meta object for the reference 'Feature With Value'. + * @see org.omg.sysml.model.sysml.FeatureValue#getFeatureWithValue() + * @see #getFeatureValue() + * @generated + */ + EReference getFeatureValue_FeatureWithValue(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FeatureValue#getValue Value}'. + * + * + * @return the meta object for the reference 'Value'. + * @see org.omg.sysml.model.sysml.FeatureValue#getValue() + * @see #getFeatureValue() + * @generated + */ + EReference getFeatureValue_Value(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Flow Flow}'. + * + * + * @return the meta object for class 'Flow'. + * @see org.omg.sysml.model.sysml.Flow + * @generated + */ + EClass getFlow(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Flow#getFlowEnd Flow End}'. + * + * + * @return the meta object for the reference list 'Flow End'. + * @see org.omg.sysml.model.sysml.Flow#getFlowEnd() + * @see #getFlow() + * @generated + */ + EReference getFlow_FlowEnd(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Flow#getInteraction Interaction}'. + * + * + * @return the meta object for the reference list 'Interaction'. + * @see org.omg.sysml.model.sysml.Flow#getInteraction() + * @see #getFlow() + * @generated + */ + EReference getFlow_Interaction(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Flow#getPayloadFeature Payload Feature}'. + * + * + * @return the meta object for the reference 'Payload Feature'. + * @see org.omg.sysml.model.sysml.Flow#getPayloadFeature() + * @see #getFlow() + * @generated + */ + EReference getFlow_PayloadFeature(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Flow#getPayloadType Payload Type}'. + * + * + * @return the meta object for the reference list 'Payload Type'. + * @see org.omg.sysml.model.sysml.Flow#getPayloadType() + * @see #getFlow() + * @generated + */ + EReference getFlow_PayloadType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Flow#getSourceOutputFeature Source Output Feature}'. + * + * + * @return the meta object for the reference 'Source Output Feature'. + * @see org.omg.sysml.model.sysml.Flow#getSourceOutputFeature() + * @see #getFlow() + * @generated + */ + EReference getFlow_SourceOutputFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Flow#getTargetInputFeature Target Input Feature}'. + * + * + * @return the meta object for the reference 'Target Input Feature'. + * @see org.omg.sysml.model.sysml.Flow#getTargetInputFeature() + * @see #getFlow() + * @generated + */ + EReference getFlow_TargetInputFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FlowDefinition Flow Definition}'. + * + * + * @return the meta object for class 'Flow Definition'. + * @see org.omg.sysml.model.sysml.FlowDefinition + * @generated + */ + EClass getFlowDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.FlowDefinition#getFlowEnd Flow End}'. + * + * + * @return the meta object for the reference list 'Flow End'. + * @see org.omg.sysml.model.sysml.FlowDefinition#getFlowEnd() + * @see #getFlowDefinition() + * @generated + */ + EReference getFlowDefinition_FlowEnd(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FlowEnd Flow End}'. + * + * + * @return the meta object for class 'Flow End'. + * @see org.omg.sysml.model.sysml.FlowEnd + * @generated + */ + EClass getFlowEnd(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FlowUsage Flow Usage}'. + * + * + * @return the meta object for class 'Flow Usage'. + * @see org.omg.sysml.model.sysml.FlowUsage + * @generated + */ + EClass getFlowUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.FlowUsage#getFlowDefinition Flow Definition}'. + * + * + * @return the meta object for the reference list 'Flow Definition'. + * @see org.omg.sysml.model.sysml.FlowUsage#getFlowDefinition() + * @see #getFlowUsage() + * @generated + */ + EReference getFlowUsage_FlowDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ForkNode Fork Node}'. + * + * + * @return the meta object for class 'Fork Node'. + * @see org.omg.sysml.model.sysml.ForkNode + * @generated + */ + EClass getForkNode(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ForLoopActionUsage For Loop Action Usage}'. + * + * + * @return the meta object for class 'For Loop Action Usage'. + * @see org.omg.sysml.model.sysml.ForLoopActionUsage + * @generated + */ + EClass getForLoopActionUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ForLoopActionUsage#getLoopVariable Loop Variable}'. + * + * + * @return the meta object for the reference 'Loop Variable'. + * @see org.omg.sysml.model.sysml.ForLoopActionUsage#getLoopVariable() + * @see #getForLoopActionUsage() + * @generated + */ + EReference getForLoopActionUsage_LoopVariable(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ForLoopActionUsage#getSeqArgument Seq Argument}'. + * + * + * @return the meta object for the reference 'Seq Argument'. + * @see org.omg.sysml.model.sysml.ForLoopActionUsage#getSeqArgument() + * @see #getForLoopActionUsage() + * @generated + */ + EReference getForLoopActionUsage_SeqArgument(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.FramedConcernMembership Framed Concern Membership}'. + * + * + * @return the meta object for class 'Framed Concern Membership'. + * @see org.omg.sysml.model.sysml.FramedConcernMembership + * @generated + */ + EClass getFramedConcernMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FramedConcernMembership#getOwnedConcern Owned Concern}'. + * + * + * @return the meta object for the reference 'Owned Concern'. + * @see org.omg.sysml.model.sysml.FramedConcernMembership#getOwnedConcern() + * @see #getFramedConcernMembership() + * @generated + */ + EReference getFramedConcernMembership_OwnedConcern(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.FramedConcernMembership#getReferencedConcern Referenced Concern}'. + * + * + * @return the meta object for the reference 'Referenced Concern'. + * @see org.omg.sysml.model.sysml.FramedConcernMembership#getReferencedConcern() + * @see #getFramedConcernMembership() + * @generated + */ + EReference getFramedConcernMembership_ReferencedConcern(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Function Function}'. + * + * + * @return the meta object for class 'Function'. + * @see org.omg.sysml.model.sysml.Function + * @generated + */ + EClass getFunction(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Function#isIsModelLevelEvaluable Is Model Level Evaluable}'. + * + * + * @return the meta object for the attribute 'Is Model Level Evaluable'. + * @see org.omg.sysml.model.sysml.Function#isIsModelLevelEvaluable() + * @see #getFunction() + * @generated + */ + EAttribute getFunction_IsModelLevelEvaluable(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Function#getExpression Expression}'. + * + * + * @return the meta object for the reference list 'Expression'. + * @see org.omg.sysml.model.sysml.Function#getExpression() + * @see #getFunction() + * @generated + */ + EReference getFunction_Expression(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Function#getResult Result}'. + * + * + * @return the meta object for the reference 'Result'. + * @see org.omg.sysml.model.sysml.Function#getResult() + * @see #getFunction() + * @generated + */ + EReference getFunction_Result(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.IfActionUsage If Action Usage}'. + * + * + * @return the meta object for class 'If Action Usage'. + * @see org.omg.sysml.model.sysml.IfActionUsage + * @generated + */ + EClass getIfActionUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.IfActionUsage#getElseAction Else Action}'. + * + * + * @return the meta object for the reference 'Else Action'. + * @see org.omg.sysml.model.sysml.IfActionUsage#getElseAction() + * @see #getIfActionUsage() + * @generated + */ + EReference getIfActionUsage_ElseAction(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.IfActionUsage#getIfArgument If Argument}'. + * + * + * @return the meta object for the reference 'If Argument'. + * @see org.omg.sysml.model.sysml.IfActionUsage#getIfArgument() + * @see #getIfActionUsage() + * @generated + */ + EReference getIfActionUsage_IfArgument(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.IfActionUsage#getThenAction Then Action}'. + * + * + * @return the meta object for the reference 'Then Action'. + * @see org.omg.sysml.model.sysml.IfActionUsage#getThenAction() + * @see #getIfActionUsage() + * @generated + */ + EReference getIfActionUsage_ThenAction(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Import Import}'. + * + * + * @return the meta object for class 'Import'. + * @see org.omg.sysml.model.sysml.Import + * @generated + */ + EClass getImport(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Import#isIsImportAll Is Import All}'. + * + * + * @return the meta object for the attribute 'Is Import All'. + * @see org.omg.sysml.model.sysml.Import#isIsImportAll() + * @see #getImport() + * @generated + */ + EAttribute getImport_IsImportAll(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Import#isIsRecursive Is Recursive}'. + * + * + * @return the meta object for the attribute 'Is Recursive'. + * @see org.omg.sysml.model.sysml.Import#isIsRecursive() + * @see #getImport() + * @generated + */ + EAttribute getImport_IsRecursive(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Import#getVisibility Visibility}'. + * + * + * @return the meta object for the attribute 'Visibility'. + * @see org.omg.sysml.model.sysml.Import#getVisibility() + * @see #getImport() + * @generated + */ + EAttribute getImport_Visibility(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Import#getImportedElement Imported Element}'. + * + * + * @return the meta object for the reference 'Imported Element'. + * @see org.omg.sysml.model.sysml.Import#getImportedElement() + * @see #getImport() + * @generated + */ + EReference getImport_ImportedElement(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Import#getImportOwningNamespace Import Owning Namespace}'. + * + * + * @return the meta object for the reference 'Import Owning Namespace'. + * @see org.omg.sysml.model.sysml.Import#getImportOwningNamespace() + * @see #getImport() + * @generated + */ + EReference getImport_ImportOwningNamespace(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Import#importedMemberships(org.eclipse.emf.common.util.EList) Imported Memberships}' operation. + * + * + * @return the meta object for the 'Imported Memberships' operation. + * @see org.omg.sysml.model.sysml.Import#importedMemberships(org.eclipse.emf.common.util.EList) + * @generated + */ + EOperation getImport__ImportedMemberships__EList(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.IncludeUseCaseUsage Include Use Case Usage}'. + * + * + * @return the meta object for class 'Include Use Case Usage'. + * @see org.omg.sysml.model.sysml.IncludeUseCaseUsage + * @generated + */ + EClass getIncludeUseCaseUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.IncludeUseCaseUsage#getUseCaseIncluded Use Case Included}'. + * + * + * @return the meta object for the reference 'Use Case Included'. + * @see org.omg.sysml.model.sysml.IncludeUseCaseUsage#getUseCaseIncluded() + * @see #getIncludeUseCaseUsage() + * @generated + */ + EReference getIncludeUseCaseUsage_UseCaseIncluded(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.IndexExpression Index Expression}'. + * + * + * @return the meta object for class 'Index Expression'. + * @see org.omg.sysml.model.sysml.IndexExpression + * @generated + */ + EClass getIndexExpression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.InstantiationExpression Instantiation Expression}'. + * + * + * @return the meta object for class 'Instantiation Expression'. + * @see org.omg.sysml.model.sysml.InstantiationExpression + * @generated + */ + EClass getInstantiationExpression(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.InstantiationExpression#getArgument Argument}'. + * + * + * @return the meta object for the reference list 'Argument'. + * @see org.omg.sysml.model.sysml.InstantiationExpression#getArgument() + * @see #getInstantiationExpression() + * @generated + */ + EReference getInstantiationExpression_Argument(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.InstantiationExpression#getInstantiatedType Instantiated Type}'. + * + * + * @return the meta object for the reference 'Instantiated Type'. + * @see org.omg.sysml.model.sysml.InstantiationExpression#getInstantiatedType() + * @see #getInstantiationExpression() + * @generated + */ + EReference getInstantiationExpression_InstantiatedType(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.InstantiationExpression#instantiatedType() Instantiated Type}' operation. + * + * + * @return the meta object for the 'Instantiated Type' operation. + * @see org.omg.sysml.model.sysml.InstantiationExpression#instantiatedType() + * @generated + */ + EOperation getInstantiationExpression__InstantiatedType(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Interaction Interaction}'. + * + * + * @return the meta object for class 'Interaction'. + * @see org.omg.sysml.model.sysml.Interaction + * @generated + */ + EClass getInteraction(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.InterfaceDefinition Interface Definition}'. + * + * + * @return the meta object for class 'Interface Definition'. + * @see org.omg.sysml.model.sysml.InterfaceDefinition + * @generated + */ + EClass getInterfaceDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.InterfaceDefinition#getInterfaceEnd Interface End}'. + * + * + * @return the meta object for the reference list 'Interface End'. + * @see org.omg.sysml.model.sysml.InterfaceDefinition#getInterfaceEnd() + * @see #getInterfaceDefinition() + * @generated + */ + EReference getInterfaceDefinition_InterfaceEnd(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.InterfaceUsage Interface Usage}'. + * + * + * @return the meta object for class 'Interface Usage'. + * @see org.omg.sysml.model.sysml.InterfaceUsage + * @generated + */ + EClass getInterfaceUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.InterfaceUsage#getInterfaceDefinition Interface Definition}'. + * + * + * @return the meta object for the reference list 'Interface Definition'. + * @see org.omg.sysml.model.sysml.InterfaceUsage#getInterfaceDefinition() + * @see #getInterfaceUsage() + * @generated + */ + EReference getInterfaceUsage_InterfaceDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Intersecting Intersecting}'. + * + * + * @return the meta object for class 'Intersecting'. + * @see org.omg.sysml.model.sysml.Intersecting + * @generated + */ + EClass getIntersecting(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Intersecting#getIntersectingType Intersecting Type}'. + * + * + * @return the meta object for the reference 'Intersecting Type'. + * @see org.omg.sysml.model.sysml.Intersecting#getIntersectingType() + * @see #getIntersecting() + * @generated + */ + EReference getIntersecting_IntersectingType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Intersecting#getTypeIntersected Type Intersected}'. + * + * + * @return the meta object for the reference 'Type Intersected'. + * @see org.omg.sysml.model.sysml.Intersecting#getTypeIntersected() + * @see #getIntersecting() + * @generated + */ + EReference getIntersecting_TypeIntersected(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Invariant Invariant}'. + * + * + * @return the meta object for class 'Invariant'. + * @see org.omg.sysml.model.sysml.Invariant + * @generated + */ + EClass getInvariant(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Invariant#isIsNegated Is Negated}'. + * + * + * @return the meta object for the attribute 'Is Negated'. + * @see org.omg.sysml.model.sysml.Invariant#isIsNegated() + * @see #getInvariant() + * @generated + */ + EAttribute getInvariant_IsNegated(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.InvocationExpression Invocation Expression}'. + * + * + * @return the meta object for class 'Invocation Expression'. + * @see org.omg.sysml.model.sysml.InvocationExpression + * @generated + */ + EClass getInvocationExpression(); + + /** + * Returns the meta object for the containment reference list '{@link org.omg.sysml.model.sysml.InvocationExpression#getOperand Operand}'. + * + * + * @return the meta object for the containment reference list 'Operand'. + * @see org.omg.sysml.model.sysml.InvocationExpression#getOperand() + * @see #getInvocationExpression() + * @generated + */ + EReference getInvocationExpression_Operand(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ItemDefinition Item Definition}'. + * + * + * @return the meta object for class 'Item Definition'. + * @see org.omg.sysml.model.sysml.ItemDefinition + * @generated + */ + EClass getItemDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ItemUsage Item Usage}'. + * + * + * @return the meta object for class 'Item Usage'. + * @see org.omg.sysml.model.sysml.ItemUsage + * @generated + */ + EClass getItemUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ItemUsage#getItemDefinition Item Definition}'. + * + * + * @return the meta object for the reference list 'Item Definition'. + * @see org.omg.sysml.model.sysml.ItemUsage#getItemDefinition() + * @see #getItemUsage() + * @generated + */ + EReference getItemUsage_ItemDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.JoinNode Join Node}'. + * + * + * @return the meta object for class 'Join Node'. + * @see org.omg.sysml.model.sysml.JoinNode + * @generated + */ + EClass getJoinNode(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.LibraryPackage Library Package}'. + * + * + * @return the meta object for class 'Library Package'. + * @see org.omg.sysml.model.sysml.LibraryPackage + * @generated + */ + EClass getLibraryPackage(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.LibraryPackage#isIsStandard Is Standard}'. + * + * + * @return the meta object for the attribute 'Is Standard'. + * @see org.omg.sysml.model.sysml.LibraryPackage#isIsStandard() + * @see #getLibraryPackage() + * @generated + */ + EAttribute getLibraryPackage_IsStandard(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.LiteralBoolean Literal Boolean}'. + * + * + * @return the meta object for class 'Literal Boolean'. + * @see org.omg.sysml.model.sysml.LiteralBoolean + * @generated + */ + EClass getLiteralBoolean(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.LiteralBoolean#isValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.omg.sysml.model.sysml.LiteralBoolean#isValue() + * @see #getLiteralBoolean() + * @generated + */ + EAttribute getLiteralBoolean_Value(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.LiteralExpression Literal Expression}'. + * + * + * @return the meta object for class 'Literal Expression'. + * @see org.omg.sysml.model.sysml.LiteralExpression + * @generated + */ + EClass getLiteralExpression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.LiteralInfinity Literal Infinity}'. + * + * + * @return the meta object for class 'Literal Infinity'. + * @see org.omg.sysml.model.sysml.LiteralInfinity + * @generated + */ + EClass getLiteralInfinity(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.LiteralInteger Literal Integer}'. + * + * + * @return the meta object for class 'Literal Integer'. + * @see org.omg.sysml.model.sysml.LiteralInteger + * @generated + */ + EClass getLiteralInteger(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.LiteralInteger#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.omg.sysml.model.sysml.LiteralInteger#getValue() + * @see #getLiteralInteger() + * @generated + */ + EAttribute getLiteralInteger_Value(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.LiteralRational Literal Rational}'. + * + * + * @return the meta object for class 'Literal Rational'. + * @see org.omg.sysml.model.sysml.LiteralRational + * @generated + */ + EClass getLiteralRational(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.LiteralRational#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.omg.sysml.model.sysml.LiteralRational#getValue() + * @see #getLiteralRational() + * @generated + */ + EAttribute getLiteralRational_Value(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.LiteralString Literal String}'. + * + * + * @return the meta object for class 'Literal String'. + * @see org.omg.sysml.model.sysml.LiteralString + * @generated + */ + EClass getLiteralString(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.LiteralString#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.omg.sysml.model.sysml.LiteralString#getValue() + * @see #getLiteralString() + * @generated + */ + EAttribute getLiteralString_Value(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.LoopActionUsage Loop Action Usage}'. + * + * + * @return the meta object for class 'Loop Action Usage'. + * @see org.omg.sysml.model.sysml.LoopActionUsage + * @generated + */ + EClass getLoopActionUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.LoopActionUsage#getBodyAction Body Action}'. + * + * + * @return the meta object for the reference 'Body Action'. + * @see org.omg.sysml.model.sysml.LoopActionUsage#getBodyAction() + * @see #getLoopActionUsage() + * @generated + */ + EReference getLoopActionUsage_BodyAction(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Membership Membership}'. + * + * + * @return the meta object for class 'Membership'. + * @see org.omg.sysml.model.sysml.Membership + * @generated + */ + EClass getMembership(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Membership#getMemberElementId Member Element Id}'. + * + * + * @return the meta object for the attribute 'Member Element Id'. + * @see org.omg.sysml.model.sysml.Membership#getMemberElementId() + * @see #getMembership() + * @generated + */ + EAttribute getMembership_MemberElementId(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Membership#getMemberName Member Name}'. + * + * + * @return the meta object for the attribute 'Member Name'. + * @see org.omg.sysml.model.sysml.Membership#getMemberName() + * @see #getMembership() + * @generated + */ + EAttribute getMembership_MemberName(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Membership#getMemberShortName Member Short Name}'. + * + * + * @return the meta object for the attribute 'Member Short Name'. + * @see org.omg.sysml.model.sysml.Membership#getMemberShortName() + * @see #getMembership() + * @generated + */ + EAttribute getMembership_MemberShortName(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Membership#getVisibility Visibility}'. + * + * + * @return the meta object for the attribute 'Visibility'. + * @see org.omg.sysml.model.sysml.Membership#getVisibility() + * @see #getMembership() + * @generated + */ + EAttribute getMembership_Visibility(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Membership#getMemberElement Member Element}'. + * + * + * @return the meta object for the reference 'Member Element'. + * @see org.omg.sysml.model.sysml.Membership#getMemberElement() + * @see #getMembership() + * @generated + */ + EReference getMembership_MemberElement(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Membership#getMembershipOwningNamespace Membership Owning Namespace}'. + * + * + * @return the meta object for the reference 'Membership Owning Namespace'. + * @see org.omg.sysml.model.sysml.Membership#getMembershipOwningNamespace() + * @see #getMembership() + * @generated + */ + EReference getMembership_MembershipOwningNamespace(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Membership#isDistinguishableFrom(org.omg.sysml.model.sysml.Membership) Is Distinguishable From}' operation. + * + * + * @return the meta object for the 'Is Distinguishable From' operation. + * @see org.omg.sysml.model.sysml.Membership#isDistinguishableFrom(org.omg.sysml.model.sysml.Membership) + * @generated + */ + EOperation getMembership__IsDistinguishableFrom__Membership(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.MembershipExpose Membership Expose}'. + * + * + * @return the meta object for class 'Membership Expose'. + * @see org.omg.sysml.model.sysml.MembershipExpose + * @generated + */ + EClass getMembershipExpose(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.MembershipImport Membership Import}'. + * + * + * @return the meta object for class 'Membership Import'. + * @see org.omg.sysml.model.sysml.MembershipImport + * @generated + */ + EClass getMembershipImport(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.MembershipImport#getImportedMembership Imported Membership}'. + * + * + * @return the meta object for the reference 'Imported Membership'. + * @see org.omg.sysml.model.sysml.MembershipImport#getImportedMembership() + * @see #getMembershipImport() + * @generated + */ + EReference getMembershipImport_ImportedMembership(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.MergeNode Merge Node}'. + * + * + * @return the meta object for class 'Merge Node'. + * @see org.omg.sysml.model.sysml.MergeNode + * @generated + */ + EClass getMergeNode(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Metaclass Metaclass}'. + * + * + * @return the meta object for class 'Metaclass'. + * @see org.omg.sysml.model.sysml.Metaclass + * @generated + */ + EClass getMetaclass(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.MetadataAccessExpression Metadata Access Expression}'. + * + * + * @return the meta object for class 'Metadata Access Expression'. + * @see org.omg.sysml.model.sysml.MetadataAccessExpression + * @generated + */ + EClass getMetadataAccessExpression(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.MetadataAccessExpression#getReferencedElement Referenced Element}'. + * + * + * @return the meta object for the reference 'Referenced Element'. + * @see org.omg.sysml.model.sysml.MetadataAccessExpression#getReferencedElement() + * @see #getMetadataAccessExpression() + * @generated + */ + EReference getMetadataAccessExpression_ReferencedElement(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.MetadataAccessExpression#metaclassFeature() Metaclass Feature}' operation. + * + * + * @return the meta object for the 'Metaclass Feature' operation. + * @see org.omg.sysml.model.sysml.MetadataAccessExpression#metaclassFeature() + * @generated + */ + EOperation getMetadataAccessExpression__MetaclassFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.MetadataDefinition Metadata Definition}'. + * + * + * @return the meta object for class 'Metadata Definition'. + * @see org.omg.sysml.model.sysml.MetadataDefinition + * @generated + */ + EClass getMetadataDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.MetadataFeature Metadata Feature}'. + * + * + * @return the meta object for class 'Metadata Feature'. + * @see org.omg.sysml.model.sysml.MetadataFeature + * @generated + */ + EClass getMetadataFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.MetadataFeature#getMetaclass Metaclass}'. + * + * + * @return the meta object for the reference 'Metaclass'. + * @see org.omg.sysml.model.sysml.MetadataFeature#getMetaclass() + * @see #getMetadataFeature() + * @generated + */ + EReference getMetadataFeature_Metaclass(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.MetadataFeature#evaluateFeature(org.omg.sysml.model.sysml.Feature) Evaluate Feature}' operation. + * + * + * @return the meta object for the 'Evaluate Feature' operation. + * @see org.omg.sysml.model.sysml.MetadataFeature#evaluateFeature(org.omg.sysml.model.sysml.Feature) + * @generated + */ + EOperation getMetadataFeature__EvaluateFeature__Feature(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.MetadataFeature#isSemantic() Is Semantic}' operation. + * + * + * @return the meta object for the 'Is Semantic' operation. + * @see org.omg.sysml.model.sysml.MetadataFeature#isSemantic() + * @generated + */ + EOperation getMetadataFeature__IsSemantic(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.MetadataFeature#isSyntactic() Is Syntactic}' operation. + * + * + * @return the meta object for the 'Is Syntactic' operation. + * @see org.omg.sysml.model.sysml.MetadataFeature#isSyntactic() + * @generated + */ + EOperation getMetadataFeature__IsSyntactic(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.MetadataFeature#syntaxElement() Syntax Element}' operation. + * + * + * @return the meta object for the 'Syntax Element' operation. + * @see org.omg.sysml.model.sysml.MetadataFeature#syntaxElement() + * @generated + */ + EOperation getMetadataFeature__SyntaxElement(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.MetadataUsage Metadata Usage}'. + * + * + * @return the meta object for class 'Metadata Usage'. + * @see org.omg.sysml.model.sysml.MetadataUsage + * @generated + */ + EClass getMetadataUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.MetadataUsage#getMetadataDefinition Metadata Definition}'. + * + * + * @return the meta object for the reference 'Metadata Definition'. + * @see org.omg.sysml.model.sysml.MetadataUsage#getMetadataDefinition() + * @see #getMetadataUsage() + * @generated + */ + EReference getMetadataUsage_MetadataDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Multiplicity Multiplicity}'. + * + * + * @return the meta object for class 'Multiplicity'. + * @see org.omg.sysml.model.sysml.Multiplicity + * @generated + */ + EClass getMultiplicity(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.MultiplicityRange Multiplicity Range}'. + * + * + * @return the meta object for class 'Multiplicity Range'. + * @see org.omg.sysml.model.sysml.MultiplicityRange + * @generated + */ + EClass getMultiplicityRange(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.MultiplicityRange#getBound Bound}'. + * + * + * @return the meta object for the reference list 'Bound'. + * @see org.omg.sysml.model.sysml.MultiplicityRange#getBound() + * @see #getMultiplicityRange() + * @generated + */ + EReference getMultiplicityRange_Bound(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.MultiplicityRange#getLowerBound Lower Bound}'. + * + * + * @return the meta object for the reference 'Lower Bound'. + * @see org.omg.sysml.model.sysml.MultiplicityRange#getLowerBound() + * @see #getMultiplicityRange() + * @generated + */ + EReference getMultiplicityRange_LowerBound(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.MultiplicityRange#getUpperBound Upper Bound}'. + * + * + * @return the meta object for the reference 'Upper Bound'. + * @see org.omg.sysml.model.sysml.MultiplicityRange#getUpperBound() + * @see #getMultiplicityRange() + * @generated + */ + EReference getMultiplicityRange_UpperBound(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.MultiplicityRange#hasBounds(int, int) Has Bounds}' operation. + * + * + * @return the meta object for the 'Has Bounds' operation. + * @see org.omg.sysml.model.sysml.MultiplicityRange#hasBounds(int, int) + * @generated + */ + EOperation getMultiplicityRange__HasBounds__int_int(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.MultiplicityRange#valueOf(org.omg.sysml.model.sysml.Expression) Value Of}' operation. + * + * + * @return the meta object for the 'Value Of' operation. + * @see org.omg.sysml.model.sysml.MultiplicityRange#valueOf(org.omg.sysml.model.sysml.Expression) + * @generated + */ + EOperation getMultiplicityRange__ValueOf__Expression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Namespace Namespace}'. + * + * + * @return the meta object for class 'Namespace'. + * @see org.omg.sysml.model.sysml.Namespace + * @generated + */ + EClass getNamespace(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Namespace#getImportedMembership Imported Membership}'. + * + * + * @return the meta object for the reference list 'Imported Membership'. + * @see org.omg.sysml.model.sysml.Namespace#getImportedMembership() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_ImportedMembership(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Namespace#getMember Member}'. + * + * + * @return the meta object for the reference list 'Member'. + * @see org.omg.sysml.model.sysml.Namespace#getMember() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_Member(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Namespace#getMembership Membership}'. + * + * + * @return the meta object for the reference list 'Membership'. + * @see org.omg.sysml.model.sysml.Namespace#getMembership() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_Membership(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Namespace#getOwnedImport Owned Import}'. + * + * + * @return the meta object for the reference list 'Owned Import'. + * @see org.omg.sysml.model.sysml.Namespace#getOwnedImport() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_OwnedImport(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Namespace#getOwnedMember Owned Member}'. + * + * + * @return the meta object for the reference list 'Owned Member'. + * @see org.omg.sysml.model.sysml.Namespace#getOwnedMember() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_OwnedMember(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Namespace#getOwnedMembership Owned Membership}'. + * + * + * @return the meta object for the reference list 'Owned Membership'. + * @see org.omg.sysml.model.sysml.Namespace#getOwnedMembership() + * @see #getNamespace() + * @generated + */ + EReference getNamespace_OwnedMembership(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#importedMemberships(org.eclipse.emf.common.util.EList) Imported Memberships}' operation. + * + * + * @return the meta object for the 'Imported Memberships' operation. + * @see org.omg.sysml.model.sysml.Namespace#importedMemberships(org.eclipse.emf.common.util.EList) + * @generated + */ + EOperation getNamespace__ImportedMemberships__EList(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#membershipsOfVisibility(org.omg.sysml.model.sysml.VisibilityKind, org.eclipse.emf.common.util.EList) Memberships Of Visibility}' operation. + * + * + * @return the meta object for the 'Memberships Of Visibility' operation. + * @see org.omg.sysml.model.sysml.Namespace#membershipsOfVisibility(org.omg.sysml.model.sysml.VisibilityKind, org.eclipse.emf.common.util.EList) + * @generated + */ + EOperation getNamespace__MembershipsOfVisibility__VisibilityKind_EList(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#namesOf(org.omg.sysml.model.sysml.Element) Names Of}' operation. + * + * + * @return the meta object for the 'Names Of' operation. + * @see org.omg.sysml.model.sysml.Namespace#namesOf(org.omg.sysml.model.sysml.Element) + * @generated + */ + EOperation getNamespace__NamesOf__Element(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#qualificationOf(java.lang.String) Qualification Of}' operation. + * + * + * @return the meta object for the 'Qualification Of' operation. + * @see org.omg.sysml.model.sysml.Namespace#qualificationOf(java.lang.String) + * @generated + */ + EOperation getNamespace__QualificationOf__String(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#resolve(java.lang.String) Resolve}' operation. + * + * + * @return the meta object for the 'Resolve' operation. + * @see org.omg.sysml.model.sysml.Namespace#resolve(java.lang.String) + * @generated + */ + EOperation getNamespace__Resolve__String(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#resolveGlobal(java.lang.String) Resolve Global}' operation. + * + * + * @return the meta object for the 'Resolve Global' operation. + * @see org.omg.sysml.model.sysml.Namespace#resolveGlobal(java.lang.String) + * @generated + */ + EOperation getNamespace__ResolveGlobal__String(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#resolveLocal(java.lang.String) Resolve Local}' operation. + * + * + * @return the meta object for the 'Resolve Local' operation. + * @see org.omg.sysml.model.sysml.Namespace#resolveLocal(java.lang.String) + * @generated + */ + EOperation getNamespace__ResolveLocal__String(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#resolveVisible(java.lang.String) Resolve Visible}' operation. + * + * + * @return the meta object for the 'Resolve Visible' operation. + * @see org.omg.sysml.model.sysml.Namespace#resolveVisible(java.lang.String) + * @generated + */ + EOperation getNamespace__ResolveVisible__String(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#unqualifiedNameOf(java.lang.String) Unqualified Name Of}' operation. + * + * + * @return the meta object for the 'Unqualified Name Of' operation. + * @see org.omg.sysml.model.sysml.Namespace#unqualifiedNameOf(java.lang.String) + * @generated + */ + EOperation getNamespace__UnqualifiedNameOf__String(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#visibilityOf(org.omg.sysml.model.sysml.Membership) Visibility Of}' operation. + * + * + * @return the meta object for the 'Visibility Of' operation. + * @see org.omg.sysml.model.sysml.Namespace#visibilityOf(org.omg.sysml.model.sysml.Membership) + * @generated + */ + EOperation getNamespace__VisibilityOf__Membership(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Namespace#visibleMemberships(org.eclipse.emf.common.util.EList, boolean, boolean) Visible Memberships}' operation. + * + * + * @return the meta object for the 'Visible Memberships' operation. + * @see org.omg.sysml.model.sysml.Namespace#visibleMemberships(org.eclipse.emf.common.util.EList, boolean, boolean) + * @generated + */ + EOperation getNamespace__VisibleMemberships__EList_boolean_boolean(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.NamespaceExpose Namespace Expose}'. + * + * + * @return the meta object for class 'Namespace Expose'. + * @see org.omg.sysml.model.sysml.NamespaceExpose + * @generated + */ + EClass getNamespaceExpose(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.NamespaceImport Namespace Import}'. + * + * + * @return the meta object for class 'Namespace Import'. + * @see org.omg.sysml.model.sysml.NamespaceImport + * @generated + */ + EClass getNamespaceImport(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.NamespaceImport#getImportedNamespace Imported Namespace}'. + * + * + * @return the meta object for the reference 'Imported Namespace'. + * @see org.omg.sysml.model.sysml.NamespaceImport#getImportedNamespace() + * @see #getNamespaceImport() + * @generated + */ + EReference getNamespaceImport_ImportedNamespace(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.NullExpression Null Expression}'. + * + * + * @return the meta object for class 'Null Expression'. + * @see org.omg.sysml.model.sysml.NullExpression + * @generated + */ + EClass getNullExpression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ObjectiveMembership Objective Membership}'. + * + * + * @return the meta object for class 'Objective Membership'. + * @see org.omg.sysml.model.sysml.ObjectiveMembership + * @generated + */ + EClass getObjectiveMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ObjectiveMembership#getOwnedObjectiveRequirement Owned Objective Requirement}'. + * + * + * @return the meta object for the reference 'Owned Objective Requirement'. + * @see org.omg.sysml.model.sysml.ObjectiveMembership#getOwnedObjectiveRequirement() + * @see #getObjectiveMembership() + * @generated + */ + EReference getObjectiveMembership_OwnedObjectiveRequirement(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.OccurrenceDefinition Occurrence Definition}'. + * + * + * @return the meta object for class 'Occurrence Definition'. + * @see org.omg.sysml.model.sysml.OccurrenceDefinition + * @generated + */ + EClass getOccurrenceDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.OccurrenceDefinition#isIsIndividual Is Individual}'. + * + * + * @return the meta object for the attribute 'Is Individual'. + * @see org.omg.sysml.model.sysml.OccurrenceDefinition#isIsIndividual() + * @see #getOccurrenceDefinition() + * @generated + */ + EAttribute getOccurrenceDefinition_IsIndividual(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.OccurrenceUsage Occurrence Usage}'. + * + * + * @return the meta object for class 'Occurrence Usage'. + * @see org.omg.sysml.model.sysml.OccurrenceUsage + * @generated + */ + EClass getOccurrenceUsage(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.OccurrenceUsage#isIsIndividual Is Individual}'. + * + * + * @return the meta object for the attribute 'Is Individual'. + * @see org.omg.sysml.model.sysml.OccurrenceUsage#isIsIndividual() + * @see #getOccurrenceUsage() + * @generated + */ + EAttribute getOccurrenceUsage_IsIndividual(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.OccurrenceUsage#getPortionKind Portion Kind}'. + * + * + * @return the meta object for the attribute 'Portion Kind'. + * @see org.omg.sysml.model.sysml.OccurrenceUsage#getPortionKind() + * @see #getOccurrenceUsage() + * @generated + */ + EAttribute getOccurrenceUsage_PortionKind(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.OccurrenceUsage#getIndividualDefinition Individual Definition}'. + * + * + * @return the meta object for the reference 'Individual Definition'. + * @see org.omg.sysml.model.sysml.OccurrenceUsage#getIndividualDefinition() + * @see #getOccurrenceUsage() + * @generated + */ + EReference getOccurrenceUsage_IndividualDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.OccurrenceUsage#getOccurrenceDefinition Occurrence Definition}'. + * + * + * @return the meta object for the reference list 'Occurrence Definition'. + * @see org.omg.sysml.model.sysml.OccurrenceUsage#getOccurrenceDefinition() + * @see #getOccurrenceUsage() + * @generated + */ + EReference getOccurrenceUsage_OccurrenceDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.OperatorExpression Operator Expression}'. + * + * + * @return the meta object for class 'Operator Expression'. + * @see org.omg.sysml.model.sysml.OperatorExpression + * @generated + */ + EClass getOperatorExpression(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.OperatorExpression#getOperator Operator}'. + * + * + * @return the meta object for the attribute 'Operator'. + * @see org.omg.sysml.model.sysml.OperatorExpression#getOperator() + * @see #getOperatorExpression() + * @generated + */ + EAttribute getOperatorExpression_Operator(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.OwningMembership Owning Membership}'. + * + * + * @return the meta object for class 'Owning Membership'. + * @see org.omg.sysml.model.sysml.OwningMembership + * @generated + */ + EClass getOwningMembership(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberElementId Owned Member Element Id}'. + * + * + * @return the meta object for the attribute 'Owned Member Element Id'. + * @see org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberElementId() + * @see #getOwningMembership() + * @generated + */ + EAttribute getOwningMembership_OwnedMemberElementId(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberName Owned Member Name}'. + * + * + * @return the meta object for the attribute 'Owned Member Name'. + * @see org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberName() + * @see #getOwningMembership() + * @generated + */ + EAttribute getOwningMembership_OwnedMemberName(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberShortName Owned Member Short Name}'. + * + * + * @return the meta object for the attribute 'Owned Member Short Name'. + * @see org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberShortName() + * @see #getOwningMembership() + * @generated + */ + EAttribute getOwningMembership_OwnedMemberShortName(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberElement Owned Member Element}'. + * + * + * @return the meta object for the reference 'Owned Member Element'. + * @see org.omg.sysml.model.sysml.OwningMembership#getOwnedMemberElement() + * @see #getOwningMembership() + * @generated + */ + EReference getOwningMembership_OwnedMemberElement(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Package Package}'. + * + * + * @return the meta object for class 'Package'. + * @see org.omg.sysml.model.sysml.Package + * @generated + */ + EClass getPackage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Package#getFilterCondition Filter Condition}'. + * + * + * @return the meta object for the reference list 'Filter Condition'. + * @see org.omg.sysml.model.sysml.Package#getFilterCondition() + * @see #getPackage() + * @generated + */ + EReference getPackage_FilterCondition(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Package#includeAsMember(org.omg.sysml.model.sysml.Element) Include As Member}' operation. + * + * + * @return the meta object for the 'Include As Member' operation. + * @see org.omg.sysml.model.sysml.Package#includeAsMember(org.omg.sysml.model.sysml.Element) + * @generated + */ + EOperation getPackage__IncludeAsMember__Element(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ParameterMembership Parameter Membership}'. + * + * + * @return the meta object for class 'Parameter Membership'. + * @see org.omg.sysml.model.sysml.ParameterMembership + * @generated + */ + EClass getParameterMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ParameterMembership#getOwnedMemberParameter Owned Member Parameter}'. + * + * + * @return the meta object for the reference 'Owned Member Parameter'. + * @see org.omg.sysml.model.sysml.ParameterMembership#getOwnedMemberParameter() + * @see #getParameterMembership() + * @generated + */ + EReference getParameterMembership_OwnedMemberParameter(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.ParameterMembership#parameterDirection() Parameter Direction}' operation. + * + * + * @return the meta object for the 'Parameter Direction' operation. + * @see org.omg.sysml.model.sysml.ParameterMembership#parameterDirection() + * @generated + */ + EOperation getParameterMembership__ParameterDirection(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.PartDefinition Part Definition}'. + * + * + * @return the meta object for class 'Part Definition'. + * @see org.omg.sysml.model.sysml.PartDefinition + * @generated + */ + EClass getPartDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.PartUsage Part Usage}'. + * + * + * @return the meta object for class 'Part Usage'. + * @see org.omg.sysml.model.sysml.PartUsage + * @generated + */ + EClass getPartUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.PartUsage#getPartDefinition Part Definition}'. + * + * + * @return the meta object for the reference list 'Part Definition'. + * @see org.omg.sysml.model.sysml.PartUsage#getPartDefinition() + * @see #getPartUsage() + * @generated + */ + EReference getPartUsage_PartDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.PayloadFeature Payload Feature}'. + * + * + * @return the meta object for class 'Payload Feature'. + * @see org.omg.sysml.model.sysml.PayloadFeature + * @generated + */ + EClass getPayloadFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.PerformActionUsage Perform Action Usage}'. + * + * + * @return the meta object for class 'Perform Action Usage'. + * @see org.omg.sysml.model.sysml.PerformActionUsage + * @generated + */ + EClass getPerformActionUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.PerformActionUsage#getPerformedAction Performed Action}'. + * + * + * @return the meta object for the reference 'Performed Action'. + * @see org.omg.sysml.model.sysml.PerformActionUsage#getPerformedAction() + * @see #getPerformActionUsage() + * @generated + */ + EReference getPerformActionUsage_PerformedAction(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.PortConjugation Port Conjugation}'. + * + * + * @return the meta object for class 'Port Conjugation'. + * @see org.omg.sysml.model.sysml.PortConjugation + * @generated + */ + EClass getPortConjugation(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.PortConjugation#getConjugatedPortDefinition Conjugated Port Definition}'. + * + * + * @return the meta object for the reference 'Conjugated Port Definition'. + * @see org.omg.sysml.model.sysml.PortConjugation#getConjugatedPortDefinition() + * @see #getPortConjugation() + * @generated + */ + EReference getPortConjugation_ConjugatedPortDefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.PortConjugation#getOriginalPortDefinition Original Port Definition}'. + * + * + * @return the meta object for the reference 'Original Port Definition'. + * @see org.omg.sysml.model.sysml.PortConjugation#getOriginalPortDefinition() + * @see #getPortConjugation() + * @generated + */ + EReference getPortConjugation_OriginalPortDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.PortDefinition Port Definition}'. + * + * + * @return the meta object for class 'Port Definition'. + * @see org.omg.sysml.model.sysml.PortDefinition + * @generated + */ + EClass getPortDefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.PortDefinition#getConjugatedPortDefinition Conjugated Port Definition}'. + * + * + * @return the meta object for the reference 'Conjugated Port Definition'. + * @see org.omg.sysml.model.sysml.PortDefinition#getConjugatedPortDefinition() + * @see #getPortDefinition() + * @generated + */ + EReference getPortDefinition_ConjugatedPortDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.PortUsage Port Usage}'. + * + * + * @return the meta object for class 'Port Usage'. + * @see org.omg.sysml.model.sysml.PortUsage + * @generated + */ + EClass getPortUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.PortUsage#getPortDefinition Port Definition}'. + * + * + * @return the meta object for the reference list 'Port Definition'. + * @see org.omg.sysml.model.sysml.PortUsage#getPortDefinition() + * @see #getPortUsage() + * @generated + */ + EReference getPortUsage_PortDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Predicate Predicate}'. + * + * + * @return the meta object for class 'Predicate'. + * @see org.omg.sysml.model.sysml.Predicate + * @generated + */ + EClass getPredicate(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Redefinition Redefinition}'. + * + * + * @return the meta object for class 'Redefinition'. + * @see org.omg.sysml.model.sysml.Redefinition + * @generated + */ + EClass getRedefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Redefinition#getRedefinedFeature Redefined Feature}'. + * + * + * @return the meta object for the reference 'Redefined Feature'. + * @see org.omg.sysml.model.sysml.Redefinition#getRedefinedFeature() + * @see #getRedefinition() + * @generated + */ + EReference getRedefinition_RedefinedFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Redefinition#getRedefiningFeature Redefining Feature}'. + * + * + * @return the meta object for the reference 'Redefining Feature'. + * @see org.omg.sysml.model.sysml.Redefinition#getRedefiningFeature() + * @see #getRedefinition() + * @generated + */ + EReference getRedefinition_RedefiningFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ReferenceSubsetting Reference Subsetting}'. + * + * + * @return the meta object for class 'Reference Subsetting'. + * @see org.omg.sysml.model.sysml.ReferenceSubsetting + * @generated + */ + EClass getReferenceSubsetting(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ReferenceSubsetting#getReferencedFeature Referenced Feature}'. + * + * + * @return the meta object for the reference 'Referenced Feature'. + * @see org.omg.sysml.model.sysml.ReferenceSubsetting#getReferencedFeature() + * @see #getReferenceSubsetting() + * @generated + */ + EReference getReferenceSubsetting_ReferencedFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ReferenceSubsetting#getReferencingFeature Referencing Feature}'. + * + * + * @return the meta object for the reference 'Referencing Feature'. + * @see org.omg.sysml.model.sysml.ReferenceSubsetting#getReferencingFeature() + * @see #getReferenceSubsetting() + * @generated + */ + EReference getReferenceSubsetting_ReferencingFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ReferenceUsage Reference Usage}'. + * + * + * @return the meta object for class 'Reference Usage'. + * @see org.omg.sysml.model.sysml.ReferenceUsage + * @generated + */ + EClass getReferenceUsage(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Relationship Relationship}'. + * + * + * @return the meta object for class 'Relationship'. + * @see org.omg.sysml.model.sysml.Relationship + * @generated + */ + EClass getRelationship(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Relationship#isIsImplied Is Implied}'. + * + * + * @return the meta object for the attribute 'Is Implied'. + * @see org.omg.sysml.model.sysml.Relationship#isIsImplied() + * @see #getRelationship() + * @generated + */ + EAttribute getRelationship_IsImplied(); + + /** + * Returns the meta object for the containment reference list '{@link org.omg.sysml.model.sysml.Relationship#getOwnedRelatedElement Owned Related Element}'. + * + * + * @return the meta object for the containment reference list 'Owned Related Element'. + * @see org.omg.sysml.model.sysml.Relationship#getOwnedRelatedElement() + * @see #getRelationship() + * @generated + */ + EReference getRelationship_OwnedRelatedElement(); + + /** + * Returns the meta object for the container reference '{@link org.omg.sysml.model.sysml.Relationship#getOwningRelatedElement Owning Related Element}'. + * + * + * @return the meta object for the container reference 'Owning Related Element'. + * @see org.omg.sysml.model.sysml.Relationship#getOwningRelatedElement() + * @see #getRelationship() + * @generated + */ + EReference getRelationship_OwningRelatedElement(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Relationship#getRelatedElement Related Element}'. + * + * + * @return the meta object for the reference list 'Related Element'. + * @see org.omg.sysml.model.sysml.Relationship#getRelatedElement() + * @see #getRelationship() + * @generated + */ + EReference getRelationship_RelatedElement(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Relationship#getSource Source}'. + * + * + * @return the meta object for the reference list 'Source'. + * @see org.omg.sysml.model.sysml.Relationship#getSource() + * @see #getRelationship() + * @generated + */ + EReference getRelationship_Source(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Relationship#getTarget Target}'. + * + * + * @return the meta object for the reference list 'Target'. + * @see org.omg.sysml.model.sysml.Relationship#getTarget() + * @see #getRelationship() + * @generated + */ + EReference getRelationship_Target(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.RenderingDefinition Rendering Definition}'. + * + * + * @return the meta object for class 'Rendering Definition'. + * @see org.omg.sysml.model.sysml.RenderingDefinition + * @generated + */ + EClass getRenderingDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RenderingDefinition#getRendering Rendering}'. + * + * + * @return the meta object for the reference list 'Rendering'. + * @see org.omg.sysml.model.sysml.RenderingDefinition#getRendering() + * @see #getRenderingDefinition() + * @generated + */ + EReference getRenderingDefinition_Rendering(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.RenderingUsage Rendering Usage}'. + * + * + * @return the meta object for class 'Rendering Usage'. + * @see org.omg.sysml.model.sysml.RenderingUsage + * @generated + */ + EClass getRenderingUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.RenderingUsage#getRenderingDefinition Rendering Definition}'. + * + * + * @return the meta object for the reference 'Rendering Definition'. + * @see org.omg.sysml.model.sysml.RenderingUsage#getRenderingDefinition() + * @see #getRenderingUsage() + * @generated + */ + EReference getRenderingUsage_RenderingDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.RequirementConstraintMembership Requirement Constraint Membership}'. + * + * + * @return the meta object for class 'Requirement Constraint Membership'. + * @see org.omg.sysml.model.sysml.RequirementConstraintMembership + * @generated + */ + EClass getRequirementConstraintMembership(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.RequirementConstraintMembership#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.omg.sysml.model.sysml.RequirementConstraintMembership#getKind() + * @see #getRequirementConstraintMembership() + * @generated + */ + EAttribute getRequirementConstraintMembership_Kind(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.RequirementConstraintMembership#getOwnedConstraint Owned Constraint}'. + * + * + * @return the meta object for the reference 'Owned Constraint'. + * @see org.omg.sysml.model.sysml.RequirementConstraintMembership#getOwnedConstraint() + * @see #getRequirementConstraintMembership() + * @generated + */ + EReference getRequirementConstraintMembership_OwnedConstraint(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.RequirementConstraintMembership#getReferencedConstraint Referenced Constraint}'. + * + * + * @return the meta object for the reference 'Referenced Constraint'. + * @see org.omg.sysml.model.sysml.RequirementConstraintMembership#getReferencedConstraint() + * @see #getRequirementConstraintMembership() + * @generated + */ + EReference getRequirementConstraintMembership_ReferencedConstraint(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.RequirementDefinition Requirement Definition}'. + * + * + * @return the meta object for class 'Requirement Definition'. + * @see org.omg.sysml.model.sysml.RequirementDefinition + * @generated + */ + EClass getRequirementDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.RequirementDefinition#getReqId Req Id}'. + * + * + * @return the meta object for the attribute 'Req Id'. + * @see org.omg.sysml.model.sysml.RequirementDefinition#getReqId() + * @see #getRequirementDefinition() + * @generated + */ + EAttribute getRequirementDefinition_ReqId(); + + /** + * Returns the meta object for the attribute list '{@link org.omg.sysml.model.sysml.RequirementDefinition#getText Text}'. + * + * + * @return the meta object for the attribute list 'Text'. + * @see org.omg.sysml.model.sysml.RequirementDefinition#getText() + * @see #getRequirementDefinition() + * @generated + */ + EAttribute getRequirementDefinition_Text(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RequirementDefinition#getActorParameter Actor Parameter}'. + * + * + * @return the meta object for the reference list 'Actor Parameter'. + * @see org.omg.sysml.model.sysml.RequirementDefinition#getActorParameter() + * @see #getRequirementDefinition() + * @generated + */ + EReference getRequirementDefinition_ActorParameter(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RequirementDefinition#getAssumedConstraint Assumed Constraint}'. + * + * + * @return the meta object for the reference list 'Assumed Constraint'. + * @see org.omg.sysml.model.sysml.RequirementDefinition#getAssumedConstraint() + * @see #getRequirementDefinition() + * @generated + */ + EReference getRequirementDefinition_AssumedConstraint(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RequirementDefinition#getFramedConcern Framed Concern}'. + * + * + * @return the meta object for the reference list 'Framed Concern'. + * @see org.omg.sysml.model.sysml.RequirementDefinition#getFramedConcern() + * @see #getRequirementDefinition() + * @generated + */ + EReference getRequirementDefinition_FramedConcern(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RequirementDefinition#getRequiredConstraint Required Constraint}'. + * + * + * @return the meta object for the reference list 'Required Constraint'. + * @see org.omg.sysml.model.sysml.RequirementDefinition#getRequiredConstraint() + * @see #getRequirementDefinition() + * @generated + */ + EReference getRequirementDefinition_RequiredConstraint(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RequirementDefinition#getStakeholderParameter Stakeholder Parameter}'. + * + * + * @return the meta object for the reference list 'Stakeholder Parameter'. + * @see org.omg.sysml.model.sysml.RequirementDefinition#getStakeholderParameter() + * @see #getRequirementDefinition() + * @generated + */ + EReference getRequirementDefinition_StakeholderParameter(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.RequirementDefinition#getSubjectParameter Subject Parameter}'. + * + * + * @return the meta object for the reference 'Subject Parameter'. + * @see org.omg.sysml.model.sysml.RequirementDefinition#getSubjectParameter() + * @see #getRequirementDefinition() + * @generated + */ + EReference getRequirementDefinition_SubjectParameter(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.RequirementUsage Requirement Usage}'. + * + * + * @return the meta object for class 'Requirement Usage'. + * @see org.omg.sysml.model.sysml.RequirementUsage + * @generated + */ + EClass getRequirementUsage(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.RequirementUsage#getReqId Req Id}'. + * + * + * @return the meta object for the attribute 'Req Id'. + * @see org.omg.sysml.model.sysml.RequirementUsage#getReqId() + * @see #getRequirementUsage() + * @generated + */ + EAttribute getRequirementUsage_ReqId(); + + /** + * Returns the meta object for the attribute list '{@link org.omg.sysml.model.sysml.RequirementUsage#getText Text}'. + * + * + * @return the meta object for the attribute list 'Text'. + * @see org.omg.sysml.model.sysml.RequirementUsage#getText() + * @see #getRequirementUsage() + * @generated + */ + EAttribute getRequirementUsage_Text(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RequirementUsage#getActorParameter Actor Parameter}'. + * + * + * @return the meta object for the reference list 'Actor Parameter'. + * @see org.omg.sysml.model.sysml.RequirementUsage#getActorParameter() + * @see #getRequirementUsage() + * @generated + */ + EReference getRequirementUsage_ActorParameter(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RequirementUsage#getAssumedConstraint Assumed Constraint}'. + * + * + * @return the meta object for the reference list 'Assumed Constraint'. + * @see org.omg.sysml.model.sysml.RequirementUsage#getAssumedConstraint() + * @see #getRequirementUsage() + * @generated + */ + EReference getRequirementUsage_AssumedConstraint(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RequirementUsage#getFramedConcern Framed Concern}'. + * + * + * @return the meta object for the reference list 'Framed Concern'. + * @see org.omg.sysml.model.sysml.RequirementUsage#getFramedConcern() + * @see #getRequirementUsage() + * @generated + */ + EReference getRequirementUsage_FramedConcern(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RequirementUsage#getRequiredConstraint Required Constraint}'. + * + * + * @return the meta object for the reference list 'Required Constraint'. + * @see org.omg.sysml.model.sysml.RequirementUsage#getRequiredConstraint() + * @see #getRequirementUsage() + * @generated + */ + EReference getRequirementUsage_RequiredConstraint(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.RequirementUsage#getRequirementDefinition Requirement Definition}'. + * + * + * @return the meta object for the reference 'Requirement Definition'. + * @see org.omg.sysml.model.sysml.RequirementUsage#getRequirementDefinition() + * @see #getRequirementUsage() + * @generated + */ + EReference getRequirementUsage_RequirementDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.RequirementUsage#getStakeholderParameter Stakeholder Parameter}'. + * + * + * @return the meta object for the reference list 'Stakeholder Parameter'. + * @see org.omg.sysml.model.sysml.RequirementUsage#getStakeholderParameter() + * @see #getRequirementUsage() + * @generated + */ + EReference getRequirementUsage_StakeholderParameter(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.RequirementUsage#getSubjectParameter Subject Parameter}'. + * + * + * @return the meta object for the reference 'Subject Parameter'. + * @see org.omg.sysml.model.sysml.RequirementUsage#getSubjectParameter() + * @see #getRequirementUsage() + * @generated + */ + EReference getRequirementUsage_SubjectParameter(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.RequirementVerificationMembership Requirement Verification Membership}'. + * + * + * @return the meta object for class 'Requirement Verification Membership'. + * @see org.omg.sysml.model.sysml.RequirementVerificationMembership + * @generated + */ + EClass getRequirementVerificationMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.RequirementVerificationMembership#getOwnedRequirement Owned Requirement}'. + * + * + * @return the meta object for the reference 'Owned Requirement'. + * @see org.omg.sysml.model.sysml.RequirementVerificationMembership#getOwnedRequirement() + * @see #getRequirementVerificationMembership() + * @generated + */ + EReference getRequirementVerificationMembership_OwnedRequirement(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.RequirementVerificationMembership#getVerifiedRequirement Verified Requirement}'. + * + * + * @return the meta object for the reference 'Verified Requirement'. + * @see org.omg.sysml.model.sysml.RequirementVerificationMembership#getVerifiedRequirement() + * @see #getRequirementVerificationMembership() + * @generated + */ + EReference getRequirementVerificationMembership_VerifiedRequirement(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ResultExpressionMembership Result Expression Membership}'. + * + * + * @return the meta object for class 'Result Expression Membership'. + * @see org.omg.sysml.model.sysml.ResultExpressionMembership + * @generated + */ + EClass getResultExpressionMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ResultExpressionMembership#getOwnedResultExpression Owned Result Expression}'. + * + * + * @return the meta object for the reference 'Owned Result Expression'. + * @see org.omg.sysml.model.sysml.ResultExpressionMembership#getOwnedResultExpression() + * @see #getResultExpressionMembership() + * @generated + */ + EReference getResultExpressionMembership_OwnedResultExpression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ReturnParameterMembership Return Parameter Membership}'. + * + * + * @return the meta object for class 'Return Parameter Membership'. + * @see org.omg.sysml.model.sysml.ReturnParameterMembership + * @generated + */ + EClass getReturnParameterMembership(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.SatisfyRequirementUsage Satisfy Requirement Usage}'. + * + * + * @return the meta object for class 'Satisfy Requirement Usage'. + * @see org.omg.sysml.model.sysml.SatisfyRequirementUsage + * @generated + */ + EClass getSatisfyRequirementUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.SatisfyRequirementUsage#getSatisfiedRequirement Satisfied Requirement}'. + * + * + * @return the meta object for the reference 'Satisfied Requirement'. + * @see org.omg.sysml.model.sysml.SatisfyRequirementUsage#getSatisfiedRequirement() + * @see #getSatisfyRequirementUsage() + * @generated + */ + EReference getSatisfyRequirementUsage_SatisfiedRequirement(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.SatisfyRequirementUsage#getSatisfyingFeature Satisfying Feature}'. + * + * + * @return the meta object for the reference 'Satisfying Feature'. + * @see org.omg.sysml.model.sysml.SatisfyRequirementUsage#getSatisfyingFeature() + * @see #getSatisfyRequirementUsage() + * @generated + */ + EReference getSatisfyRequirementUsage_SatisfyingFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.SelectExpression Select Expression}'. + * + * + * @return the meta object for class 'Select Expression'. + * @see org.omg.sysml.model.sysml.SelectExpression + * @generated + */ + EClass getSelectExpression(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.SendActionUsage Send Action Usage}'. + * + * + * @return the meta object for class 'Send Action Usage'. + * @see org.omg.sysml.model.sysml.SendActionUsage + * @generated + */ + EClass getSendActionUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.SendActionUsage#getPayloadArgument Payload Argument}'. + * + * + * @return the meta object for the reference 'Payload Argument'. + * @see org.omg.sysml.model.sysml.SendActionUsage#getPayloadArgument() + * @see #getSendActionUsage() + * @generated + */ + EReference getSendActionUsage_PayloadArgument(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.SendActionUsage#getReceiverArgument Receiver Argument}'. + * + * + * @return the meta object for the reference 'Receiver Argument'. + * @see org.omg.sysml.model.sysml.SendActionUsage#getReceiverArgument() + * @see #getSendActionUsage() + * @generated + */ + EReference getSendActionUsage_ReceiverArgument(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.SendActionUsage#getSenderArgument Sender Argument}'. + * + * + * @return the meta object for the reference 'Sender Argument'. + * @see org.omg.sysml.model.sysml.SendActionUsage#getSenderArgument() + * @see #getSendActionUsage() + * @generated + */ + EReference getSendActionUsage_SenderArgument(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Specialization Specialization}'. + * + * + * @return the meta object for class 'Specialization'. + * @see org.omg.sysml.model.sysml.Specialization + * @generated + */ + EClass getSpecialization(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Specialization#getGeneral General}'. + * + * + * @return the meta object for the reference 'General'. + * @see org.omg.sysml.model.sysml.Specialization#getGeneral() + * @see #getSpecialization() + * @generated + */ + EReference getSpecialization_General(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Specialization#getOwningType Owning Type}'. + * + * + * @return the meta object for the reference 'Owning Type'. + * @see org.omg.sysml.model.sysml.Specialization#getOwningType() + * @see #getSpecialization() + * @generated + */ + EReference getSpecialization_OwningType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Specialization#getSpecific Specific}'. + * + * + * @return the meta object for the reference 'Specific'. + * @see org.omg.sysml.model.sysml.Specialization#getSpecific() + * @see #getSpecialization() + * @generated + */ + EReference getSpecialization_Specific(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.StakeholderMembership Stakeholder Membership}'. + * + * + * @return the meta object for class 'Stakeholder Membership'. + * @see org.omg.sysml.model.sysml.StakeholderMembership + * @generated + */ + EClass getStakeholderMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.StakeholderMembership#getOwnedStakeholderParameter Owned Stakeholder Parameter}'. + * + * + * @return the meta object for the reference 'Owned Stakeholder Parameter'. + * @see org.omg.sysml.model.sysml.StakeholderMembership#getOwnedStakeholderParameter() + * @see #getStakeholderMembership() + * @generated + */ + EReference getStakeholderMembership_OwnedStakeholderParameter(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.StateDefinition State Definition}'. + * + * + * @return the meta object for class 'State Definition'. + * @see org.omg.sysml.model.sysml.StateDefinition + * @generated + */ + EClass getStateDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.StateDefinition#isIsParallel Is Parallel}'. + * + * + * @return the meta object for the attribute 'Is Parallel'. + * @see org.omg.sysml.model.sysml.StateDefinition#isIsParallel() + * @see #getStateDefinition() + * @generated + */ + EAttribute getStateDefinition_IsParallel(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.StateDefinition#getDoAction Do Action}'. + * + * + * @return the meta object for the reference 'Do Action'. + * @see org.omg.sysml.model.sysml.StateDefinition#getDoAction() + * @see #getStateDefinition() + * @generated + */ + EReference getStateDefinition_DoAction(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.StateDefinition#getEntryAction Entry Action}'. + * + * + * @return the meta object for the reference 'Entry Action'. + * @see org.omg.sysml.model.sysml.StateDefinition#getEntryAction() + * @see #getStateDefinition() + * @generated + */ + EReference getStateDefinition_EntryAction(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.StateDefinition#getExitAction Exit Action}'. + * + * + * @return the meta object for the reference 'Exit Action'. + * @see org.omg.sysml.model.sysml.StateDefinition#getExitAction() + * @see #getStateDefinition() + * @generated + */ + EReference getStateDefinition_ExitAction(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.StateDefinition#getState State}'. + * + * + * @return the meta object for the reference list 'State'. + * @see org.omg.sysml.model.sysml.StateDefinition#getState() + * @see #getStateDefinition() + * @generated + */ + EReference getStateDefinition_State(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.StateSubactionMembership State Subaction Membership}'. + * + * + * @return the meta object for class 'State Subaction Membership'. + * @see org.omg.sysml.model.sysml.StateSubactionMembership + * @generated + */ + EClass getStateSubactionMembership(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.StateSubactionMembership#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.omg.sysml.model.sysml.StateSubactionMembership#getKind() + * @see #getStateSubactionMembership() + * @generated + */ + EAttribute getStateSubactionMembership_Kind(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.StateSubactionMembership#getAction Action}'. + * + * + * @return the meta object for the reference 'Action'. + * @see org.omg.sysml.model.sysml.StateSubactionMembership#getAction() + * @see #getStateSubactionMembership() + * @generated + */ + EReference getStateSubactionMembership_Action(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.StateUsage State Usage}'. + * + * + * @return the meta object for class 'State Usage'. + * @see org.omg.sysml.model.sysml.StateUsage + * @generated + */ + EClass getStateUsage(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.StateUsage#isIsParallel Is Parallel}'. + * + * + * @return the meta object for the attribute 'Is Parallel'. + * @see org.omg.sysml.model.sysml.StateUsage#isIsParallel() + * @see #getStateUsage() + * @generated + */ + EAttribute getStateUsage_IsParallel(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.StateUsage#getDoAction Do Action}'. + * + * + * @return the meta object for the reference 'Do Action'. + * @see org.omg.sysml.model.sysml.StateUsage#getDoAction() + * @see #getStateUsage() + * @generated + */ + EReference getStateUsage_DoAction(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.StateUsage#getEntryAction Entry Action}'. + * + * + * @return the meta object for the reference 'Entry Action'. + * @see org.omg.sysml.model.sysml.StateUsage#getEntryAction() + * @see #getStateUsage() + * @generated + */ + EReference getStateUsage_EntryAction(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.StateUsage#getExitAction Exit Action}'. + * + * + * @return the meta object for the reference 'Exit Action'. + * @see org.omg.sysml.model.sysml.StateUsage#getExitAction() + * @see #getStateUsage() + * @generated + */ + EReference getStateUsage_ExitAction(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.StateUsage#getStateDefinition State Definition}'. + * + * + * @return the meta object for the reference list 'State Definition'. + * @see org.omg.sysml.model.sysml.StateUsage#getStateDefinition() + * @see #getStateUsage() + * @generated + */ + EReference getStateUsage_StateDefinition(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.StateUsage#isSubstateUsage(boolean) Is Substate Usage}' operation. + * + * + * @return the meta object for the 'Is Substate Usage' operation. + * @see org.omg.sysml.model.sysml.StateUsage#isSubstateUsage(boolean) + * @generated + */ + EOperation getStateUsage__IsSubstateUsage__boolean(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Step Step}'. + * + * + * @return the meta object for class 'Step'. + * @see org.omg.sysml.model.sysml.Step + * @generated + */ + EClass getStep(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Step#getBehavior Behavior}'. + * + * + * @return the meta object for the reference list 'Behavior'. + * @see org.omg.sysml.model.sysml.Step#getBehavior() + * @see #getStep() + * @generated + */ + EReference getStep_Behavior(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Step#getParameter Parameter}'. + * + * + * @return the meta object for the reference list 'Parameter'. + * @see org.omg.sysml.model.sysml.Step#getParameter() + * @see #getStep() + * @generated + */ + EReference getStep_Parameter(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Structure Structure}'. + * + * + * @return the meta object for class 'Structure'. + * @see org.omg.sysml.model.sysml.Structure + * @generated + */ + EClass getStructure(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Subclassification Subclassification}'. + * + * + * @return the meta object for class 'Subclassification'. + * @see org.omg.sysml.model.sysml.Subclassification + * @generated + */ + EClass getSubclassification(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Subclassification#getOwningClassifier Owning Classifier}'. + * + * + * @return the meta object for the reference 'Owning Classifier'. + * @see org.omg.sysml.model.sysml.Subclassification#getOwningClassifier() + * @see #getSubclassification() + * @generated + */ + EReference getSubclassification_OwningClassifier(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Subclassification#getSubclassifier Subclassifier}'. + * + * + * @return the meta object for the reference 'Subclassifier'. + * @see org.omg.sysml.model.sysml.Subclassification#getSubclassifier() + * @see #getSubclassification() + * @generated + */ + EReference getSubclassification_Subclassifier(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Subclassification#getSuperclassifier Superclassifier}'. + * + * + * @return the meta object for the reference 'Superclassifier'. + * @see org.omg.sysml.model.sysml.Subclassification#getSuperclassifier() + * @see #getSubclassification() + * @generated + */ + EReference getSubclassification_Superclassifier(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.SubjectMembership Subject Membership}'. + * + * + * @return the meta object for class 'Subject Membership'. + * @see org.omg.sysml.model.sysml.SubjectMembership + * @generated + */ + EClass getSubjectMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.SubjectMembership#getOwnedSubjectParameter Owned Subject Parameter}'. + * + * + * @return the meta object for the reference 'Owned Subject Parameter'. + * @see org.omg.sysml.model.sysml.SubjectMembership#getOwnedSubjectParameter() + * @see #getSubjectMembership() + * @generated + */ + EReference getSubjectMembership_OwnedSubjectParameter(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Subsetting Subsetting}'. + * + * + * @return the meta object for class 'Subsetting'. + * @see org.omg.sysml.model.sysml.Subsetting + * @generated + */ + EClass getSubsetting(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Subsetting#getOwningFeature Owning Feature}'. + * + * + * @return the meta object for the reference 'Owning Feature'. + * @see org.omg.sysml.model.sysml.Subsetting#getOwningFeature() + * @see #getSubsetting() + * @generated + */ + EReference getSubsetting_OwningFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Subsetting#getSubsettedFeature Subsetted Feature}'. + * + * + * @return the meta object for the reference 'Subsetted Feature'. + * @see org.omg.sysml.model.sysml.Subsetting#getSubsettedFeature() + * @see #getSubsetting() + * @generated + */ + EReference getSubsetting_SubsettedFeature(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Subsetting#getSubsettingFeature Subsetting Feature}'. + * + * + * @return the meta object for the reference 'Subsetting Feature'. + * @see org.omg.sysml.model.sysml.Subsetting#getSubsettingFeature() + * @see #getSubsetting() + * @generated + */ + EReference getSubsetting_SubsettingFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Succession Succession}'. + * + * + * @return the meta object for class 'Succession'. + * @see org.omg.sysml.model.sysml.Succession + * @generated + */ + EClass getSuccession(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.SuccessionAsUsage Succession As Usage}'. + * + * + * @return the meta object for class 'Succession As Usage'. + * @see org.omg.sysml.model.sysml.SuccessionAsUsage + * @generated + */ + EClass getSuccessionAsUsage(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.SuccessionFlow Succession Flow}'. + * + * + * @return the meta object for class 'Succession Flow'. + * @see org.omg.sysml.model.sysml.SuccessionFlow + * @generated + */ + EClass getSuccessionFlow(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.SuccessionFlowUsage Succession Flow Usage}'. + * + * + * @return the meta object for class 'Succession Flow Usage'. + * @see org.omg.sysml.model.sysml.SuccessionFlowUsage + * @generated + */ + EClass getSuccessionFlowUsage(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.TerminateActionUsage Terminate Action Usage}'. + * + * + * @return the meta object for class 'Terminate Action Usage'. + * @see org.omg.sysml.model.sysml.TerminateActionUsage + * @generated + */ + EClass getTerminateActionUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.TerminateActionUsage#getTerminatedOccurrenceArgument Terminated Occurrence Argument}'. + * + * + * @return the meta object for the reference 'Terminated Occurrence Argument'. + * @see org.omg.sysml.model.sysml.TerminateActionUsage#getTerminatedOccurrenceArgument() + * @see #getTerminateActionUsage() + * @generated + */ + EReference getTerminateActionUsage_TerminatedOccurrenceArgument(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.TextualRepresentation Textual Representation}'. + * + * + * @return the meta object for class 'Textual Representation'. + * @see org.omg.sysml.model.sysml.TextualRepresentation + * @generated + */ + EClass getTextualRepresentation(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.TextualRepresentation#getBody Body}'. + * + * + * @return the meta object for the attribute 'Body'. + * @see org.omg.sysml.model.sysml.TextualRepresentation#getBody() + * @see #getTextualRepresentation() + * @generated + */ + EAttribute getTextualRepresentation_Body(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.TextualRepresentation#getLanguage Language}'. + * + * + * @return the meta object for the attribute 'Language'. + * @see org.omg.sysml.model.sysml.TextualRepresentation#getLanguage() + * @see #getTextualRepresentation() + * @generated + */ + EAttribute getTextualRepresentation_Language(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.TextualRepresentation#getRepresentedElement Represented Element}'. + * + * + * @return the meta object for the reference 'Represented Element'. + * @see org.omg.sysml.model.sysml.TextualRepresentation#getRepresentedElement() + * @see #getTextualRepresentation() + * @generated + */ + EReference getTextualRepresentation_RepresentedElement(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.TransitionFeatureMembership Transition Feature Membership}'. + * + * + * @return the meta object for class 'Transition Feature Membership'. + * @see org.omg.sysml.model.sysml.TransitionFeatureMembership + * @generated + */ + EClass getTransitionFeatureMembership(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.TransitionFeatureMembership#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.omg.sysml.model.sysml.TransitionFeatureMembership#getKind() + * @see #getTransitionFeatureMembership() + * @generated + */ + EAttribute getTransitionFeatureMembership_Kind(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.TransitionFeatureMembership#getTransitionFeature Transition Feature}'. + * + * + * @return the meta object for the reference 'Transition Feature'. + * @see org.omg.sysml.model.sysml.TransitionFeatureMembership#getTransitionFeature() + * @see #getTransitionFeatureMembership() + * @generated + */ + EReference getTransitionFeatureMembership_TransitionFeature(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.TransitionUsage Transition Usage}'. + * + * + * @return the meta object for class 'Transition Usage'. + * @see org.omg.sysml.model.sysml.TransitionUsage + * @generated + */ + EClass getTransitionUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.TransitionUsage#getEffectAction Effect Action}'. + * + * + * @return the meta object for the reference list 'Effect Action'. + * @see org.omg.sysml.model.sysml.TransitionUsage#getEffectAction() + * @see #getTransitionUsage() + * @generated + */ + EReference getTransitionUsage_EffectAction(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.TransitionUsage#getGuardExpression Guard Expression}'. + * + * + * @return the meta object for the reference list 'Guard Expression'. + * @see org.omg.sysml.model.sysml.TransitionUsage#getGuardExpression() + * @see #getTransitionUsage() + * @generated + */ + EReference getTransitionUsage_GuardExpression(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.TransitionUsage#getSource Source}'. + * + * + * @return the meta object for the reference 'Source'. + * @see org.omg.sysml.model.sysml.TransitionUsage#getSource() + * @see #getTransitionUsage() + * @generated + */ + EReference getTransitionUsage_Source(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.TransitionUsage#getSuccession Succession}'. + * + * + * @return the meta object for the reference 'Succession'. + * @see org.omg.sysml.model.sysml.TransitionUsage#getSuccession() + * @see #getTransitionUsage() + * @generated + */ + EReference getTransitionUsage_Succession(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.TransitionUsage#getTarget Target}'. + * + * + * @return the meta object for the reference 'Target'. + * @see org.omg.sysml.model.sysml.TransitionUsage#getTarget() + * @see #getTransitionUsage() + * @generated + */ + EReference getTransitionUsage_Target(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.TransitionUsage#getTriggerAction Trigger Action}'. + * + * + * @return the meta object for the reference list 'Trigger Action'. + * @see org.omg.sysml.model.sysml.TransitionUsage#getTriggerAction() + * @see #getTransitionUsage() + * @generated + */ + EReference getTransitionUsage_TriggerAction(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.TransitionUsage#sourceFeature() Source Feature}' operation. + * + * + * @return the meta object for the 'Source Feature' operation. + * @see org.omg.sysml.model.sysml.TransitionUsage#sourceFeature() + * @generated + */ + EOperation getTransitionUsage__SourceFeature(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.TransitionUsage#triggerPayloadParameter() Trigger Payload Parameter}' operation. + * + * + * @return the meta object for the 'Trigger Payload Parameter' operation. + * @see org.omg.sysml.model.sysml.TransitionUsage#triggerPayloadParameter() + * @generated + */ + EOperation getTransitionUsage__TriggerPayloadParameter(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.TriggerInvocationExpression Trigger Invocation Expression}'. + * + * + * @return the meta object for class 'Trigger Invocation Expression'. + * @see org.omg.sysml.model.sysml.TriggerInvocationExpression + * @generated + */ + EClass getTriggerInvocationExpression(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.TriggerInvocationExpression#getKind Kind}'. + * + * + * @return the meta object for the attribute 'Kind'. + * @see org.omg.sysml.model.sysml.TriggerInvocationExpression#getKind() + * @see #getTriggerInvocationExpression() + * @generated + */ + EAttribute getTriggerInvocationExpression_Kind(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Type Type}'. + * + * + * @return the meta object for class 'Type'. + * @see org.omg.sysml.model.sysml.Type + * @generated + */ + EClass getType(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Type#isIsAbstract Is Abstract}'. + * + * + * @return the meta object for the attribute 'Is Abstract'. + * @see org.omg.sysml.model.sysml.Type#isIsAbstract() + * @see #getType() + * @generated + */ + EAttribute getType_IsAbstract(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Type#isIsConjugated Is Conjugated}'. + * + * + * @return the meta object for the attribute 'Is Conjugated'. + * @see org.omg.sysml.model.sysml.Type#isIsConjugated() + * @see #getType() + * @generated + */ + EAttribute getType_IsConjugated(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Type#isIsSufficient Is Sufficient}'. + * + * + * @return the meta object for the attribute 'Is Sufficient'. + * @see org.omg.sysml.model.sysml.Type#isIsSufficient() + * @see #getType() + * @generated + */ + EAttribute getType_IsSufficient(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getDifferencingType Differencing Type}'. + * + * + * @return the meta object for the reference list 'Differencing Type'. + * @see org.omg.sysml.model.sysml.Type#getDifferencingType() + * @see #getType() + * @generated + */ + EReference getType_DifferencingType(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getDirectedFeature Directed Feature}'. + * + * + * @return the meta object for the reference list 'Directed Feature'. + * @see org.omg.sysml.model.sysml.Type#getDirectedFeature() + * @see #getType() + * @generated + */ + EReference getType_DirectedFeature(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getEndFeature End Feature}'. + * + * + * @return the meta object for the reference list 'End Feature'. + * @see org.omg.sysml.model.sysml.Type#getEndFeature() + * @see #getType() + * @generated + */ + EReference getType_EndFeature(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getFeature Feature}'. + * + * + * @return the meta object for the reference list 'Feature'. + * @see org.omg.sysml.model.sysml.Type#getFeature() + * @see #getType() + * @generated + */ + EReference getType_Feature(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getFeatureMembership Feature Membership}'. + * + * + * @return the meta object for the reference list 'Feature Membership'. + * @see org.omg.sysml.model.sysml.Type#getFeatureMembership() + * @see #getType() + * @generated + */ + EReference getType_FeatureMembership(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getInheritedFeature Inherited Feature}'. + * + * + * @return the meta object for the reference list 'Inherited Feature'. + * @see org.omg.sysml.model.sysml.Type#getInheritedFeature() + * @see #getType() + * @generated + */ + EReference getType_InheritedFeature(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getInheritedMembership Inherited Membership}'. + * + * + * @return the meta object for the reference list 'Inherited Membership'. + * @see org.omg.sysml.model.sysml.Type#getInheritedMembership() + * @see #getType() + * @generated + */ + EReference getType_InheritedMembership(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getInput Input}'. + * + * + * @return the meta object for the reference list 'Input'. + * @see org.omg.sysml.model.sysml.Type#getInput() + * @see #getType() + * @generated + */ + EReference getType_Input(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getIntersectingType Intersecting Type}'. + * + * + * @return the meta object for the reference list 'Intersecting Type'. + * @see org.omg.sysml.model.sysml.Type#getIntersectingType() + * @see #getType() + * @generated + */ + EReference getType_IntersectingType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Type#getMultiplicity Multiplicity}'. + * + * + * @return the meta object for the reference 'Multiplicity'. + * @see org.omg.sysml.model.sysml.Type#getMultiplicity() + * @see #getType() + * @generated + */ + EReference getType_Multiplicity(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getOutput Output}'. + * + * + * @return the meta object for the reference list 'Output'. + * @see org.omg.sysml.model.sysml.Type#getOutput() + * @see #getType() + * @generated + */ + EReference getType_Output(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Type#getOwnedConjugator Owned Conjugator}'. + * + * + * @return the meta object for the reference 'Owned Conjugator'. + * @see org.omg.sysml.model.sysml.Type#getOwnedConjugator() + * @see #getType() + * @generated + */ + EReference getType_OwnedConjugator(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getOwnedDifferencing Owned Differencing}'. + * + * + * @return the meta object for the reference list 'Owned Differencing'. + * @see org.omg.sysml.model.sysml.Type#getOwnedDifferencing() + * @see #getType() + * @generated + */ + EReference getType_OwnedDifferencing(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getOwnedDisjoining Owned Disjoining}'. + * + * + * @return the meta object for the reference list 'Owned Disjoining'. + * @see org.omg.sysml.model.sysml.Type#getOwnedDisjoining() + * @see #getType() + * @generated + */ + EReference getType_OwnedDisjoining(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getOwnedEndFeature Owned End Feature}'. + * + * + * @return the meta object for the reference list 'Owned End Feature'. + * @see org.omg.sysml.model.sysml.Type#getOwnedEndFeature() + * @see #getType() + * @generated + */ + EReference getType_OwnedEndFeature(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getOwnedFeature Owned Feature}'. + * + * + * @return the meta object for the reference list 'Owned Feature'. + * @see org.omg.sysml.model.sysml.Type#getOwnedFeature() + * @see #getType() + * @generated + */ + EReference getType_OwnedFeature(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getOwnedFeatureMembership Owned Feature Membership}'. + * + * + * @return the meta object for the reference list 'Owned Feature Membership'. + * @see org.omg.sysml.model.sysml.Type#getOwnedFeatureMembership() + * @see #getType() + * @generated + */ + EReference getType_OwnedFeatureMembership(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getOwnedIntersecting Owned Intersecting}'. + * + * + * @return the meta object for the reference list 'Owned Intersecting'. + * @see org.omg.sysml.model.sysml.Type#getOwnedIntersecting() + * @see #getType() + * @generated + */ + EReference getType_OwnedIntersecting(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getOwnedSpecialization Owned Specialization}'. + * + * + * @return the meta object for the reference list 'Owned Specialization'. + * @see org.omg.sysml.model.sysml.Type#getOwnedSpecialization() + * @see #getType() + * @generated + */ + EReference getType_OwnedSpecialization(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getOwnedUnioning Owned Unioning}'. + * + * + * @return the meta object for the reference list 'Owned Unioning'. + * @see org.omg.sysml.model.sysml.Type#getOwnedUnioning() + * @see #getType() + * @generated + */ + EReference getType_OwnedUnioning(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Type#getUnioningType Unioning Type}'. + * + * + * @return the meta object for the reference list 'Unioning Type'. + * @see org.omg.sysml.model.sysml.Type#getUnioningType() + * @see #getType() + * @generated + */ + EReference getType_UnioningType(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#allRedefinedFeaturesOf(org.omg.sysml.model.sysml.Membership) All Redefined Features Of}' operation. + * + * + * @return the meta object for the 'All Redefined Features Of' operation. + * @see org.omg.sysml.model.sysml.Type#allRedefinedFeaturesOf(org.omg.sysml.model.sysml.Membership) + * @generated + */ + EOperation getType__AllRedefinedFeaturesOf__Membership(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#allSupertypes() All Supertypes}' operation. + * + * + * @return the meta object for the 'All Supertypes' operation. + * @see org.omg.sysml.model.sysml.Type#allSupertypes() + * @generated + */ + EOperation getType__AllSupertypes(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#directionOf(org.omg.sysml.model.sysml.Feature) Direction Of}' operation. + * + * + * @return the meta object for the 'Direction Of' operation. + * @see org.omg.sysml.model.sysml.Type#directionOf(org.omg.sysml.model.sysml.Feature) + * @generated + */ + EOperation getType__DirectionOf__Feature(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#directionOfExcluding(org.omg.sysml.model.sysml.Feature, org.eclipse.emf.common.util.EList) Direction Of Excluding}' operation. + * + * + * @return the meta object for the 'Direction Of Excluding' operation. + * @see org.omg.sysml.model.sysml.Type#directionOfExcluding(org.omg.sysml.model.sysml.Feature, org.eclipse.emf.common.util.EList) + * @generated + */ + EOperation getType__DirectionOfExcluding__Feature_EList(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#inheritableMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) Inheritable Memberships}' operation. + * + * + * @return the meta object for the 'Inheritable Memberships' operation. + * @see org.omg.sysml.model.sysml.Type#inheritableMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) + * @generated + */ + EOperation getType__InheritableMemberships__EList_EList_boolean(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#inheritedMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) Inherited Memberships}' operation. + * + * + * @return the meta object for the 'Inherited Memberships' operation. + * @see org.omg.sysml.model.sysml.Type#inheritedMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) + * @generated + */ + EOperation getType__InheritedMemberships__EList_EList_boolean(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#isCompatibleWith(org.omg.sysml.model.sysml.Type) Is Compatible With}' operation. + * + * + * @return the meta object for the 'Is Compatible With' operation. + * @see org.omg.sysml.model.sysml.Type#isCompatibleWith(org.omg.sysml.model.sysml.Type) + * @generated + */ + EOperation getType__IsCompatibleWith__Type(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#multiplicities() Multiplicities}' operation. + * + * + * @return the meta object for the 'Multiplicities' operation. + * @see org.omg.sysml.model.sysml.Type#multiplicities() + * @generated + */ + EOperation getType__Multiplicities(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#nonPrivateMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) Non Private Memberships}' operation. + * + * + * @return the meta object for the 'Non Private Memberships' operation. + * @see org.omg.sysml.model.sysml.Type#nonPrivateMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) + * @generated + */ + EOperation getType__NonPrivateMemberships__EList_EList_boolean(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#removeRedefinedFeatures(org.eclipse.emf.common.util.EList) Remove Redefined Features}' operation. + * + * + * @return the meta object for the 'Remove Redefined Features' operation. + * @see org.omg.sysml.model.sysml.Type#removeRedefinedFeatures(org.eclipse.emf.common.util.EList) + * @generated + */ + EOperation getType__RemoveRedefinedFeatures__EList(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#specializes(org.omg.sysml.model.sysml.Type) Specializes}' operation. + * + * + * @return the meta object for the 'Specializes' operation. + * @see org.omg.sysml.model.sysml.Type#specializes(org.omg.sysml.model.sysml.Type) + * @generated + */ + EOperation getType__Specializes__Type(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#specializesFromLibrary(java.lang.String) Specializes From Library}' operation. + * + * + * @return the meta object for the 'Specializes From Library' operation. + * @see org.omg.sysml.model.sysml.Type#specializesFromLibrary(java.lang.String) + * @generated + */ + EOperation getType__SpecializesFromLibrary__String(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Type#supertypes(boolean) Supertypes}' operation. + * + * + * @return the meta object for the 'Supertypes' operation. + * @see org.omg.sysml.model.sysml.Type#supertypes(boolean) + * @generated + */ + EOperation getType__Supertypes__boolean(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.TypeFeaturing Type Featuring}'. + * + * + * @return the meta object for class 'Type Featuring'. + * @see org.omg.sysml.model.sysml.TypeFeaturing + * @generated + */ + EClass getTypeFeaturing(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.TypeFeaturing#getFeatureOfType Feature Of Type}'. + * + * + * @return the meta object for the reference 'Feature Of Type'. + * @see org.omg.sysml.model.sysml.TypeFeaturing#getFeatureOfType() + * @see #getTypeFeaturing() + * @generated + */ + EReference getTypeFeaturing_FeatureOfType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.TypeFeaturing#getFeaturingType Featuring Type}'. + * + * + * @return the meta object for the reference 'Featuring Type'. + * @see org.omg.sysml.model.sysml.TypeFeaturing#getFeaturingType() + * @see #getTypeFeaturing() + * @generated + */ + EReference getTypeFeaturing_FeaturingType(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.TypeFeaturing#getOwningFeatureOfType Owning Feature Of Type}'. + * + * + * @return the meta object for the reference 'Owning Feature Of Type'. + * @see org.omg.sysml.model.sysml.TypeFeaturing#getOwningFeatureOfType() + * @see #getTypeFeaturing() + * @generated + */ + EReference getTypeFeaturing_OwningFeatureOfType(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Unioning Unioning}'. + * + * + * @return the meta object for class 'Unioning'. + * @see org.omg.sysml.model.sysml.Unioning + * @generated + */ + EClass getUnioning(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Unioning#getTypeUnioned Type Unioned}'. + * + * + * @return the meta object for the reference 'Type Unioned'. + * @see org.omg.sysml.model.sysml.Unioning#getTypeUnioned() + * @see #getUnioning() + * @generated + */ + EReference getUnioning_TypeUnioned(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Unioning#getUnioningType Unioning Type}'. + * + * + * @return the meta object for the reference 'Unioning Type'. + * @see org.omg.sysml.model.sysml.Unioning#getUnioningType() + * @see #getUnioning() + * @generated + */ + EReference getUnioning_UnioningType(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.Usage Usage}'. + * + * + * @return the meta object for class 'Usage'. + * @see org.omg.sysml.model.sysml.Usage + * @generated + */ + EClass getUsage(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Usage#isIsReference Is Reference}'. + * + * + * @return the meta object for the attribute 'Is Reference'. + * @see org.omg.sysml.model.sysml.Usage#isIsReference() + * @see #getUsage() + * @generated + */ + EAttribute getUsage_IsReference(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Usage#isIsVariation Is Variation}'. + * + * + * @return the meta object for the attribute 'Is Variation'. + * @see org.omg.sysml.model.sysml.Usage#isIsVariation() + * @see #getUsage() + * @generated + */ + EAttribute getUsage_IsVariation(); + + /** + * Returns the meta object for the attribute '{@link org.omg.sysml.model.sysml.Usage#isMayTimeVary May Time Vary}'. + * + * + * @return the meta object for the attribute 'May Time Vary'. + * @see org.omg.sysml.model.sysml.Usage#isMayTimeVary() + * @see #getUsage() + * @generated + */ + EAttribute getUsage_MayTimeVary(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getDefinition Definition}'. + * + * + * @return the meta object for the reference list 'Definition'. + * @see org.omg.sysml.model.sysml.Usage#getDefinition() + * @see #getUsage() + * @generated + */ + EReference getUsage_Definition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getDirectedUsage Directed Usage}'. + * + * + * @return the meta object for the reference list 'Directed Usage'. + * @see org.omg.sysml.model.sysml.Usage#getDirectedUsage() + * @see #getUsage() + * @generated + */ + EReference getUsage_DirectedUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedAction Nested Action}'. + * + * + * @return the meta object for the reference list 'Nested Action'. + * @see org.omg.sysml.model.sysml.Usage#getNestedAction() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedAction(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedAllocation Nested Allocation}'. + * + * + * @return the meta object for the reference list 'Nested Allocation'. + * @see org.omg.sysml.model.sysml.Usage#getNestedAllocation() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedAllocation(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedAnalysisCase Nested Analysis Case}'. + * + * + * @return the meta object for the reference list 'Nested Analysis Case'. + * @see org.omg.sysml.model.sysml.Usage#getNestedAnalysisCase() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedAnalysisCase(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedAttribute Nested Attribute}'. + * + * + * @return the meta object for the reference list 'Nested Attribute'. + * @see org.omg.sysml.model.sysml.Usage#getNestedAttribute() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedAttribute(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedCalculation Nested Calculation}'. + * + * + * @return the meta object for the reference list 'Nested Calculation'. + * @see org.omg.sysml.model.sysml.Usage#getNestedCalculation() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedCalculation(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedCase Nested Case}'. + * + * + * @return the meta object for the reference list 'Nested Case'. + * @see org.omg.sysml.model.sysml.Usage#getNestedCase() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedCase(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedConcern Nested Concern}'. + * + * + * @return the meta object for the reference list 'Nested Concern'. + * @see org.omg.sysml.model.sysml.Usage#getNestedConcern() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedConcern(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedConnection Nested Connection}'. + * + * + * @return the meta object for the reference list 'Nested Connection'. + * @see org.omg.sysml.model.sysml.Usage#getNestedConnection() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedConnection(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedConstraint Nested Constraint}'. + * + * + * @return the meta object for the reference list 'Nested Constraint'. + * @see org.omg.sysml.model.sysml.Usage#getNestedConstraint() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedConstraint(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedEnumeration Nested Enumeration}'. + * + * + * @return the meta object for the reference list 'Nested Enumeration'. + * @see org.omg.sysml.model.sysml.Usage#getNestedEnumeration() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedEnumeration(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedFlow Nested Flow}'. + * + * + * @return the meta object for the reference list 'Nested Flow'. + * @see org.omg.sysml.model.sysml.Usage#getNestedFlow() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedFlow(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedInterface Nested Interface}'. + * + * + * @return the meta object for the reference list 'Nested Interface'. + * @see org.omg.sysml.model.sysml.Usage#getNestedInterface() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedInterface(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedItem Nested Item}'. + * + * + * @return the meta object for the reference list 'Nested Item'. + * @see org.omg.sysml.model.sysml.Usage#getNestedItem() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedItem(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedMetadata Nested Metadata}'. + * + * + * @return the meta object for the reference list 'Nested Metadata'. + * @see org.omg.sysml.model.sysml.Usage#getNestedMetadata() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedMetadata(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedOccurrence Nested Occurrence}'. + * + * + * @return the meta object for the reference list 'Nested Occurrence'. + * @see org.omg.sysml.model.sysml.Usage#getNestedOccurrence() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedOccurrence(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedPart Nested Part}'. + * + * + * @return the meta object for the reference list 'Nested Part'. + * @see org.omg.sysml.model.sysml.Usage#getNestedPart() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedPart(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedPort Nested Port}'. + * + * + * @return the meta object for the reference list 'Nested Port'. + * @see org.omg.sysml.model.sysml.Usage#getNestedPort() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedPort(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedReference Nested Reference}'. + * + * + * @return the meta object for the reference list 'Nested Reference'. + * @see org.omg.sysml.model.sysml.Usage#getNestedReference() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedReference(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedRendering Nested Rendering}'. + * + * + * @return the meta object for the reference list 'Nested Rendering'. + * @see org.omg.sysml.model.sysml.Usage#getNestedRendering() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedRendering(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedRequirement Nested Requirement}'. + * + * + * @return the meta object for the reference list 'Nested Requirement'. + * @see org.omg.sysml.model.sysml.Usage#getNestedRequirement() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedRequirement(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedState Nested State}'. + * + * + * @return the meta object for the reference list 'Nested State'. + * @see org.omg.sysml.model.sysml.Usage#getNestedState() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedState(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedTransition Nested Transition}'. + * + * + * @return the meta object for the reference list 'Nested Transition'. + * @see org.omg.sysml.model.sysml.Usage#getNestedTransition() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedTransition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedUsage Nested Usage}'. + * + * + * @return the meta object for the reference list 'Nested Usage'. + * @see org.omg.sysml.model.sysml.Usage#getNestedUsage() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedUseCase Nested Use Case}'. + * + * + * @return the meta object for the reference list 'Nested Use Case'. + * @see org.omg.sysml.model.sysml.Usage#getNestedUseCase() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedUseCase(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedVerificationCase Nested Verification Case}'. + * + * + * @return the meta object for the reference list 'Nested Verification Case'. + * @see org.omg.sysml.model.sysml.Usage#getNestedVerificationCase() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedVerificationCase(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedView Nested View}'. + * + * + * @return the meta object for the reference list 'Nested View'. + * @see org.omg.sysml.model.sysml.Usage#getNestedView() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedView(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getNestedViewpoint Nested Viewpoint}'. + * + * + * @return the meta object for the reference list 'Nested Viewpoint'. + * @see org.omg.sysml.model.sysml.Usage#getNestedViewpoint() + * @see #getUsage() + * @generated + */ + EReference getUsage_NestedViewpoint(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Usage#getOwningDefinition Owning Definition}'. + * + * + * @return the meta object for the reference 'Owning Definition'. + * @see org.omg.sysml.model.sysml.Usage#getOwningDefinition() + * @see #getUsage() + * @generated + */ + EReference getUsage_OwningDefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.Usage#getOwningUsage Owning Usage}'. + * + * + * @return the meta object for the reference 'Owning Usage'. + * @see org.omg.sysml.model.sysml.Usage#getOwningUsage() + * @see #getUsage() + * @generated + */ + EReference getUsage_OwningUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getUsage Usage}'. + * + * + * @return the meta object for the reference list 'Usage'. + * @see org.omg.sysml.model.sysml.Usage#getUsage() + * @see #getUsage() + * @generated + */ + EReference getUsage_Usage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getVariant Variant}'. + * + * + * @return the meta object for the reference list 'Variant'. + * @see org.omg.sysml.model.sysml.Usage#getVariant() + * @see #getUsage() + * @generated + */ + EReference getUsage_Variant(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.Usage#getVariantMembership Variant Membership}'. + * + * + * @return the meta object for the reference list 'Variant Membership'. + * @see org.omg.sysml.model.sysml.Usage#getVariantMembership() + * @see #getUsage() + * @generated + */ + EReference getUsage_VariantMembership(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.Usage#referencedFeatureTarget() Referenced Feature Target}' operation. + * + * + * @return the meta object for the 'Referenced Feature Target' operation. + * @see org.omg.sysml.model.sysml.Usage#referencedFeatureTarget() + * @generated + */ + EOperation getUsage__ReferencedFeatureTarget(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.UseCaseDefinition Use Case Definition}'. + * + * + * @return the meta object for class 'Use Case Definition'. + * @see org.omg.sysml.model.sysml.UseCaseDefinition + * @generated + */ + EClass getUseCaseDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.UseCaseDefinition#getIncludedUseCase Included Use Case}'. + * + * + * @return the meta object for the reference list 'Included Use Case'. + * @see org.omg.sysml.model.sysml.UseCaseDefinition#getIncludedUseCase() + * @see #getUseCaseDefinition() + * @generated + */ + EReference getUseCaseDefinition_IncludedUseCase(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.UseCaseUsage Use Case Usage}'. + * + * + * @return the meta object for class 'Use Case Usage'. + * @see org.omg.sysml.model.sysml.UseCaseUsage + * @generated + */ + EClass getUseCaseUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.UseCaseUsage#getIncludedUseCase Included Use Case}'. + * + * + * @return the meta object for the reference list 'Included Use Case'. + * @see org.omg.sysml.model.sysml.UseCaseUsage#getIncludedUseCase() + * @see #getUseCaseUsage() + * @generated + */ + EReference getUseCaseUsage_IncludedUseCase(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.UseCaseUsage#getUseCaseDefinition Use Case Definition}'. + * + * + * @return the meta object for the reference 'Use Case Definition'. + * @see org.omg.sysml.model.sysml.UseCaseUsage#getUseCaseDefinition() + * @see #getUseCaseUsage() + * @generated + */ + EReference getUseCaseUsage_UseCaseDefinition(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.VariantMembership Variant Membership}'. + * + * + * @return the meta object for class 'Variant Membership'. + * @see org.omg.sysml.model.sysml.VariantMembership + * @generated + */ + EClass getVariantMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.VariantMembership#getOwnedVariantUsage Owned Variant Usage}'. + * + * + * @return the meta object for the reference 'Owned Variant Usage'. + * @see org.omg.sysml.model.sysml.VariantMembership#getOwnedVariantUsage() + * @see #getVariantMembership() + * @generated + */ + EReference getVariantMembership_OwnedVariantUsage(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.VerificationCaseDefinition Verification Case Definition}'. + * + * + * @return the meta object for class 'Verification Case Definition'. + * @see org.omg.sysml.model.sysml.VerificationCaseDefinition + * @generated + */ + EClass getVerificationCaseDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.VerificationCaseDefinition#getVerifiedRequirement Verified Requirement}'. + * + * + * @return the meta object for the reference list 'Verified Requirement'. + * @see org.omg.sysml.model.sysml.VerificationCaseDefinition#getVerifiedRequirement() + * @see #getVerificationCaseDefinition() + * @generated + */ + EReference getVerificationCaseDefinition_VerifiedRequirement(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.VerificationCaseUsage Verification Case Usage}'. + * + * + * @return the meta object for class 'Verification Case Usage'. + * @see org.omg.sysml.model.sysml.VerificationCaseUsage + * @generated + */ + EClass getVerificationCaseUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.VerificationCaseUsage#getVerificationCaseDefinition Verification Case Definition}'. + * + * + * @return the meta object for the reference 'Verification Case Definition'. + * @see org.omg.sysml.model.sysml.VerificationCaseUsage#getVerificationCaseDefinition() + * @see #getVerificationCaseUsage() + * @generated + */ + EReference getVerificationCaseUsage_VerificationCaseDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.VerificationCaseUsage#getVerifiedRequirement Verified Requirement}'. + * + * + * @return the meta object for the reference list 'Verified Requirement'. + * @see org.omg.sysml.model.sysml.VerificationCaseUsage#getVerifiedRequirement() + * @see #getVerificationCaseUsage() + * @generated + */ + EReference getVerificationCaseUsage_VerifiedRequirement(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ViewDefinition View Definition}'. + * + * + * @return the meta object for class 'View Definition'. + * @see org.omg.sysml.model.sysml.ViewDefinition + * @generated + */ + EClass getViewDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ViewDefinition#getSatisfiedViewpoint Satisfied Viewpoint}'. + * + * + * @return the meta object for the reference list 'Satisfied Viewpoint'. + * @see org.omg.sysml.model.sysml.ViewDefinition#getSatisfiedViewpoint() + * @see #getViewDefinition() + * @generated + */ + EReference getViewDefinition_SatisfiedViewpoint(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ViewDefinition#getView View}'. + * + * + * @return the meta object for the reference list 'View'. + * @see org.omg.sysml.model.sysml.ViewDefinition#getView() + * @see #getViewDefinition() + * @generated + */ + EReference getViewDefinition_View(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ViewDefinition#getViewCondition View Condition}'. + * + * + * @return the meta object for the reference list 'View Condition'. + * @see org.omg.sysml.model.sysml.ViewDefinition#getViewCondition() + * @see #getViewDefinition() + * @generated + */ + EReference getViewDefinition_ViewCondition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ViewDefinition#getViewRendering View Rendering}'. + * + * + * @return the meta object for the reference 'View Rendering'. + * @see org.omg.sysml.model.sysml.ViewDefinition#getViewRendering() + * @see #getViewDefinition() + * @generated + */ + EReference getViewDefinition_ViewRendering(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ViewpointDefinition Viewpoint Definition}'. + * + * + * @return the meta object for class 'Viewpoint Definition'. + * @see org.omg.sysml.model.sysml.ViewpointDefinition + * @generated + */ + EClass getViewpointDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ViewpointDefinition#getViewpointStakeholder Viewpoint Stakeholder}'. + * + * + * @return the meta object for the reference list 'Viewpoint Stakeholder'. + * @see org.omg.sysml.model.sysml.ViewpointDefinition#getViewpointStakeholder() + * @see #getViewpointDefinition() + * @generated + */ + EReference getViewpointDefinition_ViewpointStakeholder(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ViewpointUsage Viewpoint Usage}'. + * + * + * @return the meta object for class 'Viewpoint Usage'. + * @see org.omg.sysml.model.sysml.ViewpointUsage + * @generated + */ + EClass getViewpointUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ViewpointUsage#getViewpointDefinition Viewpoint Definition}'. + * + * + * @return the meta object for the reference 'Viewpoint Definition'. + * @see org.omg.sysml.model.sysml.ViewpointUsage#getViewpointDefinition() + * @see #getViewpointUsage() + * @generated + */ + EReference getViewpointUsage_ViewpointDefinition(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ViewpointUsage#getViewpointStakeholder Viewpoint Stakeholder}'. + * + * + * @return the meta object for the reference list 'Viewpoint Stakeholder'. + * @see org.omg.sysml.model.sysml.ViewpointUsage#getViewpointStakeholder() + * @see #getViewpointUsage() + * @generated + */ + EReference getViewpointUsage_ViewpointStakeholder(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ViewRenderingMembership View Rendering Membership}'. + * + * + * @return the meta object for class 'View Rendering Membership'. + * @see org.omg.sysml.model.sysml.ViewRenderingMembership + * @generated + */ + EClass getViewRenderingMembership(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ViewRenderingMembership#getOwnedRendering Owned Rendering}'. + * + * + * @return the meta object for the reference 'Owned Rendering'. + * @see org.omg.sysml.model.sysml.ViewRenderingMembership#getOwnedRendering() + * @see #getViewRenderingMembership() + * @generated + */ + EReference getViewRenderingMembership_OwnedRendering(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ViewRenderingMembership#getReferencedRendering Referenced Rendering}'. + * + * + * @return the meta object for the reference 'Referenced Rendering'. + * @see org.omg.sysml.model.sysml.ViewRenderingMembership#getReferencedRendering() + * @see #getViewRenderingMembership() + * @generated + */ + EReference getViewRenderingMembership_ReferencedRendering(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.ViewUsage View Usage}'. + * + * + * @return the meta object for class 'View Usage'. + * @see org.omg.sysml.model.sysml.ViewUsage + * @generated + */ + EClass getViewUsage(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ViewUsage#getExposedElement Exposed Element}'. + * + * + * @return the meta object for the reference list 'Exposed Element'. + * @see org.omg.sysml.model.sysml.ViewUsage#getExposedElement() + * @see #getViewUsage() + * @generated + */ + EReference getViewUsage_ExposedElement(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ViewUsage#getSatisfiedViewpoint Satisfied Viewpoint}'. + * + * + * @return the meta object for the reference list 'Satisfied Viewpoint'. + * @see org.omg.sysml.model.sysml.ViewUsage#getSatisfiedViewpoint() + * @see #getViewUsage() + * @generated + */ + EReference getViewUsage_SatisfiedViewpoint(); + + /** + * Returns the meta object for the reference list '{@link org.omg.sysml.model.sysml.ViewUsage#getViewCondition View Condition}'. + * + * + * @return the meta object for the reference list 'View Condition'. + * @see org.omg.sysml.model.sysml.ViewUsage#getViewCondition() + * @see #getViewUsage() + * @generated + */ + EReference getViewUsage_ViewCondition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ViewUsage#getViewDefinition View Definition}'. + * + * + * @return the meta object for the reference 'View Definition'. + * @see org.omg.sysml.model.sysml.ViewUsage#getViewDefinition() + * @see #getViewUsage() + * @generated + */ + EReference getViewUsage_ViewDefinition(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.ViewUsage#getViewRendering View Rendering}'. + * + * + * @return the meta object for the reference 'View Rendering'. + * @see org.omg.sysml.model.sysml.ViewUsage#getViewRendering() + * @see #getViewUsage() + * @generated + */ + EReference getViewUsage_ViewRendering(); + + /** + * Returns the meta object for the '{@link org.omg.sysml.model.sysml.ViewUsage#includeAsExposed(org.omg.sysml.model.sysml.Element) Include As Exposed}' operation. + * + * + * @return the meta object for the 'Include As Exposed' operation. + * @see org.omg.sysml.model.sysml.ViewUsage#includeAsExposed(org.omg.sysml.model.sysml.Element) + * @generated + */ + EOperation getViewUsage__IncludeAsExposed__Element(); + + /** + * Returns the meta object for class '{@link org.omg.sysml.model.sysml.WhileLoopActionUsage While Loop Action Usage}'. + * + * + * @return the meta object for class 'While Loop Action Usage'. + * @see org.omg.sysml.model.sysml.WhileLoopActionUsage + * @generated + */ + EClass getWhileLoopActionUsage(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.WhileLoopActionUsage#getUntilArgument Until Argument}'. + * + * + * @return the meta object for the reference 'Until Argument'. + * @see org.omg.sysml.model.sysml.WhileLoopActionUsage#getUntilArgument() + * @see #getWhileLoopActionUsage() + * @generated + */ + EReference getWhileLoopActionUsage_UntilArgument(); + + /** + * Returns the meta object for the reference '{@link org.omg.sysml.model.sysml.WhileLoopActionUsage#getWhileArgument While Argument}'. + * + * + * @return the meta object for the reference 'While Argument'. + * @see org.omg.sysml.model.sysml.WhileLoopActionUsage#getWhileArgument() + * @see #getWhileLoopActionUsage() + * @generated + */ + EReference getWhileLoopActionUsage_WhileArgument(); + + /** + * Returns the meta object for enum '{@link org.omg.sysml.model.sysml.FeatureDirectionKind Feature Direction Kind}'. + * + * + * @return the meta object for enum 'Feature Direction Kind'. + * @see org.omg.sysml.model.sysml.FeatureDirectionKind + * @generated + */ + EEnum getFeatureDirectionKind(); + + /** + * Returns the meta object for enum '{@link org.omg.sysml.model.sysml.PortionKind Portion Kind}'. + * + * + * @return the meta object for enum 'Portion Kind'. + * @see org.omg.sysml.model.sysml.PortionKind + * @generated + */ + EEnum getPortionKind(); + + /** + * Returns the meta object for enum '{@link org.omg.sysml.model.sysml.RequirementConstraintKind Requirement Constraint Kind}'. + * + * + * @return the meta object for enum 'Requirement Constraint Kind'. + * @see org.omg.sysml.model.sysml.RequirementConstraintKind + * @generated + */ + EEnum getRequirementConstraintKind(); + + /** + * Returns the meta object for enum '{@link org.omg.sysml.model.sysml.StateSubactionKind State Subaction Kind}'. + * + * + * @return the meta object for enum 'State Subaction Kind'. + * @see org.omg.sysml.model.sysml.StateSubactionKind + * @generated + */ + EEnum getStateSubactionKind(); + + /** + * Returns the meta object for enum '{@link org.omg.sysml.model.sysml.TransitionFeatureKind Transition Feature Kind}'. + * + * + * @return the meta object for enum 'Transition Feature Kind'. + * @see org.omg.sysml.model.sysml.TransitionFeatureKind + * @generated + */ + EEnum getTransitionFeatureKind(); + + /** + * Returns the meta object for enum '{@link org.omg.sysml.model.sysml.TriggerKind Trigger Kind}'. + * + * + * @return the meta object for enum 'Trigger Kind'. + * @see org.omg.sysml.model.sysml.TriggerKind + * @generated + */ + EEnum getTriggerKind(); + + /** + * Returns the meta object for enum '{@link org.omg.sysml.model.sysml.VisibilityKind Visibility Kind}'. + * + * + * @return the meta object for enum 'Visibility Kind'. + * @see org.omg.sysml.model.sysml.VisibilityKind + * @generated + */ + EEnum getVisibilityKind(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + SysMLFactory getSysMLFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AcceptActionUsageImpl Accept Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AcceptActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAcceptActionUsage() + * @generated + */ + EClass ACCEPT_ACTION_USAGE = eINSTANCE.getAcceptActionUsage(); + + /** + * The meta object literal for the 'Payload Argument' reference feature. + * + * + * @generated + */ + EReference ACCEPT_ACTION_USAGE__PAYLOAD_ARGUMENT = eINSTANCE.getAcceptActionUsage_PayloadArgument(); + + /** + * The meta object literal for the 'Payload Parameter' reference feature. + * + * + * @generated + */ + EReference ACCEPT_ACTION_USAGE__PAYLOAD_PARAMETER = eINSTANCE.getAcceptActionUsage_PayloadParameter(); + + /** + * The meta object literal for the 'Receiver Argument' reference feature. + * + * + * @generated + */ + EReference ACCEPT_ACTION_USAGE__RECEIVER_ARGUMENT = eINSTANCE.getAcceptActionUsage_ReceiverArgument(); + + /** + * The meta object literal for the 'Is Trigger Action' operation. + * + * + * @generated + */ + EOperation ACCEPT_ACTION_USAGE___IS_TRIGGER_ACTION = eINSTANCE.getAcceptActionUsage__IsTriggerAction(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ActionDefinitionImpl Action Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ActionDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getActionDefinition() + * @generated + */ + EClass ACTION_DEFINITION = eINSTANCE.getActionDefinition(); + + /** + * The meta object literal for the 'Action' reference list feature. + * + * + * @generated + */ + EReference ACTION_DEFINITION__ACTION = eINSTANCE.getActionDefinition_Action(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ActionUsageImpl Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getActionUsage() + * @generated + */ + EClass ACTION_USAGE = eINSTANCE.getActionUsage(); + + /** + * The meta object literal for the 'Action Definition' reference list feature. + * + * + * @generated + */ + EReference ACTION_USAGE__ACTION_DEFINITION = eINSTANCE.getActionUsage_ActionDefinition(); + + /** + * The meta object literal for the 'Argument' operation. + * + * + * @generated + */ + EOperation ACTION_USAGE___ARGUMENT__INT = eINSTANCE.getActionUsage__Argument__int(); + + /** + * The meta object literal for the 'Input Parameter' operation. + * + * + * @generated + */ + EOperation ACTION_USAGE___INPUT_PARAMETER__INT = eINSTANCE.getActionUsage__InputParameter__int(); + + /** + * The meta object literal for the 'Input Parameters' operation. + * + * + * @generated + */ + EOperation ACTION_USAGE___INPUT_PARAMETERS = eINSTANCE.getActionUsage__InputParameters(); + + /** + * The meta object literal for the 'Is Subaction Usage' operation. + * + * + * @generated + */ + EOperation ACTION_USAGE___IS_SUBACTION_USAGE = eINSTANCE.getActionUsage__IsSubactionUsage(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ActorMembershipImpl Actor Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ActorMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getActorMembership() + * @generated + */ + EClass ACTOR_MEMBERSHIP = eINSTANCE.getActorMembership(); + + /** + * The meta object literal for the 'Owned Actor Parameter' reference feature. + * + * + * @generated + */ + EReference ACTOR_MEMBERSHIP__OWNED_ACTOR_PARAMETER = eINSTANCE.getActorMembership_OwnedActorParameter(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AllocationDefinitionImpl Allocation Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AllocationDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAllocationDefinition() + * @generated + */ + EClass ALLOCATION_DEFINITION = eINSTANCE.getAllocationDefinition(); + + /** + * The meta object literal for the 'Allocation' reference list feature. + * + * + * @generated + */ + EReference ALLOCATION_DEFINITION__ALLOCATION = eINSTANCE.getAllocationDefinition_Allocation(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AllocationUsageImpl Allocation Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AllocationUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAllocationUsage() + * @generated + */ + EClass ALLOCATION_USAGE = eINSTANCE.getAllocationUsage(); + + /** + * The meta object literal for the 'Allocation Definition' reference list feature. + * + * + * @generated + */ + EReference ALLOCATION_USAGE__ALLOCATION_DEFINITION = eINSTANCE.getAllocationUsage_AllocationDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AnalysisCaseDefinitionImpl Analysis Case Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AnalysisCaseDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAnalysisCaseDefinition() + * @generated + */ + EClass ANALYSIS_CASE_DEFINITION = eINSTANCE.getAnalysisCaseDefinition(); + + /** + * The meta object literal for the 'Result Expression' reference feature. + * + * + * @generated + */ + EReference ANALYSIS_CASE_DEFINITION__RESULT_EXPRESSION = eINSTANCE.getAnalysisCaseDefinition_ResultExpression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AnalysisCaseUsageImpl Analysis Case Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AnalysisCaseUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAnalysisCaseUsage() + * @generated + */ + EClass ANALYSIS_CASE_USAGE = eINSTANCE.getAnalysisCaseUsage(); + + /** + * The meta object literal for the 'Analysis Case Definition' reference feature. + * + * + * @generated + */ + EReference ANALYSIS_CASE_USAGE__ANALYSIS_CASE_DEFINITION = eINSTANCE.getAnalysisCaseUsage_AnalysisCaseDefinition(); + + /** + * The meta object literal for the 'Result Expression' reference feature. + * + * + * @generated + */ + EReference ANALYSIS_CASE_USAGE__RESULT_EXPRESSION = eINSTANCE.getAnalysisCaseUsage_ResultExpression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AnnotatingElementImpl Annotating Element}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AnnotatingElementImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAnnotatingElement() + * @generated + */ + EClass ANNOTATING_ELEMENT = eINSTANCE.getAnnotatingElement(); + + /** + * The meta object literal for the 'Annotated Element' reference list feature. + * + * + * @generated + */ + EReference ANNOTATING_ELEMENT__ANNOTATED_ELEMENT = eINSTANCE.getAnnotatingElement_AnnotatedElement(); + + /** + * The meta object literal for the 'Annotation' reference list feature. + * + * + * @generated + */ + EReference ANNOTATING_ELEMENT__ANNOTATION = eINSTANCE.getAnnotatingElement_Annotation(); + + /** + * The meta object literal for the 'Owned Annotating Relationship' reference list feature. + * + * + * @generated + */ + EReference ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP = eINSTANCE.getAnnotatingElement_OwnedAnnotatingRelationship(); + + /** + * The meta object literal for the 'Owning Annotating Relationship' reference feature. + * + * + * @generated + */ + EReference ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP = eINSTANCE.getAnnotatingElement_OwningAnnotatingRelationship(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AnnotationImpl Annotation}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AnnotationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAnnotation() + * @generated + */ + EClass ANNOTATION = eINSTANCE.getAnnotation(); + + /** + * The meta object literal for the 'Annotated Element' reference feature. + * + * + * @generated + */ + EReference ANNOTATION__ANNOTATED_ELEMENT = eINSTANCE.getAnnotation_AnnotatedElement(); + + /** + * The meta object literal for the 'Annotating Element' reference feature. + * + * + * @generated + */ + EReference ANNOTATION__ANNOTATING_ELEMENT = eINSTANCE.getAnnotation_AnnotatingElement(); + + /** + * The meta object literal for the 'Owned Annotating Element' reference feature. + * + * + * @generated + */ + EReference ANNOTATION__OWNED_ANNOTATING_ELEMENT = eINSTANCE.getAnnotation_OwnedAnnotatingElement(); + + /** + * The meta object literal for the 'Owning Annotated Element' reference feature. + * + * + * @generated + */ + EReference ANNOTATION__OWNING_ANNOTATED_ELEMENT = eINSTANCE.getAnnotation_OwningAnnotatedElement(); + + /** + * The meta object literal for the 'Owning Annotating Element' reference feature. + * + * + * @generated + */ + EReference ANNOTATION__OWNING_ANNOTATING_ELEMENT = eINSTANCE.getAnnotation_OwningAnnotatingElement(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AssertConstraintUsageImpl Assert Constraint Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AssertConstraintUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAssertConstraintUsage() + * @generated + */ + EClass ASSERT_CONSTRAINT_USAGE = eINSTANCE.getAssertConstraintUsage(); + + /** + * The meta object literal for the 'Asserted Constraint' reference feature. + * + * + * @generated + */ + EReference ASSERT_CONSTRAINT_USAGE__ASSERTED_CONSTRAINT = eINSTANCE.getAssertConstraintUsage_AssertedConstraint(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AssignmentActionUsageImpl Assignment Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AssignmentActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAssignmentActionUsage() + * @generated + */ + EClass ASSIGNMENT_ACTION_USAGE = eINSTANCE.getAssignmentActionUsage(); + + /** + * The meta object literal for the 'Referent' reference feature. + * + * + * @generated + */ + EReference ASSIGNMENT_ACTION_USAGE__REFERENT = eINSTANCE.getAssignmentActionUsage_Referent(); + + /** + * The meta object literal for the 'Target Argument' reference feature. + * + * + * @generated + */ + EReference ASSIGNMENT_ACTION_USAGE__TARGET_ARGUMENT = eINSTANCE.getAssignmentActionUsage_TargetArgument(); + + /** + * The meta object literal for the 'Value Expression' reference feature. + * + * + * @generated + */ + EReference ASSIGNMENT_ACTION_USAGE__VALUE_EXPRESSION = eINSTANCE.getAssignmentActionUsage_ValueExpression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AssociationImpl Association}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AssociationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAssociation() + * @generated + */ + EClass ASSOCIATION = eINSTANCE.getAssociation(); + + /** + * The meta object literal for the 'Association End' reference list feature. + * + * + * @generated + */ + EReference ASSOCIATION__ASSOCIATION_END = eINSTANCE.getAssociation_AssociationEnd(); + + /** + * The meta object literal for the 'Related Type' reference list feature. + * + * + * @generated + */ + EReference ASSOCIATION__RELATED_TYPE = eINSTANCE.getAssociation_RelatedType(); + + /** + * The meta object literal for the 'Source Type' reference feature. + * + * + * @generated + */ + EReference ASSOCIATION__SOURCE_TYPE = eINSTANCE.getAssociation_SourceType(); + + /** + * The meta object literal for the 'Target Type' reference list feature. + * + * + * @generated + */ + EReference ASSOCIATION__TARGET_TYPE = eINSTANCE.getAssociation_TargetType(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AssociationStructureImpl Association Structure}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AssociationStructureImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAssociationStructure() + * @generated + */ + EClass ASSOCIATION_STRUCTURE = eINSTANCE.getAssociationStructure(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AttributeDefinitionImpl Attribute Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AttributeDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAttributeDefinition() + * @generated + */ + EClass ATTRIBUTE_DEFINITION = eINSTANCE.getAttributeDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.AttributeUsageImpl Attribute Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.AttributeUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getAttributeUsage() + * @generated + */ + EClass ATTRIBUTE_USAGE = eINSTANCE.getAttributeUsage(); + + /** + * The meta object literal for the 'Attribute Definition' reference list feature. + * + * + * @generated + */ + EReference ATTRIBUTE_USAGE__ATTRIBUTE_DEFINITION = eINSTANCE.getAttributeUsage_AttributeDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.BehaviorImpl Behavior}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.BehaviorImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getBehavior() + * @generated + */ + EClass BEHAVIOR = eINSTANCE.getBehavior(); + + /** + * The meta object literal for the 'Parameter' reference list feature. + * + * + * @generated + */ + EReference BEHAVIOR__PARAMETER = eINSTANCE.getBehavior_Parameter(); + + /** + * The meta object literal for the 'Step' reference list feature. + * + * + * @generated + */ + EReference BEHAVIOR__STEP = eINSTANCE.getBehavior_Step(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.BindingConnectorImpl Binding Connector}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.BindingConnectorImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getBindingConnector() + * @generated + */ + EClass BINDING_CONNECTOR = eINSTANCE.getBindingConnector(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.BindingConnectorAsUsageImpl Binding Connector As Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.BindingConnectorAsUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getBindingConnectorAsUsage() + * @generated + */ + EClass BINDING_CONNECTOR_AS_USAGE = eINSTANCE.getBindingConnectorAsUsage(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.BooleanExpressionImpl Boolean Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.BooleanExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getBooleanExpression() + * @generated + */ + EClass BOOLEAN_EXPRESSION = eINSTANCE.getBooleanExpression(); + + /** + * The meta object literal for the 'Predicate' reference feature. + * + * + * @generated + */ + EReference BOOLEAN_EXPRESSION__PREDICATE = eINSTANCE.getBooleanExpression_Predicate(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.CalculationDefinitionImpl Calculation Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CalculationDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCalculationDefinition() + * @generated + */ + EClass CALCULATION_DEFINITION = eINSTANCE.getCalculationDefinition(); + + /** + * The meta object literal for the 'Calculation' reference list feature. + * + * + * @generated + */ + EReference CALCULATION_DEFINITION__CALCULATION = eINSTANCE.getCalculationDefinition_Calculation(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.CalculationUsageImpl Calculation Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CalculationUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCalculationUsage() + * @generated + */ + EClass CALCULATION_USAGE = eINSTANCE.getCalculationUsage(); + + /** + * The meta object literal for the 'Calculation Definition' reference feature. + * + * + * @generated + */ + EReference CALCULATION_USAGE__CALCULATION_DEFINITION = eINSTANCE.getCalculationUsage_CalculationDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.CaseDefinitionImpl Case Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CaseDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCaseDefinition() + * @generated + */ + EClass CASE_DEFINITION = eINSTANCE.getCaseDefinition(); + + /** + * The meta object literal for the 'Actor Parameter' reference list feature. + * + * + * @generated + */ + EReference CASE_DEFINITION__ACTOR_PARAMETER = eINSTANCE.getCaseDefinition_ActorParameter(); + + /** + * The meta object literal for the 'Objective Requirement' reference feature. + * + * + * @generated + */ + EReference CASE_DEFINITION__OBJECTIVE_REQUIREMENT = eINSTANCE.getCaseDefinition_ObjectiveRequirement(); + + /** + * The meta object literal for the 'Subject Parameter' reference feature. + * + * + * @generated + */ + EReference CASE_DEFINITION__SUBJECT_PARAMETER = eINSTANCE.getCaseDefinition_SubjectParameter(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.CaseUsageImpl Case Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CaseUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCaseUsage() + * @generated + */ + EClass CASE_USAGE = eINSTANCE.getCaseUsage(); + + /** + * The meta object literal for the 'Actor Parameter' reference list feature. + * + * + * @generated + */ + EReference CASE_USAGE__ACTOR_PARAMETER = eINSTANCE.getCaseUsage_ActorParameter(); + + /** + * The meta object literal for the 'Case Definition' reference feature. + * + * + * @generated + */ + EReference CASE_USAGE__CASE_DEFINITION = eINSTANCE.getCaseUsage_CaseDefinition(); + + /** + * The meta object literal for the 'Objective Requirement' reference feature. + * + * + * @generated + */ + EReference CASE_USAGE__OBJECTIVE_REQUIREMENT = eINSTANCE.getCaseUsage_ObjectiveRequirement(); + + /** + * The meta object literal for the 'Subject Parameter' reference feature. + * + * + * @generated + */ + EReference CASE_USAGE__SUBJECT_PARAMETER = eINSTANCE.getCaseUsage_SubjectParameter(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ClassImpl Class}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ClassImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getClass_() + * @generated + */ + EClass CLASS = eINSTANCE.getClass_(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ClassifierImpl Classifier}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ClassifierImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getClassifier() + * @generated + */ + EClass CLASSIFIER = eINSTANCE.getClassifier(); + + /** + * The meta object literal for the 'Owned Subclassification' reference list feature. + * + * + * @generated + */ + EReference CLASSIFIER__OWNED_SUBCLASSIFICATION = eINSTANCE.getClassifier_OwnedSubclassification(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.CollectExpressionImpl Collect Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CollectExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCollectExpression() + * @generated + */ + EClass COLLECT_EXPRESSION = eINSTANCE.getCollectExpression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.CommentImpl Comment}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CommentImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getComment() + * @generated + */ + EClass COMMENT = eINSTANCE.getComment(); + + /** + * The meta object literal for the 'Body' attribute feature. + * + * + * @generated + */ + EAttribute COMMENT__BODY = eINSTANCE.getComment_Body(); + + /** + * The meta object literal for the 'Locale' attribute feature. + * + * + * @generated + */ + EAttribute COMMENT__LOCALE = eINSTANCE.getComment_Locale(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConcernDefinitionImpl Concern Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConcernDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConcernDefinition() + * @generated + */ + EClass CONCERN_DEFINITION = eINSTANCE.getConcernDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConcernUsageImpl Concern Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConcernUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConcernUsage() + * @generated + */ + EClass CONCERN_USAGE = eINSTANCE.getConcernUsage(); + + /** + * The meta object literal for the 'Concern Definition' reference feature. + * + * + * @generated + */ + EReference CONCERN_USAGE__CONCERN_DEFINITION = eINSTANCE.getConcernUsage_ConcernDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConjugatedPortDefinitionImpl Conjugated Port Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConjugatedPortDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConjugatedPortDefinition() + * @generated + */ + EClass CONJUGATED_PORT_DEFINITION = eINSTANCE.getConjugatedPortDefinition(); + + /** + * The meta object literal for the 'Original Port Definition' reference feature. + * + * + * @generated + */ + EReference CONJUGATED_PORT_DEFINITION__ORIGINAL_PORT_DEFINITION = eINSTANCE.getConjugatedPortDefinition_OriginalPortDefinition(); + + /** + * The meta object literal for the 'Owned Port Conjugator' reference feature. + * + * + * @generated + */ + EReference CONJUGATED_PORT_DEFINITION__OWNED_PORT_CONJUGATOR = eINSTANCE.getConjugatedPortDefinition_OwnedPortConjugator(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConjugatedPortTypingImpl Conjugated Port Typing}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConjugatedPortTypingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConjugatedPortTyping() + * @generated + */ + EClass CONJUGATED_PORT_TYPING = eINSTANCE.getConjugatedPortTyping(); + + /** + * The meta object literal for the 'Conjugated Port Definition' reference feature. + * + * + * @generated + */ + EReference CONJUGATED_PORT_TYPING__CONJUGATED_PORT_DEFINITION = eINSTANCE.getConjugatedPortTyping_ConjugatedPortDefinition(); + + /** + * The meta object literal for the 'Port Definition' reference feature. + * + * + * @generated + */ + EReference CONJUGATED_PORT_TYPING__PORT_DEFINITION = eINSTANCE.getConjugatedPortTyping_PortDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConjugationImpl Conjugation}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConjugationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConjugation() + * @generated + */ + EClass CONJUGATION = eINSTANCE.getConjugation(); + + /** + * The meta object literal for the 'Conjugated Type' reference feature. + * + * + * @generated + */ + EReference CONJUGATION__CONJUGATED_TYPE = eINSTANCE.getConjugation_ConjugatedType(); + + /** + * The meta object literal for the 'Original Type' reference feature. + * + * + * @generated + */ + EReference CONJUGATION__ORIGINAL_TYPE = eINSTANCE.getConjugation_OriginalType(); + + /** + * The meta object literal for the 'Owning Type' reference feature. + * + * + * @generated + */ + EReference CONJUGATION__OWNING_TYPE = eINSTANCE.getConjugation_OwningType(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl Connection Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConnectionDefinition() + * @generated + */ + EClass CONNECTION_DEFINITION = eINSTANCE.getConnectionDefinition(); + + /** + * The meta object literal for the 'Connection End' reference list feature. + * + * + * @generated + */ + EReference CONNECTION_DEFINITION__CONNECTION_END = eINSTANCE.getConnectionDefinition_ConnectionEnd(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConnectionUsageImpl Connection Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConnectionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConnectionUsage() + * @generated + */ + EClass CONNECTION_USAGE = eINSTANCE.getConnectionUsage(); + + /** + * The meta object literal for the 'Connection Definition' reference list feature. + * + * + * @generated + */ + EReference CONNECTION_USAGE__CONNECTION_DEFINITION = eINSTANCE.getConnectionUsage_ConnectionDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConnectorImpl Connector}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConnectorImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConnector() + * @generated + */ + EClass CONNECTOR = eINSTANCE.getConnector(); + + /** + * The meta object literal for the 'Association' reference list feature. + * + * + * @generated + */ + EReference CONNECTOR__ASSOCIATION = eINSTANCE.getConnector_Association(); + + /** + * The meta object literal for the 'Connector End' reference list feature. + * + * + * @generated + */ + EReference CONNECTOR__CONNECTOR_END = eINSTANCE.getConnector_ConnectorEnd(); + + /** + * The meta object literal for the 'Default Featuring Type' reference feature. + * + * + * @generated + */ + EReference CONNECTOR__DEFAULT_FEATURING_TYPE = eINSTANCE.getConnector_DefaultFeaturingType(); + + /** + * The meta object literal for the 'Related Feature' reference list feature. + * + * + * @generated + */ + EReference CONNECTOR__RELATED_FEATURE = eINSTANCE.getConnector_RelatedFeature(); + + /** + * The meta object literal for the 'Source Feature' reference feature. + * + * + * @generated + */ + EReference CONNECTOR__SOURCE_FEATURE = eINSTANCE.getConnector_SourceFeature(); + + /** + * The meta object literal for the 'Target Feature' reference list feature. + * + * + * @generated + */ + EReference CONNECTOR__TARGET_FEATURE = eINSTANCE.getConnector_TargetFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl Connector As Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConnectorAsUsage() + * @generated + */ + EClass CONNECTOR_AS_USAGE = eINSTANCE.getConnectorAsUsage(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConstraintDefinitionImpl Constraint Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConstraintDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConstraintDefinition() + * @generated + */ + EClass CONSTRAINT_DEFINITION = eINSTANCE.getConstraintDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConstraintUsageImpl Constraint Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConstraintUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConstraintUsage() + * @generated + */ + EClass CONSTRAINT_USAGE = eINSTANCE.getConstraintUsage(); + + /** + * The meta object literal for the 'Constraint Definition' reference feature. + * + * + * @generated + */ + EReference CONSTRAINT_USAGE__CONSTRAINT_DEFINITION = eINSTANCE.getConstraintUsage_ConstraintDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ConstructorExpressionImpl Constructor Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ConstructorExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getConstructorExpression() + * @generated + */ + EClass CONSTRUCTOR_EXPRESSION = eINSTANCE.getConstructorExpression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ControlNodeImpl Control Node}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ControlNodeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getControlNode() + * @generated + */ + EClass CONTROL_NODE = eINSTANCE.getControlNode(); + + /** + * The meta object literal for the 'Multiplicity Has Bounds' operation. + * + * + * @generated + */ + EOperation CONTROL_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT = eINSTANCE.getControlNode__MultiplicityHasBounds__Multiplicity_int_int(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.CrossSubsettingImpl Cross Subsetting}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.CrossSubsettingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getCrossSubsetting() + * @generated + */ + EClass CROSS_SUBSETTING = eINSTANCE.getCrossSubsetting(); + + /** + * The meta object literal for the 'Crossed Feature' reference feature. + * + * + * @generated + */ + EReference CROSS_SUBSETTING__CROSSED_FEATURE = eINSTANCE.getCrossSubsetting_CrossedFeature(); + + /** + * The meta object literal for the 'Crossing Feature' reference feature. + * + * + * @generated + */ + EReference CROSS_SUBSETTING__CROSSING_FEATURE = eINSTANCE.getCrossSubsetting_CrossingFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.DataTypeImpl Data Type}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DataTypeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDataType() + * @generated + */ + EClass DATA_TYPE = eINSTANCE.getDataType(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.DecisionNodeImpl Decision Node}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DecisionNodeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDecisionNode() + * @generated + */ + EClass DECISION_NODE = eINSTANCE.getDecisionNode(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.DefinitionImpl Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDefinition() + * @generated + */ + EClass DEFINITION = eINSTANCE.getDefinition(); + + /** + * The meta object literal for the 'Is Variation' attribute feature. + * + * + * @generated + */ + EAttribute DEFINITION__IS_VARIATION = eINSTANCE.getDefinition_IsVariation(); + + /** + * The meta object literal for the 'Directed Usage' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__DIRECTED_USAGE = eINSTANCE.getDefinition_DirectedUsage(); + + /** + * The meta object literal for the 'Owned Action' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_ACTION = eINSTANCE.getDefinition_OwnedAction(); + + /** + * The meta object literal for the 'Owned Allocation' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_ALLOCATION = eINSTANCE.getDefinition_OwnedAllocation(); + + /** + * The meta object literal for the 'Owned Analysis Case' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_ANALYSIS_CASE = eINSTANCE.getDefinition_OwnedAnalysisCase(); + + /** + * The meta object literal for the 'Owned Attribute' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_ATTRIBUTE = eINSTANCE.getDefinition_OwnedAttribute(); + + /** + * The meta object literal for the 'Owned Calculation' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_CALCULATION = eINSTANCE.getDefinition_OwnedCalculation(); + + /** + * The meta object literal for the 'Owned Case' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_CASE = eINSTANCE.getDefinition_OwnedCase(); + + /** + * The meta object literal for the 'Owned Concern' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_CONCERN = eINSTANCE.getDefinition_OwnedConcern(); + + /** + * The meta object literal for the 'Owned Connection' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_CONNECTION = eINSTANCE.getDefinition_OwnedConnection(); + + /** + * The meta object literal for the 'Owned Constraint' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_CONSTRAINT = eINSTANCE.getDefinition_OwnedConstraint(); + + /** + * The meta object literal for the 'Owned Enumeration' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_ENUMERATION = eINSTANCE.getDefinition_OwnedEnumeration(); + + /** + * The meta object literal for the 'Owned Flow' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_FLOW = eINSTANCE.getDefinition_OwnedFlow(); + + /** + * The meta object literal for the 'Owned Interface' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_INTERFACE = eINSTANCE.getDefinition_OwnedInterface(); + + /** + * The meta object literal for the 'Owned Item' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_ITEM = eINSTANCE.getDefinition_OwnedItem(); + + /** + * The meta object literal for the 'Owned Metadata' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_METADATA = eINSTANCE.getDefinition_OwnedMetadata(); + + /** + * The meta object literal for the 'Owned Occurrence' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_OCCURRENCE = eINSTANCE.getDefinition_OwnedOccurrence(); + + /** + * The meta object literal for the 'Owned Part' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_PART = eINSTANCE.getDefinition_OwnedPart(); + + /** + * The meta object literal for the 'Owned Port' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_PORT = eINSTANCE.getDefinition_OwnedPort(); + + /** + * The meta object literal for the 'Owned Reference' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_REFERENCE = eINSTANCE.getDefinition_OwnedReference(); + + /** + * The meta object literal for the 'Owned Rendering' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_RENDERING = eINSTANCE.getDefinition_OwnedRendering(); + + /** + * The meta object literal for the 'Owned Requirement' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_REQUIREMENT = eINSTANCE.getDefinition_OwnedRequirement(); + + /** + * The meta object literal for the 'Owned State' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_STATE = eINSTANCE.getDefinition_OwnedState(); + + /** + * The meta object literal for the 'Owned Transition' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_TRANSITION = eINSTANCE.getDefinition_OwnedTransition(); + + /** + * The meta object literal for the 'Owned Usage' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_USAGE = eINSTANCE.getDefinition_OwnedUsage(); + + /** + * The meta object literal for the 'Owned Use Case' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_USE_CASE = eINSTANCE.getDefinition_OwnedUseCase(); + + /** + * The meta object literal for the 'Owned Verification Case' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_VERIFICATION_CASE = eINSTANCE.getDefinition_OwnedVerificationCase(); + + /** + * The meta object literal for the 'Owned View' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_VIEW = eINSTANCE.getDefinition_OwnedView(); + + /** + * The meta object literal for the 'Owned Viewpoint' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__OWNED_VIEWPOINT = eINSTANCE.getDefinition_OwnedViewpoint(); + + /** + * The meta object literal for the 'Usage' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__USAGE = eINSTANCE.getDefinition_Usage(); + + /** + * The meta object literal for the 'Variant' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__VARIANT = eINSTANCE.getDefinition_Variant(); + + /** + * The meta object literal for the 'Variant Membership' reference list feature. + * + * + * @generated + */ + EReference DEFINITION__VARIANT_MEMBERSHIP = eINSTANCE.getDefinition_VariantMembership(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.DependencyImpl Dependency}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DependencyImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDependency() + * @generated + */ + EClass DEPENDENCY = eINSTANCE.getDependency(); + + /** + * The meta object literal for the 'Client' reference list feature. + * + * + * @generated + */ + EReference DEPENDENCY__CLIENT = eINSTANCE.getDependency_Client(); + + /** + * The meta object literal for the 'Supplier' reference list feature. + * + * + * @generated + */ + EReference DEPENDENCY__SUPPLIER = eINSTANCE.getDependency_Supplier(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.DifferencingImpl Differencing}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DifferencingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDifferencing() + * @generated + */ + EClass DIFFERENCING = eINSTANCE.getDifferencing(); + + /** + * The meta object literal for the 'Differencing Type' reference feature. + * + * + * @generated + */ + EReference DIFFERENCING__DIFFERENCING_TYPE = eINSTANCE.getDifferencing_DifferencingType(); + + /** + * The meta object literal for the 'Type Differenced' reference feature. + * + * + * @generated + */ + EReference DIFFERENCING__TYPE_DIFFERENCED = eINSTANCE.getDifferencing_TypeDifferenced(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.DisjoiningImpl Disjoining}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DisjoiningImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDisjoining() + * @generated + */ + EClass DISJOINING = eINSTANCE.getDisjoining(); + + /** + * The meta object literal for the 'Disjoining Type' reference feature. + * + * + * @generated + */ + EReference DISJOINING__DISJOINING_TYPE = eINSTANCE.getDisjoining_DisjoiningType(); + + /** + * The meta object literal for the 'Owning Type' reference feature. + * + * + * @generated + */ + EReference DISJOINING__OWNING_TYPE = eINSTANCE.getDisjoining_OwningType(); + + /** + * The meta object literal for the 'Type Disjoined' reference feature. + * + * + * @generated + */ + EReference DISJOINING__TYPE_DISJOINED = eINSTANCE.getDisjoining_TypeDisjoined(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.DocumentationImpl Documentation}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.DocumentationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getDocumentation() + * @generated + */ + EClass DOCUMENTATION = eINSTANCE.getDocumentation(); + + /** + * The meta object literal for the 'Documented Element' reference feature. + * + * + * @generated + */ + EReference DOCUMENTATION__DOCUMENTED_ELEMENT = eINSTANCE.getDocumentation_DocumentedElement(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ElementImpl Element}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ElementImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getElement() + * @generated + */ + EClass ELEMENT = eINSTANCE.getElement(); + + /** + * The meta object literal for the 'Alias Ids' attribute list feature. + * + * + * @generated + */ + EAttribute ELEMENT__ALIAS_IDS = eINSTANCE.getElement_AliasIds(); + + /** + * The meta object literal for the 'Declared Name' attribute feature. + * + * + * @generated + */ + EAttribute ELEMENT__DECLARED_NAME = eINSTANCE.getElement_DeclaredName(); + + /** + * The meta object literal for the 'Declared Short Name' attribute feature. + * + * + * @generated + */ + EAttribute ELEMENT__DECLARED_SHORT_NAME = eINSTANCE.getElement_DeclaredShortName(); + + /** + * The meta object literal for the 'Element Id' attribute feature. + * + * + * @generated + */ + EAttribute ELEMENT__ELEMENT_ID = eINSTANCE.getElement_ElementId(); + + /** + * The meta object literal for the 'Is Implied Included' attribute feature. + * + * + * @generated + */ + EAttribute ELEMENT__IS_IMPLIED_INCLUDED = eINSTANCE.getElement_IsImpliedIncluded(); + + /** + * The meta object literal for the 'Is Library Element' attribute feature. + * + * + * @generated + */ + EAttribute ELEMENT__IS_LIBRARY_ELEMENT = eINSTANCE.getElement_IsLibraryElement(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute ELEMENT__NAME = eINSTANCE.getElement_Name(); + + /** + * The meta object literal for the 'Qualified Name' attribute feature. + * + * + * @generated + */ + EAttribute ELEMENT__QUALIFIED_NAME = eINSTANCE.getElement_QualifiedName(); + + /** + * The meta object literal for the 'Short Name' attribute feature. + * + * + * @generated + */ + EAttribute ELEMENT__SHORT_NAME = eINSTANCE.getElement_ShortName(); + + /** + * The meta object literal for the 'Documentation' reference list feature. + * + * + * @generated + */ + EReference ELEMENT__DOCUMENTATION = eINSTANCE.getElement_Documentation(); + + /** + * The meta object literal for the 'Owned Annotation' reference list feature. + * + * + * @generated + */ + EReference ELEMENT__OWNED_ANNOTATION = eINSTANCE.getElement_OwnedAnnotation(); + + /** + * The meta object literal for the 'Owned Element' reference list feature. + * + * + * @generated + */ + EReference ELEMENT__OWNED_ELEMENT = eINSTANCE.getElement_OwnedElement(); + + /** + * The meta object literal for the 'Owned Relationship' containment reference list feature. + * + * + * @generated + */ + EReference ELEMENT__OWNED_RELATIONSHIP = eINSTANCE.getElement_OwnedRelationship(); + + /** + * The meta object literal for the 'Owner' reference feature. + * + * + * @generated + */ + EReference ELEMENT__OWNER = eINSTANCE.getElement_Owner(); + + /** + * The meta object literal for the 'Owning Membership' reference feature. + * + * + * @generated + */ + EReference ELEMENT__OWNING_MEMBERSHIP = eINSTANCE.getElement_OwningMembership(); + + /** + * The meta object literal for the 'Owning Namespace' reference feature. + * + * + * @generated + */ + EReference ELEMENT__OWNING_NAMESPACE = eINSTANCE.getElement_OwningNamespace(); + + /** + * The meta object literal for the 'Owning Relationship' container reference feature. + * + * + * @generated + */ + EReference ELEMENT__OWNING_RELATIONSHIP = eINSTANCE.getElement_OwningRelationship(); + + /** + * The meta object literal for the 'Textual Representation' reference list feature. + * + * + * @generated + */ + EReference ELEMENT__TEXTUAL_REPRESENTATION = eINSTANCE.getElement_TextualRepresentation(); + + /** + * The meta object literal for the 'Effective Name' operation. + * + * + * @generated + */ + EOperation ELEMENT___EFFECTIVE_NAME = eINSTANCE.getElement__EffectiveName(); + + /** + * The meta object literal for the 'Effective Short Name' operation. + * + * + * @generated + */ + EOperation ELEMENT___EFFECTIVE_SHORT_NAME = eINSTANCE.getElement__EffectiveShortName(); + + /** + * The meta object literal for the 'Escaped Name' operation. + * + * + * @generated + */ + EOperation ELEMENT___ESCAPED_NAME = eINSTANCE.getElement__EscapedName(); + + /** + * The meta object literal for the 'Library Namespace' operation. + * + * + * @generated + */ + EOperation ELEMENT___LIBRARY_NAMESPACE = eINSTANCE.getElement__LibraryNamespace(); + + /** + * The meta object literal for the 'Path' operation. + * + * + * @generated + */ + EOperation ELEMENT___PATH = eINSTANCE.getElement__Path(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ElementFilterMembershipImpl Element Filter Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ElementFilterMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getElementFilterMembership() + * @generated + */ + EClass ELEMENT_FILTER_MEMBERSHIP = eINSTANCE.getElementFilterMembership(); + + /** + * The meta object literal for the 'Condition' reference feature. + * + * + * @generated + */ + EReference ELEMENT_FILTER_MEMBERSHIP__CONDITION = eINSTANCE.getElementFilterMembership_Condition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.EndFeatureMembershipImpl End Feature Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.EndFeatureMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getEndFeatureMembership() + * @generated + */ + EClass END_FEATURE_MEMBERSHIP = eINSTANCE.getEndFeatureMembership(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.EnumerationDefinitionImpl Enumeration Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.EnumerationDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getEnumerationDefinition() + * @generated + */ + EClass ENUMERATION_DEFINITION = eINSTANCE.getEnumerationDefinition(); + + /** + * The meta object literal for the 'Enumerated Value' reference list feature. + * + * + * @generated + */ + EReference ENUMERATION_DEFINITION__ENUMERATED_VALUE = eINSTANCE.getEnumerationDefinition_EnumeratedValue(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.EnumerationUsageImpl Enumeration Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.EnumerationUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getEnumerationUsage() + * @generated + */ + EClass ENUMERATION_USAGE = eINSTANCE.getEnumerationUsage(); + + /** + * The meta object literal for the 'Enumeration Definition' reference feature. + * + * + * @generated + */ + EReference ENUMERATION_USAGE__ENUMERATION_DEFINITION = eINSTANCE.getEnumerationUsage_EnumerationDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.EventOccurrenceUsageImpl Event Occurrence Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.EventOccurrenceUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getEventOccurrenceUsage() + * @generated + */ + EClass EVENT_OCCURRENCE_USAGE = eINSTANCE.getEventOccurrenceUsage(); + + /** + * The meta object literal for the 'Event Occurrence' reference feature. + * + * + * @generated + */ + EReference EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE = eINSTANCE.getEventOccurrenceUsage_EventOccurrence(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ExhibitStateUsageImpl Exhibit State Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ExhibitStateUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getExhibitStateUsage() + * @generated + */ + EClass EXHIBIT_STATE_USAGE = eINSTANCE.getExhibitStateUsage(); + + /** + * The meta object literal for the 'Exhibited State' reference feature. + * + * + * @generated + */ + EReference EXHIBIT_STATE_USAGE__EXHIBITED_STATE = eINSTANCE.getExhibitStateUsage_ExhibitedState(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ExposeImpl Expose}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ExposeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getExpose() + * @generated + */ + EClass EXPOSE = eINSTANCE.getExpose(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ExpressionImpl Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getExpression() + * @generated + */ + EClass EXPRESSION = eINSTANCE.getExpression(); + + /** + * The meta object literal for the 'Is Model Level Evaluable' attribute feature. + * + * + * @generated + */ + EAttribute EXPRESSION__IS_MODEL_LEVEL_EVALUABLE = eINSTANCE.getExpression_IsModelLevelEvaluable(); + + /** + * The meta object literal for the 'Function' reference feature. + * + * + * @generated + */ + EReference EXPRESSION__FUNCTION = eINSTANCE.getExpression_Function(); + + /** + * The meta object literal for the 'Result' reference feature. + * + * + * @generated + */ + EReference EXPRESSION__RESULT = eINSTANCE.getExpression_Result(); + + /** + * The meta object literal for the 'Check Condition' operation. + * + * + * @generated + */ + EOperation EXPRESSION___CHECK_CONDITION__ELEMENT = eINSTANCE.getExpression__CheckCondition__Element(); + + /** + * The meta object literal for the 'Evaluate' operation. + * + * + * @generated + */ + EOperation EXPRESSION___EVALUATE__ELEMENT = eINSTANCE.getExpression__Evaluate__Element(); + + /** + * The meta object literal for the 'Model Level Evaluable' operation. + * + * + * @generated + */ + EOperation EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST = eINSTANCE.getExpression__ModelLevelEvaluable__EList(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FeatureImpl Feature}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeature() + * @generated + */ + EClass FEATURE = eINSTANCE.getFeature(); + + /** + * The meta object literal for the 'Direction' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE__DIRECTION = eINSTANCE.getFeature_Direction(); + + /** + * The meta object literal for the 'Is Composite' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE__IS_COMPOSITE = eINSTANCE.getFeature_IsComposite(); + + /** + * The meta object literal for the 'Is Constant' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE__IS_CONSTANT = eINSTANCE.getFeature_IsConstant(); + + /** + * The meta object literal for the 'Is Derived' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE__IS_DERIVED = eINSTANCE.getFeature_IsDerived(); + + /** + * The meta object literal for the 'Is End' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE__IS_END = eINSTANCE.getFeature_IsEnd(); + + /** + * The meta object literal for the 'Is Nonunique' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE__IS_NONUNIQUE = eINSTANCE.getFeature_IsNonunique(); + + /** + * The meta object literal for the 'Is Ordered' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE__IS_ORDERED = eINSTANCE.getFeature_IsOrdered(); + + /** + * The meta object literal for the 'Is Portion' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE__IS_PORTION = eINSTANCE.getFeature_IsPortion(); + + /** + * The meta object literal for the 'Is Unique' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE__IS_UNIQUE = eINSTANCE.getFeature_IsUnique(); + + /** + * The meta object literal for the 'Is Variable' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE__IS_VARIABLE = eINSTANCE.getFeature_IsVariable(); + + /** + * The meta object literal for the 'Chaining Feature' reference list feature. + * + * + * @generated + */ + EReference FEATURE__CHAINING_FEATURE = eINSTANCE.getFeature_ChainingFeature(); + + /** + * The meta object literal for the 'Cross Feature' reference feature. + * + * + * @generated + */ + EReference FEATURE__CROSS_FEATURE = eINSTANCE.getFeature_CrossFeature(); + + /** + * The meta object literal for the 'End Owning Type' reference feature. + * + * + * @generated + */ + EReference FEATURE__END_OWNING_TYPE = eINSTANCE.getFeature_EndOwningType(); + + /** + * The meta object literal for the 'Feature Target' reference feature. + * + * + * @generated + */ + EReference FEATURE__FEATURE_TARGET = eINSTANCE.getFeature_FeatureTarget(); + + /** + * The meta object literal for the 'Featuring Type' reference list feature. + * + * + * @generated + */ + EReference FEATURE__FEATURING_TYPE = eINSTANCE.getFeature_FeaturingType(); + + /** + * The meta object literal for the 'Owned Cross Subsetting' reference feature. + * + * + * @generated + */ + EReference FEATURE__OWNED_CROSS_SUBSETTING = eINSTANCE.getFeature_OwnedCrossSubsetting(); + + /** + * The meta object literal for the 'Owned Feature Chaining' reference list feature. + * + * + * @generated + */ + EReference FEATURE__OWNED_FEATURE_CHAINING = eINSTANCE.getFeature_OwnedFeatureChaining(); + + /** + * The meta object literal for the 'Owned Feature Inverting' reference list feature. + * + * + * @generated + */ + EReference FEATURE__OWNED_FEATURE_INVERTING = eINSTANCE.getFeature_OwnedFeatureInverting(); + + /** + * The meta object literal for the 'Owned Redefinition' reference list feature. + * + * + * @generated + */ + EReference FEATURE__OWNED_REDEFINITION = eINSTANCE.getFeature_OwnedRedefinition(); + + /** + * The meta object literal for the 'Owned Reference Subsetting' reference feature. + * + * + * @generated + */ + EReference FEATURE__OWNED_REFERENCE_SUBSETTING = eINSTANCE.getFeature_OwnedReferenceSubsetting(); + + /** + * The meta object literal for the 'Owned Subsetting' reference list feature. + * + * + * @generated + */ + EReference FEATURE__OWNED_SUBSETTING = eINSTANCE.getFeature_OwnedSubsetting(); + + /** + * The meta object literal for the 'Owned Type Featuring' reference list feature. + * + * + * @generated + */ + EReference FEATURE__OWNED_TYPE_FEATURING = eINSTANCE.getFeature_OwnedTypeFeaturing(); + + /** + * The meta object literal for the 'Owned Typing' reference list feature. + * + * + * @generated + */ + EReference FEATURE__OWNED_TYPING = eINSTANCE.getFeature_OwnedTyping(); + + /** + * The meta object literal for the 'Owning Feature Membership' reference feature. + * + * + * @generated + */ + EReference FEATURE__OWNING_FEATURE_MEMBERSHIP = eINSTANCE.getFeature_OwningFeatureMembership(); + + /** + * The meta object literal for the 'Owning Type' reference feature. + * + * + * @generated + */ + EReference FEATURE__OWNING_TYPE = eINSTANCE.getFeature_OwningType(); + + /** + * The meta object literal for the 'Type' reference list feature. + * + * + * @generated + */ + EReference FEATURE__TYPE = eINSTANCE.getFeature_Type(); + + /** + * The meta object literal for the 'All Redefined Features' operation. + * + * + * @generated + */ + EOperation FEATURE___ALL_REDEFINED_FEATURES = eINSTANCE.getFeature__AllRedefinedFeatures(); + + /** + * The meta object literal for the 'As Cartesian Product' operation. + * + * + * @generated + */ + EOperation FEATURE___AS_CARTESIAN_PRODUCT = eINSTANCE.getFeature__AsCartesianProduct(); + + /** + * The meta object literal for the 'Can Access' operation. + * + * + * @generated + */ + EOperation FEATURE___CAN_ACCESS__FEATURE = eINSTANCE.getFeature__CanAccess__Feature(); + + /** + * The meta object literal for the 'Direction For' operation. + * + * + * @generated + */ + EOperation FEATURE___DIRECTION_FOR__TYPE = eINSTANCE.getFeature__DirectionFor__Type(); + + /** + * The meta object literal for the 'Is Cartesian Product' operation. + * + * + * @generated + */ + EOperation FEATURE___IS_CARTESIAN_PRODUCT = eINSTANCE.getFeature__IsCartesianProduct(); + + /** + * The meta object literal for the 'Is Featured Within' operation. + * + * + * @generated + */ + EOperation FEATURE___IS_FEATURED_WITHIN__TYPE = eINSTANCE.getFeature__IsFeaturedWithin__Type(); + + /** + * The meta object literal for the 'Is Featuring Type' operation. + * + * + * @generated + */ + EOperation FEATURE___IS_FEATURING_TYPE__TYPE = eINSTANCE.getFeature__IsFeaturingType__Type(); + + /** + * The meta object literal for the 'Is Owned Cross Feature' operation. + * + * + * @generated + */ + EOperation FEATURE___IS_OWNED_CROSS_FEATURE = eINSTANCE.getFeature__IsOwnedCrossFeature(); + + /** + * The meta object literal for the 'Naming Feature' operation. + * + * + * @generated + */ + EOperation FEATURE___NAMING_FEATURE = eINSTANCE.getFeature__NamingFeature(); + + /** + * The meta object literal for the 'Owned Cross Feature' operation. + * + * + * @generated + */ + EOperation FEATURE___OWNED_CROSS_FEATURE = eINSTANCE.getFeature__OwnedCrossFeature(); + + /** + * The meta object literal for the 'Redefines' operation. + * + * + * @generated + */ + EOperation FEATURE___REDEFINES__FEATURE = eINSTANCE.getFeature__Redefines__Feature(); + + /** + * The meta object literal for the 'Redefines From Library' operation. + * + * + * @generated + */ + EOperation FEATURE___REDEFINES_FROM_LIBRARY__STRING = eINSTANCE.getFeature__RedefinesFromLibrary__String(); + + /** + * The meta object literal for the 'Subsets Chain' operation. + * + * + * @generated + */ + EOperation FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE = eINSTANCE.getFeature__SubsetsChain__Feature_Feature(); + + /** + * The meta object literal for the 'Typing Features' operation. + * + * + * @generated + */ + EOperation FEATURE___TYPING_FEATURES = eINSTANCE.getFeature__TypingFeatures(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FeatureChainExpressionImpl Feature Chain Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureChainExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureChainExpression() + * @generated + */ + EClass FEATURE_CHAIN_EXPRESSION = eINSTANCE.getFeatureChainExpression(); + + /** + * The meta object literal for the 'Target Feature' reference feature. + * + * + * @generated + */ + EReference FEATURE_CHAIN_EXPRESSION__TARGET_FEATURE = eINSTANCE.getFeatureChainExpression_TargetFeature(); + + /** + * The meta object literal for the 'Source Target Feature' operation. + * + * + * @generated + */ + EOperation FEATURE_CHAIN_EXPRESSION___SOURCE_TARGET_FEATURE = eINSTANCE.getFeatureChainExpression__SourceTargetFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FeatureChainingImpl Feature Chaining}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureChainingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureChaining() + * @generated + */ + EClass FEATURE_CHAINING = eINSTANCE.getFeatureChaining(); + + /** + * The meta object literal for the 'Chaining Feature' reference feature. + * + * + * @generated + */ + EReference FEATURE_CHAINING__CHAINING_FEATURE = eINSTANCE.getFeatureChaining_ChainingFeature(); + + /** + * The meta object literal for the 'Feature Chained' reference feature. + * + * + * @generated + */ + EReference FEATURE_CHAINING__FEATURE_CHAINED = eINSTANCE.getFeatureChaining_FeatureChained(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FeatureInvertingImpl Feature Inverting}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureInvertingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureInverting() + * @generated + */ + EClass FEATURE_INVERTING = eINSTANCE.getFeatureInverting(); + + /** + * The meta object literal for the 'Feature Inverted' reference feature. + * + * + * @generated + */ + EReference FEATURE_INVERTING__FEATURE_INVERTED = eINSTANCE.getFeatureInverting_FeatureInverted(); + + /** + * The meta object literal for the 'Inverting Feature' reference feature. + * + * + * @generated + */ + EReference FEATURE_INVERTING__INVERTING_FEATURE = eINSTANCE.getFeatureInverting_InvertingFeature(); + + /** + * The meta object literal for the 'Owning Feature' reference feature. + * + * + * @generated + */ + EReference FEATURE_INVERTING__OWNING_FEATURE = eINSTANCE.getFeatureInverting_OwningFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FeatureMembershipImpl Feature Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureMembership() + * @generated + */ + EClass FEATURE_MEMBERSHIP = eINSTANCE.getFeatureMembership(); + + /** + * The meta object literal for the 'Owned Member Feature' reference feature. + * + * + * @generated + */ + EReference FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE = eINSTANCE.getFeatureMembership_OwnedMemberFeature(); + + /** + * The meta object literal for the 'Owning Type' reference feature. + * + * + * @generated + */ + EReference FEATURE_MEMBERSHIP__OWNING_TYPE = eINSTANCE.getFeatureMembership_OwningType(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FeatureReferenceExpressionImpl Feature Reference Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureReferenceExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureReferenceExpression() + * @generated + */ + EClass FEATURE_REFERENCE_EXPRESSION = eINSTANCE.getFeatureReferenceExpression(); + + /** + * The meta object literal for the 'Referent' reference feature. + * + * + * @generated + */ + EReference FEATURE_REFERENCE_EXPRESSION__REFERENT = eINSTANCE.getFeatureReferenceExpression_Referent(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FeatureTypingImpl Feature Typing}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureTypingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureTyping() + * @generated + */ + EClass FEATURE_TYPING = eINSTANCE.getFeatureTyping(); + + /** + * The meta object literal for the 'Owning Feature' reference feature. + * + * + * @generated + */ + EReference FEATURE_TYPING__OWNING_FEATURE = eINSTANCE.getFeatureTyping_OwningFeature(); + + /** + * The meta object literal for the 'Type' reference feature. + * + * + * @generated + */ + EReference FEATURE_TYPING__TYPE = eINSTANCE.getFeatureTyping_Type(); + + /** + * The meta object literal for the 'Typed Feature' reference feature. + * + * + * @generated + */ + EReference FEATURE_TYPING__TYPED_FEATURE = eINSTANCE.getFeatureTyping_TypedFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FeatureValueImpl Feature Value}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FeatureValueImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureValue() + * @generated + */ + EClass FEATURE_VALUE = eINSTANCE.getFeatureValue(); + + /** + * The meta object literal for the 'Is Default' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE_VALUE__IS_DEFAULT = eINSTANCE.getFeatureValue_IsDefault(); + + /** + * The meta object literal for the 'Is Initial' attribute feature. + * + * + * @generated + */ + EAttribute FEATURE_VALUE__IS_INITIAL = eINSTANCE.getFeatureValue_IsInitial(); + + /** + * The meta object literal for the 'Feature With Value' reference feature. + * + * + * @generated + */ + EReference FEATURE_VALUE__FEATURE_WITH_VALUE = eINSTANCE.getFeatureValue_FeatureWithValue(); + + /** + * The meta object literal for the 'Value' reference feature. + * + * + * @generated + */ + EReference FEATURE_VALUE__VALUE = eINSTANCE.getFeatureValue_Value(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FlowImpl Flow}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FlowImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFlow() + * @generated + */ + EClass FLOW = eINSTANCE.getFlow(); + + /** + * The meta object literal for the 'Flow End' reference list feature. + * + * + * @generated + */ + EReference FLOW__FLOW_END = eINSTANCE.getFlow_FlowEnd(); + + /** + * The meta object literal for the 'Interaction' reference list feature. + * + * + * @generated + */ + EReference FLOW__INTERACTION = eINSTANCE.getFlow_Interaction(); + + /** + * The meta object literal for the 'Payload Feature' reference feature. + * + * + * @generated + */ + EReference FLOW__PAYLOAD_FEATURE = eINSTANCE.getFlow_PayloadFeature(); + + /** + * The meta object literal for the 'Payload Type' reference list feature. + * + * + * @generated + */ + EReference FLOW__PAYLOAD_TYPE = eINSTANCE.getFlow_PayloadType(); + + /** + * The meta object literal for the 'Source Output Feature' reference feature. + * + * + * @generated + */ + EReference FLOW__SOURCE_OUTPUT_FEATURE = eINSTANCE.getFlow_SourceOutputFeature(); + + /** + * The meta object literal for the 'Target Input Feature' reference feature. + * + * + * @generated + */ + EReference FLOW__TARGET_INPUT_FEATURE = eINSTANCE.getFlow_TargetInputFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl Flow Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FlowDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFlowDefinition() + * @generated + */ + EClass FLOW_DEFINITION = eINSTANCE.getFlowDefinition(); + + /** + * The meta object literal for the 'Flow End' reference list feature. + * + * + * @generated + */ + EReference FLOW_DEFINITION__FLOW_END = eINSTANCE.getFlowDefinition_FlowEnd(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FlowEndImpl Flow End}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FlowEndImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFlowEnd() + * @generated + */ + EClass FLOW_END = eINSTANCE.getFlowEnd(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FlowUsageImpl Flow Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FlowUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFlowUsage() + * @generated + */ + EClass FLOW_USAGE = eINSTANCE.getFlowUsage(); + + /** + * The meta object literal for the 'Flow Definition' reference list feature. + * + * + * @generated + */ + EReference FLOW_USAGE__FLOW_DEFINITION = eINSTANCE.getFlowUsage_FlowDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ForkNodeImpl Fork Node}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ForkNodeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getForkNode() + * @generated + */ + EClass FORK_NODE = eINSTANCE.getForkNode(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ForLoopActionUsageImpl For Loop Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ForLoopActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getForLoopActionUsage() + * @generated + */ + EClass FOR_LOOP_ACTION_USAGE = eINSTANCE.getForLoopActionUsage(); + + /** + * The meta object literal for the 'Loop Variable' reference feature. + * + * + * @generated + */ + EReference FOR_LOOP_ACTION_USAGE__LOOP_VARIABLE = eINSTANCE.getForLoopActionUsage_LoopVariable(); + + /** + * The meta object literal for the 'Seq Argument' reference feature. + * + * + * @generated + */ + EReference FOR_LOOP_ACTION_USAGE__SEQ_ARGUMENT = eINSTANCE.getForLoopActionUsage_SeqArgument(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FramedConcernMembershipImpl Framed Concern Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FramedConcernMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFramedConcernMembership() + * @generated + */ + EClass FRAMED_CONCERN_MEMBERSHIP = eINSTANCE.getFramedConcernMembership(); + + /** + * The meta object literal for the 'Owned Concern' reference feature. + * + * + * @generated + */ + EReference FRAMED_CONCERN_MEMBERSHIP__OWNED_CONCERN = eINSTANCE.getFramedConcernMembership_OwnedConcern(); + + /** + * The meta object literal for the 'Referenced Concern' reference feature. + * + * + * @generated + */ + EReference FRAMED_CONCERN_MEMBERSHIP__REFERENCED_CONCERN = eINSTANCE.getFramedConcernMembership_ReferencedConcern(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.FunctionImpl Function}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.FunctionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFunction() + * @generated + */ + EClass FUNCTION = eINSTANCE.getFunction(); + + /** + * The meta object literal for the 'Is Model Level Evaluable' attribute feature. + * + * + * @generated + */ + EAttribute FUNCTION__IS_MODEL_LEVEL_EVALUABLE = eINSTANCE.getFunction_IsModelLevelEvaluable(); + + /** + * The meta object literal for the 'Expression' reference list feature. + * + * + * @generated + */ + EReference FUNCTION__EXPRESSION = eINSTANCE.getFunction_Expression(); + + /** + * The meta object literal for the 'Result' reference feature. + * + * + * @generated + */ + EReference FUNCTION__RESULT = eINSTANCE.getFunction_Result(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.IfActionUsageImpl If Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.IfActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getIfActionUsage() + * @generated + */ + EClass IF_ACTION_USAGE = eINSTANCE.getIfActionUsage(); + + /** + * The meta object literal for the 'Else Action' reference feature. + * + * + * @generated + */ + EReference IF_ACTION_USAGE__ELSE_ACTION = eINSTANCE.getIfActionUsage_ElseAction(); + + /** + * The meta object literal for the 'If Argument' reference feature. + * + * + * @generated + */ + EReference IF_ACTION_USAGE__IF_ARGUMENT = eINSTANCE.getIfActionUsage_IfArgument(); + + /** + * The meta object literal for the 'Then Action' reference feature. + * + * + * @generated + */ + EReference IF_ACTION_USAGE__THEN_ACTION = eINSTANCE.getIfActionUsage_ThenAction(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ImportImpl Import}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ImportImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getImport() + * @generated + */ + EClass IMPORT = eINSTANCE.getImport(); + + /** + * The meta object literal for the 'Is Import All' attribute feature. + * + * + * @generated + */ + EAttribute IMPORT__IS_IMPORT_ALL = eINSTANCE.getImport_IsImportAll(); + + /** + * The meta object literal for the 'Is Recursive' attribute feature. + * + * + * @generated + */ + EAttribute IMPORT__IS_RECURSIVE = eINSTANCE.getImport_IsRecursive(); + + /** + * The meta object literal for the 'Visibility' attribute feature. + * + * + * @generated + */ + EAttribute IMPORT__VISIBILITY = eINSTANCE.getImport_Visibility(); + + /** + * The meta object literal for the 'Imported Element' reference feature. + * + * + * @generated + */ + EReference IMPORT__IMPORTED_ELEMENT = eINSTANCE.getImport_ImportedElement(); + + /** + * The meta object literal for the 'Import Owning Namespace' reference feature. + * + * + * @generated + */ + EReference IMPORT__IMPORT_OWNING_NAMESPACE = eINSTANCE.getImport_ImportOwningNamespace(); + + /** + * The meta object literal for the 'Imported Memberships' operation. + * + * + * @generated + */ + EOperation IMPORT___IMPORTED_MEMBERSHIPS__ELIST = eINSTANCE.getImport__ImportedMemberships__EList(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.IncludeUseCaseUsageImpl Include Use Case Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.IncludeUseCaseUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getIncludeUseCaseUsage() + * @generated + */ + EClass INCLUDE_USE_CASE_USAGE = eINSTANCE.getIncludeUseCaseUsage(); + + /** + * The meta object literal for the 'Use Case Included' reference feature. + * + * + * @generated + */ + EReference INCLUDE_USE_CASE_USAGE__USE_CASE_INCLUDED = eINSTANCE.getIncludeUseCaseUsage_UseCaseIncluded(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.IndexExpressionImpl Index Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.IndexExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getIndexExpression() + * @generated + */ + EClass INDEX_EXPRESSION = eINSTANCE.getIndexExpression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.InstantiationExpressionImpl Instantiation Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InstantiationExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInstantiationExpression() + * @generated + */ + EClass INSTANTIATION_EXPRESSION = eINSTANCE.getInstantiationExpression(); + + /** + * The meta object literal for the 'Argument' reference list feature. + * + * + * @generated + */ + EReference INSTANTIATION_EXPRESSION__ARGUMENT = eINSTANCE.getInstantiationExpression_Argument(); + + /** + * The meta object literal for the 'Instantiated Type' reference feature. + * + * + * @generated + */ + EReference INSTANTIATION_EXPRESSION__INSTANTIATED_TYPE = eINSTANCE.getInstantiationExpression_InstantiatedType(); + + /** + * The meta object literal for the 'Instantiated Type' operation. + * + * + * @generated + */ + EOperation INSTANTIATION_EXPRESSION___INSTANTIATED_TYPE = eINSTANCE.getInstantiationExpression__InstantiatedType(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.InteractionImpl Interaction}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InteractionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInteraction() + * @generated + */ + EClass INTERACTION = eINSTANCE.getInteraction(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.InterfaceDefinitionImpl Interface Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InterfaceDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInterfaceDefinition() + * @generated + */ + EClass INTERFACE_DEFINITION = eINSTANCE.getInterfaceDefinition(); + + /** + * The meta object literal for the 'Interface End' reference list feature. + * + * + * @generated + */ + EReference INTERFACE_DEFINITION__INTERFACE_END = eINSTANCE.getInterfaceDefinition_InterfaceEnd(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.InterfaceUsageImpl Interface Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InterfaceUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInterfaceUsage() + * @generated + */ + EClass INTERFACE_USAGE = eINSTANCE.getInterfaceUsage(); + + /** + * The meta object literal for the 'Interface Definition' reference list feature. + * + * + * @generated + */ + EReference INTERFACE_USAGE__INTERFACE_DEFINITION = eINSTANCE.getInterfaceUsage_InterfaceDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.IntersectingImpl Intersecting}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.IntersectingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getIntersecting() + * @generated + */ + EClass INTERSECTING = eINSTANCE.getIntersecting(); + + /** + * The meta object literal for the 'Intersecting Type' reference feature. + * + * + * @generated + */ + EReference INTERSECTING__INTERSECTING_TYPE = eINSTANCE.getIntersecting_IntersectingType(); + + /** + * The meta object literal for the 'Type Intersected' reference feature. + * + * + * @generated + */ + EReference INTERSECTING__TYPE_INTERSECTED = eINSTANCE.getIntersecting_TypeIntersected(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.InvariantImpl Invariant}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InvariantImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInvariant() + * @generated + */ + EClass INVARIANT = eINSTANCE.getInvariant(); + + /** + * The meta object literal for the 'Is Negated' attribute feature. + * + * + * @generated + */ + EAttribute INVARIANT__IS_NEGATED = eINSTANCE.getInvariant_IsNegated(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.InvocationExpressionImpl Invocation Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.InvocationExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getInvocationExpression() + * @generated + */ + EClass INVOCATION_EXPRESSION = eINSTANCE.getInvocationExpression(); + + /** + * The meta object literal for the 'Operand' containment reference list feature. + * + * + * @generated + */ + EReference INVOCATION_EXPRESSION__OPERAND = eINSTANCE.getInvocationExpression_Operand(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ItemDefinitionImpl Item Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ItemDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getItemDefinition() + * @generated + */ + EClass ITEM_DEFINITION = eINSTANCE.getItemDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ItemUsageImpl Item Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ItemUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getItemUsage() + * @generated + */ + EClass ITEM_USAGE = eINSTANCE.getItemUsage(); + + /** + * The meta object literal for the 'Item Definition' reference list feature. + * + * + * @generated + */ + EReference ITEM_USAGE__ITEM_DEFINITION = eINSTANCE.getItemUsage_ItemDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.JoinNodeImpl Join Node}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.JoinNodeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getJoinNode() + * @generated + */ + EClass JOIN_NODE = eINSTANCE.getJoinNode(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.LibraryPackageImpl Library Package}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LibraryPackageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLibraryPackage() + * @generated + */ + EClass LIBRARY_PACKAGE = eINSTANCE.getLibraryPackage(); + + /** + * The meta object literal for the 'Is Standard' attribute feature. + * + * + * @generated + */ + EAttribute LIBRARY_PACKAGE__IS_STANDARD = eINSTANCE.getLibraryPackage_IsStandard(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.LiteralBooleanImpl Literal Boolean}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralBooleanImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralBoolean() + * @generated + */ + EClass LITERAL_BOOLEAN = eINSTANCE.getLiteralBoolean(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute LITERAL_BOOLEAN__VALUE = eINSTANCE.getLiteralBoolean_Value(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.LiteralExpressionImpl Literal Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralExpression() + * @generated + */ + EClass LITERAL_EXPRESSION = eINSTANCE.getLiteralExpression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.LiteralInfinityImpl Literal Infinity}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralInfinityImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralInfinity() + * @generated + */ + EClass LITERAL_INFINITY = eINSTANCE.getLiteralInfinity(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.LiteralIntegerImpl Literal Integer}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralIntegerImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralInteger() + * @generated + */ + EClass LITERAL_INTEGER = eINSTANCE.getLiteralInteger(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute LITERAL_INTEGER__VALUE = eINSTANCE.getLiteralInteger_Value(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.LiteralRationalImpl Literal Rational}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralRationalImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralRational() + * @generated + */ + EClass LITERAL_RATIONAL = eINSTANCE.getLiteralRational(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute LITERAL_RATIONAL__VALUE = eINSTANCE.getLiteralRational_Value(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.LiteralStringImpl Literal String}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LiteralStringImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLiteralString() + * @generated + */ + EClass LITERAL_STRING = eINSTANCE.getLiteralString(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute LITERAL_STRING__VALUE = eINSTANCE.getLiteralString_Value(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.LoopActionUsageImpl Loop Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.LoopActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getLoopActionUsage() + * @generated + */ + EClass LOOP_ACTION_USAGE = eINSTANCE.getLoopActionUsage(); + + /** + * The meta object literal for the 'Body Action' reference feature. + * + * + * @generated + */ + EReference LOOP_ACTION_USAGE__BODY_ACTION = eINSTANCE.getLoopActionUsage_BodyAction(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MembershipImpl Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMembership() + * @generated + */ + EClass MEMBERSHIP = eINSTANCE.getMembership(); + + /** + * The meta object literal for the 'Member Element Id' attribute feature. + * + * + * @generated + */ + EAttribute MEMBERSHIP__MEMBER_ELEMENT_ID = eINSTANCE.getMembership_MemberElementId(); + + /** + * The meta object literal for the 'Member Name' attribute feature. + * + * + * @generated + */ + EAttribute MEMBERSHIP__MEMBER_NAME = eINSTANCE.getMembership_MemberName(); + + /** + * The meta object literal for the 'Member Short Name' attribute feature. + * + * + * @generated + */ + EAttribute MEMBERSHIP__MEMBER_SHORT_NAME = eINSTANCE.getMembership_MemberShortName(); + + /** + * The meta object literal for the 'Visibility' attribute feature. + * + * + * @generated + */ + EAttribute MEMBERSHIP__VISIBILITY = eINSTANCE.getMembership_Visibility(); + + /** + * The meta object literal for the 'Member Element' reference feature. + * + * + * @generated + */ + EReference MEMBERSHIP__MEMBER_ELEMENT = eINSTANCE.getMembership_MemberElement(); + + /** + * The meta object literal for the 'Membership Owning Namespace' reference feature. + * + * + * @generated + */ + EReference MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE = eINSTANCE.getMembership_MembershipOwningNamespace(); + + /** + * The meta object literal for the 'Is Distinguishable From' operation. + * + * + * @generated + */ + EOperation MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP = eINSTANCE.getMembership__IsDistinguishableFrom__Membership(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MembershipExposeImpl Membership Expose}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MembershipExposeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMembershipExpose() + * @generated + */ + EClass MEMBERSHIP_EXPOSE = eINSTANCE.getMembershipExpose(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MembershipImportImpl Membership Import}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MembershipImportImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMembershipImport() + * @generated + */ + EClass MEMBERSHIP_IMPORT = eINSTANCE.getMembershipImport(); + + /** + * The meta object literal for the 'Imported Membership' reference feature. + * + * + * @generated + */ + EReference MEMBERSHIP_IMPORT__IMPORTED_MEMBERSHIP = eINSTANCE.getMembershipImport_ImportedMembership(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MergeNodeImpl Merge Node}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MergeNodeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMergeNode() + * @generated + */ + EClass MERGE_NODE = eINSTANCE.getMergeNode(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MetaclassImpl Metaclass}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MetaclassImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMetaclass() + * @generated + */ + EClass METACLASS = eINSTANCE.getMetaclass(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MetadataAccessExpressionImpl Metadata Access Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MetadataAccessExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMetadataAccessExpression() + * @generated + */ + EClass METADATA_ACCESS_EXPRESSION = eINSTANCE.getMetadataAccessExpression(); + + /** + * The meta object literal for the 'Referenced Element' reference feature. + * + * + * @generated + */ + EReference METADATA_ACCESS_EXPRESSION__REFERENCED_ELEMENT = eINSTANCE.getMetadataAccessExpression_ReferencedElement(); + + /** + * The meta object literal for the 'Metaclass Feature' operation. + * + * + * @generated + */ + EOperation METADATA_ACCESS_EXPRESSION___METACLASS_FEATURE = eINSTANCE.getMetadataAccessExpression__MetaclassFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MetadataDefinitionImpl Metadata Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MetadataDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMetadataDefinition() + * @generated + */ + EClass METADATA_DEFINITION = eINSTANCE.getMetadataDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MetadataFeatureImpl Metadata Feature}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MetadataFeatureImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMetadataFeature() + * @generated + */ + EClass METADATA_FEATURE = eINSTANCE.getMetadataFeature(); + + /** + * The meta object literal for the 'Metaclass' reference feature. + * + * + * @generated + */ + EReference METADATA_FEATURE__METACLASS = eINSTANCE.getMetadataFeature_Metaclass(); + + /** + * The meta object literal for the 'Evaluate Feature' operation. + * + * + * @generated + */ + EOperation METADATA_FEATURE___EVALUATE_FEATURE__FEATURE = eINSTANCE.getMetadataFeature__EvaluateFeature__Feature(); + + /** + * The meta object literal for the 'Is Semantic' operation. + * + * + * @generated + */ + EOperation METADATA_FEATURE___IS_SEMANTIC = eINSTANCE.getMetadataFeature__IsSemantic(); + + /** + * The meta object literal for the 'Is Syntactic' operation. + * + * + * @generated + */ + EOperation METADATA_FEATURE___IS_SYNTACTIC = eINSTANCE.getMetadataFeature__IsSyntactic(); + + /** + * The meta object literal for the 'Syntax Element' operation. + * + * + * @generated + */ + EOperation METADATA_FEATURE___SYNTAX_ELEMENT = eINSTANCE.getMetadataFeature__SyntaxElement(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MetadataUsageImpl Metadata Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MetadataUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMetadataUsage() + * @generated + */ + EClass METADATA_USAGE = eINSTANCE.getMetadataUsage(); + + /** + * The meta object literal for the 'Metadata Definition' reference feature. + * + * + * @generated + */ + EReference METADATA_USAGE__METADATA_DEFINITION = eINSTANCE.getMetadataUsage_MetadataDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MultiplicityImpl Multiplicity}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MultiplicityImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMultiplicity() + * @generated + */ + EClass MULTIPLICITY = eINSTANCE.getMultiplicity(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.MultiplicityRangeImpl Multiplicity Range}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.MultiplicityRangeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getMultiplicityRange() + * @generated + */ + EClass MULTIPLICITY_RANGE = eINSTANCE.getMultiplicityRange(); + + /** + * The meta object literal for the 'Bound' reference list feature. + * + * + * @generated + */ + EReference MULTIPLICITY_RANGE__BOUND = eINSTANCE.getMultiplicityRange_Bound(); + + /** + * The meta object literal for the 'Lower Bound' reference feature. + * + * + * @generated + */ + EReference MULTIPLICITY_RANGE__LOWER_BOUND = eINSTANCE.getMultiplicityRange_LowerBound(); + + /** + * The meta object literal for the 'Upper Bound' reference feature. + * + * + * @generated + */ + EReference MULTIPLICITY_RANGE__UPPER_BOUND = eINSTANCE.getMultiplicityRange_UpperBound(); + + /** + * The meta object literal for the 'Has Bounds' operation. + * + * + * @generated + */ + EOperation MULTIPLICITY_RANGE___HAS_BOUNDS__INT_INT = eINSTANCE.getMultiplicityRange__HasBounds__int_int(); + + /** + * The meta object literal for the 'Value Of' operation. + * + * + * @generated + */ + EOperation MULTIPLICITY_RANGE___VALUE_OF__EXPRESSION = eINSTANCE.getMultiplicityRange__ValueOf__Expression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.NamespaceImpl Namespace}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.NamespaceImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getNamespace() + * @generated + */ + EClass NAMESPACE = eINSTANCE.getNamespace(); + + /** + * The meta object literal for the 'Imported Membership' reference list feature. + * + * + * @generated + */ + EReference NAMESPACE__IMPORTED_MEMBERSHIP = eINSTANCE.getNamespace_ImportedMembership(); + + /** + * The meta object literal for the 'Member' reference list feature. + * + * + * @generated + */ + EReference NAMESPACE__MEMBER = eINSTANCE.getNamespace_Member(); + + /** + * The meta object literal for the 'Membership' reference list feature. + * + * + * @generated + */ + EReference NAMESPACE__MEMBERSHIP = eINSTANCE.getNamespace_Membership(); + + /** + * The meta object literal for the 'Owned Import' reference list feature. + * + * + * @generated + */ + EReference NAMESPACE__OWNED_IMPORT = eINSTANCE.getNamespace_OwnedImport(); + + /** + * The meta object literal for the 'Owned Member' reference list feature. + * + * + * @generated + */ + EReference NAMESPACE__OWNED_MEMBER = eINSTANCE.getNamespace_OwnedMember(); + + /** + * The meta object literal for the 'Owned Membership' reference list feature. + * + * + * @generated + */ + EReference NAMESPACE__OWNED_MEMBERSHIP = eINSTANCE.getNamespace_OwnedMembership(); + + /** + * The meta object literal for the 'Imported Memberships' operation. + * + * + * @generated + */ + EOperation NAMESPACE___IMPORTED_MEMBERSHIPS__ELIST = eINSTANCE.getNamespace__ImportedMemberships__EList(); + + /** + * The meta object literal for the 'Memberships Of Visibility' operation. + * + * + * @generated + */ + EOperation NAMESPACE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST = eINSTANCE.getNamespace__MembershipsOfVisibility__VisibilityKind_EList(); + + /** + * The meta object literal for the 'Names Of' operation. + * + * + * @generated + */ + EOperation NAMESPACE___NAMES_OF__ELEMENT = eINSTANCE.getNamespace__NamesOf__Element(); + + /** + * The meta object literal for the 'Qualification Of' operation. + * + * + * @generated + */ + EOperation NAMESPACE___QUALIFICATION_OF__STRING = eINSTANCE.getNamespace__QualificationOf__String(); + + /** + * The meta object literal for the 'Resolve' operation. + * + * + * @generated + */ + EOperation NAMESPACE___RESOLVE__STRING = eINSTANCE.getNamespace__Resolve__String(); + + /** + * The meta object literal for the 'Resolve Global' operation. + * + * + * @generated + */ + EOperation NAMESPACE___RESOLVE_GLOBAL__STRING = eINSTANCE.getNamespace__ResolveGlobal__String(); + + /** + * The meta object literal for the 'Resolve Local' operation. + * + * + * @generated + */ + EOperation NAMESPACE___RESOLVE_LOCAL__STRING = eINSTANCE.getNamespace__ResolveLocal__String(); + + /** + * The meta object literal for the 'Resolve Visible' operation. + * + * + * @generated + */ + EOperation NAMESPACE___RESOLVE_VISIBLE__STRING = eINSTANCE.getNamespace__ResolveVisible__String(); + + /** + * The meta object literal for the 'Unqualified Name Of' operation. + * + * + * @generated + */ + EOperation NAMESPACE___UNQUALIFIED_NAME_OF__STRING = eINSTANCE.getNamespace__UnqualifiedNameOf__String(); + + /** + * The meta object literal for the 'Visibility Of' operation. + * + * + * @generated + */ + EOperation NAMESPACE___VISIBILITY_OF__MEMBERSHIP = eINSTANCE.getNamespace__VisibilityOf__Membership(); + + /** + * The meta object literal for the 'Visible Memberships' operation. + * + * + * @generated + */ + EOperation NAMESPACE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN = eINSTANCE.getNamespace__VisibleMemberships__EList_boolean_boolean(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.NamespaceExposeImpl Namespace Expose}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.NamespaceExposeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getNamespaceExpose() + * @generated + */ + EClass NAMESPACE_EXPOSE = eINSTANCE.getNamespaceExpose(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.NamespaceImportImpl Namespace Import}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.NamespaceImportImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getNamespaceImport() + * @generated + */ + EClass NAMESPACE_IMPORT = eINSTANCE.getNamespaceImport(); + + /** + * The meta object literal for the 'Imported Namespace' reference feature. + * + * + * @generated + */ + EReference NAMESPACE_IMPORT__IMPORTED_NAMESPACE = eINSTANCE.getNamespaceImport_ImportedNamespace(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.NullExpressionImpl Null Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.NullExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getNullExpression() + * @generated + */ + EClass NULL_EXPRESSION = eINSTANCE.getNullExpression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ObjectiveMembershipImpl Objective Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ObjectiveMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getObjectiveMembership() + * @generated + */ + EClass OBJECTIVE_MEMBERSHIP = eINSTANCE.getObjectiveMembership(); + + /** + * The meta object literal for the 'Owned Objective Requirement' reference feature. + * + * + * @generated + */ + EReference OBJECTIVE_MEMBERSHIP__OWNED_OBJECTIVE_REQUIREMENT = eINSTANCE.getObjectiveMembership_OwnedObjectiveRequirement(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.OccurrenceDefinitionImpl Occurrence Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.OccurrenceDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getOccurrenceDefinition() + * @generated + */ + EClass OCCURRENCE_DEFINITION = eINSTANCE.getOccurrenceDefinition(); + + /** + * The meta object literal for the 'Is Individual' attribute feature. + * + * + * @generated + */ + EAttribute OCCURRENCE_DEFINITION__IS_INDIVIDUAL = eINSTANCE.getOccurrenceDefinition_IsIndividual(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.OccurrenceUsageImpl Occurrence Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.OccurrenceUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getOccurrenceUsage() + * @generated + */ + EClass OCCURRENCE_USAGE = eINSTANCE.getOccurrenceUsage(); + + /** + * The meta object literal for the 'Is Individual' attribute feature. + * + * + * @generated + */ + EAttribute OCCURRENCE_USAGE__IS_INDIVIDUAL = eINSTANCE.getOccurrenceUsage_IsIndividual(); + + /** + * The meta object literal for the 'Portion Kind' attribute feature. + * + * + * @generated + */ + EAttribute OCCURRENCE_USAGE__PORTION_KIND = eINSTANCE.getOccurrenceUsage_PortionKind(); + + /** + * The meta object literal for the 'Individual Definition' reference feature. + * + * + * @generated + */ + EReference OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION = eINSTANCE.getOccurrenceUsage_IndividualDefinition(); + + /** + * The meta object literal for the 'Occurrence Definition' reference list feature. + * + * + * @generated + */ + EReference OCCURRENCE_USAGE__OCCURRENCE_DEFINITION = eINSTANCE.getOccurrenceUsage_OccurrenceDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.OperatorExpressionImpl Operator Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.OperatorExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getOperatorExpression() + * @generated + */ + EClass OPERATOR_EXPRESSION = eINSTANCE.getOperatorExpression(); + + /** + * The meta object literal for the 'Operator' attribute feature. + * + * + * @generated + */ + EAttribute OPERATOR_EXPRESSION__OPERATOR = eINSTANCE.getOperatorExpression_Operator(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.OwningMembershipImpl Owning Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.OwningMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getOwningMembership() + * @generated + */ + EClass OWNING_MEMBERSHIP = eINSTANCE.getOwningMembership(); + + /** + * The meta object literal for the 'Owned Member Element Id' attribute feature. + * + * + * @generated + */ + EAttribute OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID = eINSTANCE.getOwningMembership_OwnedMemberElementId(); + + /** + * The meta object literal for the 'Owned Member Name' attribute feature. + * + * + * @generated + */ + EAttribute OWNING_MEMBERSHIP__OWNED_MEMBER_NAME = eINSTANCE.getOwningMembership_OwnedMemberName(); + + /** + * The meta object literal for the 'Owned Member Short Name' attribute feature. + * + * + * @generated + */ + EAttribute OWNING_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME = eINSTANCE.getOwningMembership_OwnedMemberShortName(); + + /** + * The meta object literal for the 'Owned Member Element' reference feature. + * + * + * @generated + */ + EReference OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT = eINSTANCE.getOwningMembership_OwnedMemberElement(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.PackageImpl Package}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PackageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPackage() + * @generated + */ + EClass PACKAGE = eINSTANCE.getPackage(); + + /** + * The meta object literal for the 'Filter Condition' reference list feature. + * + * + * @generated + */ + EReference PACKAGE__FILTER_CONDITION = eINSTANCE.getPackage_FilterCondition(); + + /** + * The meta object literal for the 'Include As Member' operation. + * + * + * @generated + */ + EOperation PACKAGE___INCLUDE_AS_MEMBER__ELEMENT = eINSTANCE.getPackage__IncludeAsMember__Element(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ParameterMembershipImpl Parameter Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ParameterMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getParameterMembership() + * @generated + */ + EClass PARAMETER_MEMBERSHIP = eINSTANCE.getParameterMembership(); + + /** + * The meta object literal for the 'Owned Member Parameter' reference feature. + * + * + * @generated + */ + EReference PARAMETER_MEMBERSHIP__OWNED_MEMBER_PARAMETER = eINSTANCE.getParameterMembership_OwnedMemberParameter(); + + /** + * The meta object literal for the 'Parameter Direction' operation. + * + * + * @generated + */ + EOperation PARAMETER_MEMBERSHIP___PARAMETER_DIRECTION = eINSTANCE.getParameterMembership__ParameterDirection(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.PartDefinitionImpl Part Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PartDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPartDefinition() + * @generated + */ + EClass PART_DEFINITION = eINSTANCE.getPartDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.PartUsageImpl Part Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PartUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPartUsage() + * @generated + */ + EClass PART_USAGE = eINSTANCE.getPartUsage(); + + /** + * The meta object literal for the 'Part Definition' reference list feature. + * + * + * @generated + */ + EReference PART_USAGE__PART_DEFINITION = eINSTANCE.getPartUsage_PartDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.PayloadFeatureImpl Payload Feature}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PayloadFeatureImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPayloadFeature() + * @generated + */ + EClass PAYLOAD_FEATURE = eINSTANCE.getPayloadFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.PerformActionUsageImpl Perform Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PerformActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPerformActionUsage() + * @generated + */ + EClass PERFORM_ACTION_USAGE = eINSTANCE.getPerformActionUsage(); + + /** + * The meta object literal for the 'Performed Action' reference feature. + * + * + * @generated + */ + EReference PERFORM_ACTION_USAGE__PERFORMED_ACTION = eINSTANCE.getPerformActionUsage_PerformedAction(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.PortConjugationImpl Port Conjugation}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PortConjugationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPortConjugation() + * @generated + */ + EClass PORT_CONJUGATION = eINSTANCE.getPortConjugation(); + + /** + * The meta object literal for the 'Conjugated Port Definition' reference feature. + * + * + * @generated + */ + EReference PORT_CONJUGATION__CONJUGATED_PORT_DEFINITION = eINSTANCE.getPortConjugation_ConjugatedPortDefinition(); + + /** + * The meta object literal for the 'Original Port Definition' reference feature. + * + * + * @generated + */ + EReference PORT_CONJUGATION__ORIGINAL_PORT_DEFINITION = eINSTANCE.getPortConjugation_OriginalPortDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.PortDefinitionImpl Port Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PortDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPortDefinition() + * @generated + */ + EClass PORT_DEFINITION = eINSTANCE.getPortDefinition(); + + /** + * The meta object literal for the 'Conjugated Port Definition' reference feature. + * + * + * @generated + */ + EReference PORT_DEFINITION__CONJUGATED_PORT_DEFINITION = eINSTANCE.getPortDefinition_ConjugatedPortDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.PortUsageImpl Port Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PortUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPortUsage() + * @generated + */ + EClass PORT_USAGE = eINSTANCE.getPortUsage(); + + /** + * The meta object literal for the 'Port Definition' reference list feature. + * + * + * @generated + */ + EReference PORT_USAGE__PORT_DEFINITION = eINSTANCE.getPortUsage_PortDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.PredicateImpl Predicate}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.PredicateImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPredicate() + * @generated + */ + EClass PREDICATE = eINSTANCE.getPredicate(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.RedefinitionImpl Redefinition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RedefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRedefinition() + * @generated + */ + EClass REDEFINITION = eINSTANCE.getRedefinition(); + + /** + * The meta object literal for the 'Redefined Feature' reference feature. + * + * + * @generated + */ + EReference REDEFINITION__REDEFINED_FEATURE = eINSTANCE.getRedefinition_RedefinedFeature(); + + /** + * The meta object literal for the 'Redefining Feature' reference feature. + * + * + * @generated + */ + EReference REDEFINITION__REDEFINING_FEATURE = eINSTANCE.getRedefinition_RedefiningFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ReferenceSubsettingImpl Reference Subsetting}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ReferenceSubsettingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getReferenceSubsetting() + * @generated + */ + EClass REFERENCE_SUBSETTING = eINSTANCE.getReferenceSubsetting(); + + /** + * The meta object literal for the 'Referenced Feature' reference feature. + * + * + * @generated + */ + EReference REFERENCE_SUBSETTING__REFERENCED_FEATURE = eINSTANCE.getReferenceSubsetting_ReferencedFeature(); + + /** + * The meta object literal for the 'Referencing Feature' reference feature. + * + * + * @generated + */ + EReference REFERENCE_SUBSETTING__REFERENCING_FEATURE = eINSTANCE.getReferenceSubsetting_ReferencingFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ReferenceUsageImpl Reference Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ReferenceUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getReferenceUsage() + * @generated + */ + EClass REFERENCE_USAGE = eINSTANCE.getReferenceUsage(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.RelationshipImpl Relationship}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RelationshipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRelationship() + * @generated + */ + EClass RELATIONSHIP = eINSTANCE.getRelationship(); + + /** + * The meta object literal for the 'Is Implied' attribute feature. + * + * + * @generated + */ + EAttribute RELATIONSHIP__IS_IMPLIED = eINSTANCE.getRelationship_IsImplied(); + + /** + * The meta object literal for the 'Owned Related Element' containment reference list feature. + * + * + * @generated + */ + EReference RELATIONSHIP__OWNED_RELATED_ELEMENT = eINSTANCE.getRelationship_OwnedRelatedElement(); + + /** + * The meta object literal for the 'Owning Related Element' container reference feature. + * + * + * @generated + */ + EReference RELATIONSHIP__OWNING_RELATED_ELEMENT = eINSTANCE.getRelationship_OwningRelatedElement(); + + /** + * The meta object literal for the 'Related Element' reference list feature. + * + * + * @generated + */ + EReference RELATIONSHIP__RELATED_ELEMENT = eINSTANCE.getRelationship_RelatedElement(); + + /** + * The meta object literal for the 'Source' reference list feature. + * + * + * @generated + */ + EReference RELATIONSHIP__SOURCE = eINSTANCE.getRelationship_Source(); + + /** + * The meta object literal for the 'Target' reference list feature. + * + * + * @generated + */ + EReference RELATIONSHIP__TARGET = eINSTANCE.getRelationship_Target(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.RenderingDefinitionImpl Rendering Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RenderingDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRenderingDefinition() + * @generated + */ + EClass RENDERING_DEFINITION = eINSTANCE.getRenderingDefinition(); + + /** + * The meta object literal for the 'Rendering' reference list feature. + * + * + * @generated + */ + EReference RENDERING_DEFINITION__RENDERING = eINSTANCE.getRenderingDefinition_Rendering(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.RenderingUsageImpl Rendering Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RenderingUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRenderingUsage() + * @generated + */ + EClass RENDERING_USAGE = eINSTANCE.getRenderingUsage(); + + /** + * The meta object literal for the 'Rendering Definition' reference feature. + * + * + * @generated + */ + EReference RENDERING_USAGE__RENDERING_DEFINITION = eINSTANCE.getRenderingUsage_RenderingDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.RequirementConstraintMembershipImpl Requirement Constraint Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RequirementConstraintMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRequirementConstraintMembership() + * @generated + */ + EClass REQUIREMENT_CONSTRAINT_MEMBERSHIP = eINSTANCE.getRequirementConstraintMembership(); + + /** + * The meta object literal for the 'Kind' attribute feature. + * + * + * @generated + */ + EAttribute REQUIREMENT_CONSTRAINT_MEMBERSHIP__KIND = eINSTANCE.getRequirementConstraintMembership_Kind(); + + /** + * The meta object literal for the 'Owned Constraint' reference feature. + * + * + * @generated + */ + EReference REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_CONSTRAINT = eINSTANCE.getRequirementConstraintMembership_OwnedConstraint(); + + /** + * The meta object literal for the 'Referenced Constraint' reference feature. + * + * + * @generated + */ + EReference REQUIREMENT_CONSTRAINT_MEMBERSHIP__REFERENCED_CONSTRAINT = eINSTANCE.getRequirementConstraintMembership_ReferencedConstraint(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl Requirement Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRequirementDefinition() + * @generated + */ + EClass REQUIREMENT_DEFINITION = eINSTANCE.getRequirementDefinition(); + + /** + * The meta object literal for the 'Req Id' attribute feature. + * + * + * @generated + */ + EAttribute REQUIREMENT_DEFINITION__REQ_ID = eINSTANCE.getRequirementDefinition_ReqId(); + + /** + * The meta object literal for the 'Text' attribute list feature. + * + * + * @generated + */ + EAttribute REQUIREMENT_DEFINITION__TEXT = eINSTANCE.getRequirementDefinition_Text(); + + /** + * The meta object literal for the 'Actor Parameter' reference list feature. + * + * + * @generated + */ + EReference REQUIREMENT_DEFINITION__ACTOR_PARAMETER = eINSTANCE.getRequirementDefinition_ActorParameter(); + + /** + * The meta object literal for the 'Assumed Constraint' reference list feature. + * + * + * @generated + */ + EReference REQUIREMENT_DEFINITION__ASSUMED_CONSTRAINT = eINSTANCE.getRequirementDefinition_AssumedConstraint(); + + /** + * The meta object literal for the 'Framed Concern' reference list feature. + * + * + * @generated + */ + EReference REQUIREMENT_DEFINITION__FRAMED_CONCERN = eINSTANCE.getRequirementDefinition_FramedConcern(); + + /** + * The meta object literal for the 'Required Constraint' reference list feature. + * + * + * @generated + */ + EReference REQUIREMENT_DEFINITION__REQUIRED_CONSTRAINT = eINSTANCE.getRequirementDefinition_RequiredConstraint(); + + /** + * The meta object literal for the 'Stakeholder Parameter' reference list feature. + * + * + * @generated + */ + EReference REQUIREMENT_DEFINITION__STAKEHOLDER_PARAMETER = eINSTANCE.getRequirementDefinition_StakeholderParameter(); + + /** + * The meta object literal for the 'Subject Parameter' reference feature. + * + * + * @generated + */ + EReference REQUIREMENT_DEFINITION__SUBJECT_PARAMETER = eINSTANCE.getRequirementDefinition_SubjectParameter(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl Requirement Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RequirementUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRequirementUsage() + * @generated + */ + EClass REQUIREMENT_USAGE = eINSTANCE.getRequirementUsage(); + + /** + * The meta object literal for the 'Req Id' attribute feature. + * + * + * @generated + */ + EAttribute REQUIREMENT_USAGE__REQ_ID = eINSTANCE.getRequirementUsage_ReqId(); + + /** + * The meta object literal for the 'Text' attribute list feature. + * + * + * @generated + */ + EAttribute REQUIREMENT_USAGE__TEXT = eINSTANCE.getRequirementUsage_Text(); + + /** + * The meta object literal for the 'Actor Parameter' reference list feature. + * + * + * @generated + */ + EReference REQUIREMENT_USAGE__ACTOR_PARAMETER = eINSTANCE.getRequirementUsage_ActorParameter(); + + /** + * The meta object literal for the 'Assumed Constraint' reference list feature. + * + * + * @generated + */ + EReference REQUIREMENT_USAGE__ASSUMED_CONSTRAINT = eINSTANCE.getRequirementUsage_AssumedConstraint(); + + /** + * The meta object literal for the 'Framed Concern' reference list feature. + * + * + * @generated + */ + EReference REQUIREMENT_USAGE__FRAMED_CONCERN = eINSTANCE.getRequirementUsage_FramedConcern(); + + /** + * The meta object literal for the 'Required Constraint' reference list feature. + * + * + * @generated + */ + EReference REQUIREMENT_USAGE__REQUIRED_CONSTRAINT = eINSTANCE.getRequirementUsage_RequiredConstraint(); + + /** + * The meta object literal for the 'Requirement Definition' reference feature. + * + * + * @generated + */ + EReference REQUIREMENT_USAGE__REQUIREMENT_DEFINITION = eINSTANCE.getRequirementUsage_RequirementDefinition(); + + /** + * The meta object literal for the 'Stakeholder Parameter' reference list feature. + * + * + * @generated + */ + EReference REQUIREMENT_USAGE__STAKEHOLDER_PARAMETER = eINSTANCE.getRequirementUsage_StakeholderParameter(); + + /** + * The meta object literal for the 'Subject Parameter' reference feature. + * + * + * @generated + */ + EReference REQUIREMENT_USAGE__SUBJECT_PARAMETER = eINSTANCE.getRequirementUsage_SubjectParameter(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.RequirementVerificationMembershipImpl Requirement Verification Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.RequirementVerificationMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRequirementVerificationMembership() + * @generated + */ + EClass REQUIREMENT_VERIFICATION_MEMBERSHIP = eINSTANCE.getRequirementVerificationMembership(); + + /** + * The meta object literal for the 'Owned Requirement' reference feature. + * + * + * @generated + */ + EReference REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_REQUIREMENT = eINSTANCE.getRequirementVerificationMembership_OwnedRequirement(); + + /** + * The meta object literal for the 'Verified Requirement' reference feature. + * + * + * @generated + */ + EReference REQUIREMENT_VERIFICATION_MEMBERSHIP__VERIFIED_REQUIREMENT = eINSTANCE.getRequirementVerificationMembership_VerifiedRequirement(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ResultExpressionMembershipImpl Result Expression Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ResultExpressionMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getResultExpressionMembership() + * @generated + */ + EClass RESULT_EXPRESSION_MEMBERSHIP = eINSTANCE.getResultExpressionMembership(); + + /** + * The meta object literal for the 'Owned Result Expression' reference feature. + * + * + * @generated + */ + EReference RESULT_EXPRESSION_MEMBERSHIP__OWNED_RESULT_EXPRESSION = eINSTANCE.getResultExpressionMembership_OwnedResultExpression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ReturnParameterMembershipImpl Return Parameter Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ReturnParameterMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getReturnParameterMembership() + * @generated + */ + EClass RETURN_PARAMETER_MEMBERSHIP = eINSTANCE.getReturnParameterMembership(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SatisfyRequirementUsageImpl Satisfy Requirement Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SatisfyRequirementUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSatisfyRequirementUsage() + * @generated + */ + EClass SATISFY_REQUIREMENT_USAGE = eINSTANCE.getSatisfyRequirementUsage(); + + /** + * The meta object literal for the 'Satisfied Requirement' reference feature. + * + * + * @generated + */ + EReference SATISFY_REQUIREMENT_USAGE__SATISFIED_REQUIREMENT = eINSTANCE.getSatisfyRequirementUsage_SatisfiedRequirement(); + + /** + * The meta object literal for the 'Satisfying Feature' reference feature. + * + * + * @generated + */ + EReference SATISFY_REQUIREMENT_USAGE__SATISFYING_FEATURE = eINSTANCE.getSatisfyRequirementUsage_SatisfyingFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SelectExpressionImpl Select Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SelectExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSelectExpression() + * @generated + */ + EClass SELECT_EXPRESSION = eINSTANCE.getSelectExpression(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SendActionUsageImpl Send Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SendActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSendActionUsage() + * @generated + */ + EClass SEND_ACTION_USAGE = eINSTANCE.getSendActionUsage(); + + /** + * The meta object literal for the 'Payload Argument' reference feature. + * + * + * @generated + */ + EReference SEND_ACTION_USAGE__PAYLOAD_ARGUMENT = eINSTANCE.getSendActionUsage_PayloadArgument(); + + /** + * The meta object literal for the 'Receiver Argument' reference feature. + * + * + * @generated + */ + EReference SEND_ACTION_USAGE__RECEIVER_ARGUMENT = eINSTANCE.getSendActionUsage_ReceiverArgument(); + + /** + * The meta object literal for the 'Sender Argument' reference feature. + * + * + * @generated + */ + EReference SEND_ACTION_USAGE__SENDER_ARGUMENT = eINSTANCE.getSendActionUsage_SenderArgument(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SpecializationImpl Specialization}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SpecializationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSpecialization() + * @generated + */ + EClass SPECIALIZATION = eINSTANCE.getSpecialization(); + + /** + * The meta object literal for the 'General' reference feature. + * + * + * @generated + */ + EReference SPECIALIZATION__GENERAL = eINSTANCE.getSpecialization_General(); + + /** + * The meta object literal for the 'Owning Type' reference feature. + * + * + * @generated + */ + EReference SPECIALIZATION__OWNING_TYPE = eINSTANCE.getSpecialization_OwningType(); + + /** + * The meta object literal for the 'Specific' reference feature. + * + * + * @generated + */ + EReference SPECIALIZATION__SPECIFIC = eINSTANCE.getSpecialization_Specific(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.StakeholderMembershipImpl Stakeholder Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StakeholderMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStakeholderMembership() + * @generated + */ + EClass STAKEHOLDER_MEMBERSHIP = eINSTANCE.getStakeholderMembership(); + + /** + * The meta object literal for the 'Owned Stakeholder Parameter' reference feature. + * + * + * @generated + */ + EReference STAKEHOLDER_MEMBERSHIP__OWNED_STAKEHOLDER_PARAMETER = eINSTANCE.getStakeholderMembership_OwnedStakeholderParameter(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.StateDefinitionImpl State Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StateDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStateDefinition() + * @generated + */ + EClass STATE_DEFINITION = eINSTANCE.getStateDefinition(); + + /** + * The meta object literal for the 'Is Parallel' attribute feature. + * + * + * @generated + */ + EAttribute STATE_DEFINITION__IS_PARALLEL = eINSTANCE.getStateDefinition_IsParallel(); + + /** + * The meta object literal for the 'Do Action' reference feature. + * + * + * @generated + */ + EReference STATE_DEFINITION__DO_ACTION = eINSTANCE.getStateDefinition_DoAction(); + + /** + * The meta object literal for the 'Entry Action' reference feature. + * + * + * @generated + */ + EReference STATE_DEFINITION__ENTRY_ACTION = eINSTANCE.getStateDefinition_EntryAction(); + + /** + * The meta object literal for the 'Exit Action' reference feature. + * + * + * @generated + */ + EReference STATE_DEFINITION__EXIT_ACTION = eINSTANCE.getStateDefinition_ExitAction(); + + /** + * The meta object literal for the 'State' reference list feature. + * + * + * @generated + */ + EReference STATE_DEFINITION__STATE = eINSTANCE.getStateDefinition_State(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.StateSubactionMembershipImpl State Subaction Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StateSubactionMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStateSubactionMembership() + * @generated + */ + EClass STATE_SUBACTION_MEMBERSHIP = eINSTANCE.getStateSubactionMembership(); + + /** + * The meta object literal for the 'Kind' attribute feature. + * + * + * @generated + */ + EAttribute STATE_SUBACTION_MEMBERSHIP__KIND = eINSTANCE.getStateSubactionMembership_Kind(); + + /** + * The meta object literal for the 'Action' reference feature. + * + * + * @generated + */ + EReference STATE_SUBACTION_MEMBERSHIP__ACTION = eINSTANCE.getStateSubactionMembership_Action(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.StateUsageImpl State Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StateUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStateUsage() + * @generated + */ + EClass STATE_USAGE = eINSTANCE.getStateUsage(); + + /** + * The meta object literal for the 'Is Parallel' attribute feature. + * + * + * @generated + */ + EAttribute STATE_USAGE__IS_PARALLEL = eINSTANCE.getStateUsage_IsParallel(); + + /** + * The meta object literal for the 'Do Action' reference feature. + * + * + * @generated + */ + EReference STATE_USAGE__DO_ACTION = eINSTANCE.getStateUsage_DoAction(); + + /** + * The meta object literal for the 'Entry Action' reference feature. + * + * + * @generated + */ + EReference STATE_USAGE__ENTRY_ACTION = eINSTANCE.getStateUsage_EntryAction(); + + /** + * The meta object literal for the 'Exit Action' reference feature. + * + * + * @generated + */ + EReference STATE_USAGE__EXIT_ACTION = eINSTANCE.getStateUsage_ExitAction(); + + /** + * The meta object literal for the 'State Definition' reference list feature. + * + * + * @generated + */ + EReference STATE_USAGE__STATE_DEFINITION = eINSTANCE.getStateUsage_StateDefinition(); + + /** + * The meta object literal for the 'Is Substate Usage' operation. + * + * + * @generated + */ + EOperation STATE_USAGE___IS_SUBSTATE_USAGE__BOOLEAN = eINSTANCE.getStateUsage__IsSubstateUsage__boolean(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.StepImpl Step}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StepImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStep() + * @generated + */ + EClass STEP = eINSTANCE.getStep(); + + /** + * The meta object literal for the 'Behavior' reference list feature. + * + * + * @generated + */ + EReference STEP__BEHAVIOR = eINSTANCE.getStep_Behavior(); + + /** + * The meta object literal for the 'Parameter' reference list feature. + * + * + * @generated + */ + EReference STEP__PARAMETER = eINSTANCE.getStep_Parameter(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.StructureImpl Structure}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.StructureImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStructure() + * @generated + */ + EClass STRUCTURE = eINSTANCE.getStructure(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SubclassificationImpl Subclassification}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SubclassificationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSubclassification() + * @generated + */ + EClass SUBCLASSIFICATION = eINSTANCE.getSubclassification(); + + /** + * The meta object literal for the 'Owning Classifier' reference feature. + * + * + * @generated + */ + EReference SUBCLASSIFICATION__OWNING_CLASSIFIER = eINSTANCE.getSubclassification_OwningClassifier(); + + /** + * The meta object literal for the 'Subclassifier' reference feature. + * + * + * @generated + */ + EReference SUBCLASSIFICATION__SUBCLASSIFIER = eINSTANCE.getSubclassification_Subclassifier(); + + /** + * The meta object literal for the 'Superclassifier' reference feature. + * + * + * @generated + */ + EReference SUBCLASSIFICATION__SUPERCLASSIFIER = eINSTANCE.getSubclassification_Superclassifier(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SubjectMembershipImpl Subject Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SubjectMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSubjectMembership() + * @generated + */ + EClass SUBJECT_MEMBERSHIP = eINSTANCE.getSubjectMembership(); + + /** + * The meta object literal for the 'Owned Subject Parameter' reference feature. + * + * + * @generated + */ + EReference SUBJECT_MEMBERSHIP__OWNED_SUBJECT_PARAMETER = eINSTANCE.getSubjectMembership_OwnedSubjectParameter(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SubsettingImpl Subsetting}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SubsettingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSubsetting() + * @generated + */ + EClass SUBSETTING = eINSTANCE.getSubsetting(); + + /** + * The meta object literal for the 'Owning Feature' reference feature. + * + * + * @generated + */ + EReference SUBSETTING__OWNING_FEATURE = eINSTANCE.getSubsetting_OwningFeature(); + + /** + * The meta object literal for the 'Subsetted Feature' reference feature. + * + * + * @generated + */ + EReference SUBSETTING__SUBSETTED_FEATURE = eINSTANCE.getSubsetting_SubsettedFeature(); + + /** + * The meta object literal for the 'Subsetting Feature' reference feature. + * + * + * @generated + */ + EReference SUBSETTING__SUBSETTING_FEATURE = eINSTANCE.getSubsetting_SubsettingFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SuccessionImpl Succession}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SuccessionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSuccession() + * @generated + */ + EClass SUCCESSION = eINSTANCE.getSuccession(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SuccessionAsUsageImpl Succession As Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SuccessionAsUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSuccessionAsUsage() + * @generated + */ + EClass SUCCESSION_AS_USAGE = eINSTANCE.getSuccessionAsUsage(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SuccessionFlowImpl Succession Flow}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SuccessionFlowImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSuccessionFlow() + * @generated + */ + EClass SUCCESSION_FLOW = eINSTANCE.getSuccessionFlow(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.SuccessionFlowUsageImpl Succession Flow Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.SuccessionFlowUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getSuccessionFlowUsage() + * @generated + */ + EClass SUCCESSION_FLOW_USAGE = eINSTANCE.getSuccessionFlowUsage(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.TerminateActionUsageImpl Terminate Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TerminateActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTerminateActionUsage() + * @generated + */ + EClass TERMINATE_ACTION_USAGE = eINSTANCE.getTerminateActionUsage(); + + /** + * The meta object literal for the 'Terminated Occurrence Argument' reference feature. + * + * + * @generated + */ + EReference TERMINATE_ACTION_USAGE__TERMINATED_OCCURRENCE_ARGUMENT = eINSTANCE.getTerminateActionUsage_TerminatedOccurrenceArgument(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.TextualRepresentationImpl Textual Representation}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TextualRepresentationImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTextualRepresentation() + * @generated + */ + EClass TEXTUAL_REPRESENTATION = eINSTANCE.getTextualRepresentation(); + + /** + * The meta object literal for the 'Body' attribute feature. + * + * + * @generated + */ + EAttribute TEXTUAL_REPRESENTATION__BODY = eINSTANCE.getTextualRepresentation_Body(); + + /** + * The meta object literal for the 'Language' attribute feature. + * + * + * @generated + */ + EAttribute TEXTUAL_REPRESENTATION__LANGUAGE = eINSTANCE.getTextualRepresentation_Language(); + + /** + * The meta object literal for the 'Represented Element' reference feature. + * + * + * @generated + */ + EReference TEXTUAL_REPRESENTATION__REPRESENTED_ELEMENT = eINSTANCE.getTextualRepresentation_RepresentedElement(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.TransitionFeatureMembershipImpl Transition Feature Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TransitionFeatureMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTransitionFeatureMembership() + * @generated + */ + EClass TRANSITION_FEATURE_MEMBERSHIP = eINSTANCE.getTransitionFeatureMembership(); + + /** + * The meta object literal for the 'Kind' attribute feature. + * + * + * @generated + */ + EAttribute TRANSITION_FEATURE_MEMBERSHIP__KIND = eINSTANCE.getTransitionFeatureMembership_Kind(); + + /** + * The meta object literal for the 'Transition Feature' reference feature. + * + * + * @generated + */ + EReference TRANSITION_FEATURE_MEMBERSHIP__TRANSITION_FEATURE = eINSTANCE.getTransitionFeatureMembership_TransitionFeature(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.TransitionUsageImpl Transition Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TransitionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTransitionUsage() + * @generated + */ + EClass TRANSITION_USAGE = eINSTANCE.getTransitionUsage(); + + /** + * The meta object literal for the 'Effect Action' reference list feature. + * + * + * @generated + */ + EReference TRANSITION_USAGE__EFFECT_ACTION = eINSTANCE.getTransitionUsage_EffectAction(); + + /** + * The meta object literal for the 'Guard Expression' reference list feature. + * + * + * @generated + */ + EReference TRANSITION_USAGE__GUARD_EXPRESSION = eINSTANCE.getTransitionUsage_GuardExpression(); + + /** + * The meta object literal for the 'Source' reference feature. + * + * + * @generated + */ + EReference TRANSITION_USAGE__SOURCE = eINSTANCE.getTransitionUsage_Source(); + + /** + * The meta object literal for the 'Succession' reference feature. + * + * + * @generated + */ + EReference TRANSITION_USAGE__SUCCESSION = eINSTANCE.getTransitionUsage_Succession(); + + /** + * The meta object literal for the 'Target' reference feature. + * + * + * @generated + */ + EReference TRANSITION_USAGE__TARGET = eINSTANCE.getTransitionUsage_Target(); + + /** + * The meta object literal for the 'Trigger Action' reference list feature. + * + * + * @generated + */ + EReference TRANSITION_USAGE__TRIGGER_ACTION = eINSTANCE.getTransitionUsage_TriggerAction(); + + /** + * The meta object literal for the 'Source Feature' operation. + * + * + * @generated + */ + EOperation TRANSITION_USAGE___SOURCE_FEATURE = eINSTANCE.getTransitionUsage__SourceFeature(); + + /** + * The meta object literal for the 'Trigger Payload Parameter' operation. + * + * + * @generated + */ + EOperation TRANSITION_USAGE___TRIGGER_PAYLOAD_PARAMETER = eINSTANCE.getTransitionUsage__TriggerPayloadParameter(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.TriggerInvocationExpressionImpl Trigger Invocation Expression}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TriggerInvocationExpressionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTriggerInvocationExpression() + * @generated + */ + EClass TRIGGER_INVOCATION_EXPRESSION = eINSTANCE.getTriggerInvocationExpression(); + + /** + * The meta object literal for the 'Kind' attribute feature. + * + * + * @generated + */ + EAttribute TRIGGER_INVOCATION_EXPRESSION__KIND = eINSTANCE.getTriggerInvocationExpression_Kind(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.TypeImpl Type}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TypeImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getType() + * @generated + */ + EClass TYPE = eINSTANCE.getType(); + + /** + * The meta object literal for the 'Is Abstract' attribute feature. + * + * + * @generated + */ + EAttribute TYPE__IS_ABSTRACT = eINSTANCE.getType_IsAbstract(); + + /** + * The meta object literal for the 'Is Conjugated' attribute feature. + * + * + * @generated + */ + EAttribute TYPE__IS_CONJUGATED = eINSTANCE.getType_IsConjugated(); + + /** + * The meta object literal for the 'Is Sufficient' attribute feature. + * + * + * @generated + */ + EAttribute TYPE__IS_SUFFICIENT = eINSTANCE.getType_IsSufficient(); + + /** + * The meta object literal for the 'Differencing Type' reference list feature. + * + * + * @generated + */ + EReference TYPE__DIFFERENCING_TYPE = eINSTANCE.getType_DifferencingType(); + + /** + * The meta object literal for the 'Directed Feature' reference list feature. + * + * + * @generated + */ + EReference TYPE__DIRECTED_FEATURE = eINSTANCE.getType_DirectedFeature(); + + /** + * The meta object literal for the 'End Feature' reference list feature. + * + * + * @generated + */ + EReference TYPE__END_FEATURE = eINSTANCE.getType_EndFeature(); + + /** + * The meta object literal for the 'Feature' reference list feature. + * + * + * @generated + */ + EReference TYPE__FEATURE = eINSTANCE.getType_Feature(); + + /** + * The meta object literal for the 'Feature Membership' reference list feature. + * + * + * @generated + */ + EReference TYPE__FEATURE_MEMBERSHIP = eINSTANCE.getType_FeatureMembership(); + + /** + * The meta object literal for the 'Inherited Feature' reference list feature. + * + * + * @generated + */ + EReference TYPE__INHERITED_FEATURE = eINSTANCE.getType_InheritedFeature(); + + /** + * The meta object literal for the 'Inherited Membership' reference list feature. + * + * + * @generated + */ + EReference TYPE__INHERITED_MEMBERSHIP = eINSTANCE.getType_InheritedMembership(); + + /** + * The meta object literal for the 'Input' reference list feature. + * + * + * @generated + */ + EReference TYPE__INPUT = eINSTANCE.getType_Input(); + + /** + * The meta object literal for the 'Intersecting Type' reference list feature. + * + * + * @generated + */ + EReference TYPE__INTERSECTING_TYPE = eINSTANCE.getType_IntersectingType(); + + /** + * The meta object literal for the 'Multiplicity' reference feature. + * + * + * @generated + */ + EReference TYPE__MULTIPLICITY = eINSTANCE.getType_Multiplicity(); + + /** + * The meta object literal for the 'Output' reference list feature. + * + * + * @generated + */ + EReference TYPE__OUTPUT = eINSTANCE.getType_Output(); + + /** + * The meta object literal for the 'Owned Conjugator' reference feature. + * + * + * @generated + */ + EReference TYPE__OWNED_CONJUGATOR = eINSTANCE.getType_OwnedConjugator(); + + /** + * The meta object literal for the 'Owned Differencing' reference list feature. + * + * + * @generated + */ + EReference TYPE__OWNED_DIFFERENCING = eINSTANCE.getType_OwnedDifferencing(); + + /** + * The meta object literal for the 'Owned Disjoining' reference list feature. + * + * + * @generated + */ + EReference TYPE__OWNED_DISJOINING = eINSTANCE.getType_OwnedDisjoining(); + + /** + * The meta object literal for the 'Owned End Feature' reference list feature. + * + * + * @generated + */ + EReference TYPE__OWNED_END_FEATURE = eINSTANCE.getType_OwnedEndFeature(); + + /** + * The meta object literal for the 'Owned Feature' reference list feature. + * + * + * @generated + */ + EReference TYPE__OWNED_FEATURE = eINSTANCE.getType_OwnedFeature(); + + /** + * The meta object literal for the 'Owned Feature Membership' reference list feature. + * + * + * @generated + */ + EReference TYPE__OWNED_FEATURE_MEMBERSHIP = eINSTANCE.getType_OwnedFeatureMembership(); + + /** + * The meta object literal for the 'Owned Intersecting' reference list feature. + * + * + * @generated + */ + EReference TYPE__OWNED_INTERSECTING = eINSTANCE.getType_OwnedIntersecting(); + + /** + * The meta object literal for the 'Owned Specialization' reference list feature. + * + * + * @generated + */ + EReference TYPE__OWNED_SPECIALIZATION = eINSTANCE.getType_OwnedSpecialization(); + + /** + * The meta object literal for the 'Owned Unioning' reference list feature. + * + * + * @generated + */ + EReference TYPE__OWNED_UNIONING = eINSTANCE.getType_OwnedUnioning(); + + /** + * The meta object literal for the 'Unioning Type' reference list feature. + * + * + * @generated + */ + EReference TYPE__UNIONING_TYPE = eINSTANCE.getType_UnioningType(); + + /** + * The meta object literal for the 'All Redefined Features Of' operation. + * + * + * @generated + */ + EOperation TYPE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP = eINSTANCE.getType__AllRedefinedFeaturesOf__Membership(); + + /** + * The meta object literal for the 'All Supertypes' operation. + * + * + * @generated + */ + EOperation TYPE___ALL_SUPERTYPES = eINSTANCE.getType__AllSupertypes(); + + /** + * The meta object literal for the 'Direction Of' operation. + * + * + * @generated + */ + EOperation TYPE___DIRECTION_OF__FEATURE = eINSTANCE.getType__DirectionOf__Feature(); + + /** + * The meta object literal for the 'Direction Of Excluding' operation. + * + * + * @generated + */ + EOperation TYPE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST = eINSTANCE.getType__DirectionOfExcluding__Feature_EList(); + + /** + * The meta object literal for the 'Inheritable Memberships' operation. + * + * + * @generated + */ + EOperation TYPE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = eINSTANCE.getType__InheritableMemberships__EList_EList_boolean(); + + /** + * The meta object literal for the 'Inherited Memberships' operation. + * + * + * @generated + */ + EOperation TYPE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = eINSTANCE.getType__InheritedMemberships__EList_EList_boolean(); + + /** + * The meta object literal for the 'Is Compatible With' operation. + * + * + * @generated + */ + EOperation TYPE___IS_COMPATIBLE_WITH__TYPE = eINSTANCE.getType__IsCompatibleWith__Type(); + + /** + * The meta object literal for the 'Multiplicities' operation. + * + * + * @generated + */ + EOperation TYPE___MULTIPLICITIES = eINSTANCE.getType__Multiplicities(); + + /** + * The meta object literal for the 'Non Private Memberships' operation. + * + * + * @generated + */ + EOperation TYPE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN = eINSTANCE.getType__NonPrivateMemberships__EList_EList_boolean(); + + /** + * The meta object literal for the 'Remove Redefined Features' operation. + * + * + * @generated + */ + EOperation TYPE___REMOVE_REDEFINED_FEATURES__ELIST = eINSTANCE.getType__RemoveRedefinedFeatures__EList(); + + /** + * The meta object literal for the 'Specializes' operation. + * + * + * @generated + */ + EOperation TYPE___SPECIALIZES__TYPE = eINSTANCE.getType__Specializes__Type(); + + /** + * The meta object literal for the 'Specializes From Library' operation. + * + * + * @generated + */ + EOperation TYPE___SPECIALIZES_FROM_LIBRARY__STRING = eINSTANCE.getType__SpecializesFromLibrary__String(); + + /** + * The meta object literal for the 'Supertypes' operation. + * + * + * @generated + */ + EOperation TYPE___SUPERTYPES__BOOLEAN = eINSTANCE.getType__Supertypes__boolean(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.TypeFeaturingImpl Type Featuring}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.TypeFeaturingImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTypeFeaturing() + * @generated + */ + EClass TYPE_FEATURING = eINSTANCE.getTypeFeaturing(); + + /** + * The meta object literal for the 'Feature Of Type' reference feature. + * + * + * @generated + */ + EReference TYPE_FEATURING__FEATURE_OF_TYPE = eINSTANCE.getTypeFeaturing_FeatureOfType(); + + /** + * The meta object literal for the 'Featuring Type' reference feature. + * + * + * @generated + */ + EReference TYPE_FEATURING__FEATURING_TYPE = eINSTANCE.getTypeFeaturing_FeaturingType(); + + /** + * The meta object literal for the 'Owning Feature Of Type' reference feature. + * + * + * @generated + */ + EReference TYPE_FEATURING__OWNING_FEATURE_OF_TYPE = eINSTANCE.getTypeFeaturing_OwningFeatureOfType(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.UnioningImpl Unioning}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.UnioningImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getUnioning() + * @generated + */ + EClass UNIONING = eINSTANCE.getUnioning(); + + /** + * The meta object literal for the 'Type Unioned' reference feature. + * + * + * @generated + */ + EReference UNIONING__TYPE_UNIONED = eINSTANCE.getUnioning_TypeUnioned(); + + /** + * The meta object literal for the 'Unioning Type' reference feature. + * + * + * @generated + */ + EReference UNIONING__UNIONING_TYPE = eINSTANCE.getUnioning_UnioningType(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.UsageImpl Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.UsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getUsage() + * @generated + */ + EClass USAGE = eINSTANCE.getUsage(); + + /** + * The meta object literal for the 'Is Reference' attribute feature. + * + * + * @generated + */ + EAttribute USAGE__IS_REFERENCE = eINSTANCE.getUsage_IsReference(); + + /** + * The meta object literal for the 'Is Variation' attribute feature. + * + * + * @generated + */ + EAttribute USAGE__IS_VARIATION = eINSTANCE.getUsage_IsVariation(); + + /** + * The meta object literal for the 'May Time Vary' attribute feature. + * + * + * @generated + */ + EAttribute USAGE__MAY_TIME_VARY = eINSTANCE.getUsage_MayTimeVary(); + + /** + * The meta object literal for the 'Definition' reference list feature. + * + * + * @generated + */ + EReference USAGE__DEFINITION = eINSTANCE.getUsage_Definition(); + + /** + * The meta object literal for the 'Directed Usage' reference list feature. + * + * + * @generated + */ + EReference USAGE__DIRECTED_USAGE = eINSTANCE.getUsage_DirectedUsage(); + + /** + * The meta object literal for the 'Nested Action' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_ACTION = eINSTANCE.getUsage_NestedAction(); + + /** + * The meta object literal for the 'Nested Allocation' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_ALLOCATION = eINSTANCE.getUsage_NestedAllocation(); + + /** + * The meta object literal for the 'Nested Analysis Case' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_ANALYSIS_CASE = eINSTANCE.getUsage_NestedAnalysisCase(); + + /** + * The meta object literal for the 'Nested Attribute' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_ATTRIBUTE = eINSTANCE.getUsage_NestedAttribute(); + + /** + * The meta object literal for the 'Nested Calculation' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_CALCULATION = eINSTANCE.getUsage_NestedCalculation(); + + /** + * The meta object literal for the 'Nested Case' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_CASE = eINSTANCE.getUsage_NestedCase(); + + /** + * The meta object literal for the 'Nested Concern' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_CONCERN = eINSTANCE.getUsage_NestedConcern(); + + /** + * The meta object literal for the 'Nested Connection' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_CONNECTION = eINSTANCE.getUsage_NestedConnection(); + + /** + * The meta object literal for the 'Nested Constraint' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_CONSTRAINT = eINSTANCE.getUsage_NestedConstraint(); + + /** + * The meta object literal for the 'Nested Enumeration' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_ENUMERATION = eINSTANCE.getUsage_NestedEnumeration(); + + /** + * The meta object literal for the 'Nested Flow' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_FLOW = eINSTANCE.getUsage_NestedFlow(); + + /** + * The meta object literal for the 'Nested Interface' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_INTERFACE = eINSTANCE.getUsage_NestedInterface(); + + /** + * The meta object literal for the 'Nested Item' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_ITEM = eINSTANCE.getUsage_NestedItem(); + + /** + * The meta object literal for the 'Nested Metadata' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_METADATA = eINSTANCE.getUsage_NestedMetadata(); + + /** + * The meta object literal for the 'Nested Occurrence' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_OCCURRENCE = eINSTANCE.getUsage_NestedOccurrence(); + + /** + * The meta object literal for the 'Nested Part' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_PART = eINSTANCE.getUsage_NestedPart(); + + /** + * The meta object literal for the 'Nested Port' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_PORT = eINSTANCE.getUsage_NestedPort(); + + /** + * The meta object literal for the 'Nested Reference' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_REFERENCE = eINSTANCE.getUsage_NestedReference(); + + /** + * The meta object literal for the 'Nested Rendering' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_RENDERING = eINSTANCE.getUsage_NestedRendering(); + + /** + * The meta object literal for the 'Nested Requirement' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_REQUIREMENT = eINSTANCE.getUsage_NestedRequirement(); + + /** + * The meta object literal for the 'Nested State' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_STATE = eINSTANCE.getUsage_NestedState(); + + /** + * The meta object literal for the 'Nested Transition' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_TRANSITION = eINSTANCE.getUsage_NestedTransition(); + + /** + * The meta object literal for the 'Nested Usage' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_USAGE = eINSTANCE.getUsage_NestedUsage(); + + /** + * The meta object literal for the 'Nested Use Case' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_USE_CASE = eINSTANCE.getUsage_NestedUseCase(); + + /** + * The meta object literal for the 'Nested Verification Case' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_VERIFICATION_CASE = eINSTANCE.getUsage_NestedVerificationCase(); + + /** + * The meta object literal for the 'Nested View' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_VIEW = eINSTANCE.getUsage_NestedView(); + + /** + * The meta object literal for the 'Nested Viewpoint' reference list feature. + * + * + * @generated + */ + EReference USAGE__NESTED_VIEWPOINT = eINSTANCE.getUsage_NestedViewpoint(); + + /** + * The meta object literal for the 'Owning Definition' reference feature. + * + * + * @generated + */ + EReference USAGE__OWNING_DEFINITION = eINSTANCE.getUsage_OwningDefinition(); + + /** + * The meta object literal for the 'Owning Usage' reference feature. + * + * + * @generated + */ + EReference USAGE__OWNING_USAGE = eINSTANCE.getUsage_OwningUsage(); + + /** + * The meta object literal for the 'Usage' reference list feature. + * + * + * @generated + */ + EReference USAGE__USAGE = eINSTANCE.getUsage_Usage(); + + /** + * The meta object literal for the 'Variant' reference list feature. + * + * + * @generated + */ + EReference USAGE__VARIANT = eINSTANCE.getUsage_Variant(); + + /** + * The meta object literal for the 'Variant Membership' reference list feature. + * + * + * @generated + */ + EReference USAGE__VARIANT_MEMBERSHIP = eINSTANCE.getUsage_VariantMembership(); + + /** + * The meta object literal for the 'Referenced Feature Target' operation. + * + * + * @generated + */ + EOperation USAGE___REFERENCED_FEATURE_TARGET = eINSTANCE.getUsage__ReferencedFeatureTarget(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.UseCaseDefinitionImpl Use Case Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.UseCaseDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getUseCaseDefinition() + * @generated + */ + EClass USE_CASE_DEFINITION = eINSTANCE.getUseCaseDefinition(); + + /** + * The meta object literal for the 'Included Use Case' reference list feature. + * + * + * @generated + */ + EReference USE_CASE_DEFINITION__INCLUDED_USE_CASE = eINSTANCE.getUseCaseDefinition_IncludedUseCase(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.UseCaseUsageImpl Use Case Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.UseCaseUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getUseCaseUsage() + * @generated + */ + EClass USE_CASE_USAGE = eINSTANCE.getUseCaseUsage(); + + /** + * The meta object literal for the 'Included Use Case' reference list feature. + * + * + * @generated + */ + EReference USE_CASE_USAGE__INCLUDED_USE_CASE = eINSTANCE.getUseCaseUsage_IncludedUseCase(); + + /** + * The meta object literal for the 'Use Case Definition' reference feature. + * + * + * @generated + */ + EReference USE_CASE_USAGE__USE_CASE_DEFINITION = eINSTANCE.getUseCaseUsage_UseCaseDefinition(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.VariantMembershipImpl Variant Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.VariantMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getVariantMembership() + * @generated + */ + EClass VARIANT_MEMBERSHIP = eINSTANCE.getVariantMembership(); + + /** + * The meta object literal for the 'Owned Variant Usage' reference feature. + * + * + * @generated + */ + EReference VARIANT_MEMBERSHIP__OWNED_VARIANT_USAGE = eINSTANCE.getVariantMembership_OwnedVariantUsage(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.VerificationCaseDefinitionImpl Verification Case Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.VerificationCaseDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getVerificationCaseDefinition() + * @generated + */ + EClass VERIFICATION_CASE_DEFINITION = eINSTANCE.getVerificationCaseDefinition(); + + /** + * The meta object literal for the 'Verified Requirement' reference list feature. + * + * + * @generated + */ + EReference VERIFICATION_CASE_DEFINITION__VERIFIED_REQUIREMENT = eINSTANCE.getVerificationCaseDefinition_VerifiedRequirement(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.VerificationCaseUsageImpl Verification Case Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.VerificationCaseUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getVerificationCaseUsage() + * @generated + */ + EClass VERIFICATION_CASE_USAGE = eINSTANCE.getVerificationCaseUsage(); + + /** + * The meta object literal for the 'Verification Case Definition' reference feature. + * + * + * @generated + */ + EReference VERIFICATION_CASE_USAGE__VERIFICATION_CASE_DEFINITION = eINSTANCE.getVerificationCaseUsage_VerificationCaseDefinition(); + + /** + * The meta object literal for the 'Verified Requirement' reference list feature. + * + * + * @generated + */ + EReference VERIFICATION_CASE_USAGE__VERIFIED_REQUIREMENT = eINSTANCE.getVerificationCaseUsage_VerifiedRequirement(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ViewDefinitionImpl View Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ViewDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getViewDefinition() + * @generated + */ + EClass VIEW_DEFINITION = eINSTANCE.getViewDefinition(); + + /** + * The meta object literal for the 'Satisfied Viewpoint' reference list feature. + * + * + * @generated + */ + EReference VIEW_DEFINITION__SATISFIED_VIEWPOINT = eINSTANCE.getViewDefinition_SatisfiedViewpoint(); + + /** + * The meta object literal for the 'View' reference list feature. + * + * + * @generated + */ + EReference VIEW_DEFINITION__VIEW = eINSTANCE.getViewDefinition_View(); + + /** + * The meta object literal for the 'View Condition' reference list feature. + * + * + * @generated + */ + EReference VIEW_DEFINITION__VIEW_CONDITION = eINSTANCE.getViewDefinition_ViewCondition(); + + /** + * The meta object literal for the 'View Rendering' reference feature. + * + * + * @generated + */ + EReference VIEW_DEFINITION__VIEW_RENDERING = eINSTANCE.getViewDefinition_ViewRendering(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ViewpointDefinitionImpl Viewpoint Definition}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ViewpointDefinitionImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getViewpointDefinition() + * @generated + */ + EClass VIEWPOINT_DEFINITION = eINSTANCE.getViewpointDefinition(); + + /** + * The meta object literal for the 'Viewpoint Stakeholder' reference list feature. + * + * + * @generated + */ + EReference VIEWPOINT_DEFINITION__VIEWPOINT_STAKEHOLDER = eINSTANCE.getViewpointDefinition_ViewpointStakeholder(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ViewpointUsageImpl Viewpoint Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ViewpointUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getViewpointUsage() + * @generated + */ + EClass VIEWPOINT_USAGE = eINSTANCE.getViewpointUsage(); + + /** + * The meta object literal for the 'Viewpoint Definition' reference feature. + * + * + * @generated + */ + EReference VIEWPOINT_USAGE__VIEWPOINT_DEFINITION = eINSTANCE.getViewpointUsage_ViewpointDefinition(); + + /** + * The meta object literal for the 'Viewpoint Stakeholder' reference list feature. + * + * + * @generated + */ + EReference VIEWPOINT_USAGE__VIEWPOINT_STAKEHOLDER = eINSTANCE.getViewpointUsage_ViewpointStakeholder(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ViewRenderingMembershipImpl View Rendering Membership}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ViewRenderingMembershipImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getViewRenderingMembership() + * @generated + */ + EClass VIEW_RENDERING_MEMBERSHIP = eINSTANCE.getViewRenderingMembership(); + + /** + * The meta object literal for the 'Owned Rendering' reference feature. + * + * + * @generated + */ + EReference VIEW_RENDERING_MEMBERSHIP__OWNED_RENDERING = eINSTANCE.getViewRenderingMembership_OwnedRendering(); + + /** + * The meta object literal for the 'Referenced Rendering' reference feature. + * + * + * @generated + */ + EReference VIEW_RENDERING_MEMBERSHIP__REFERENCED_RENDERING = eINSTANCE.getViewRenderingMembership_ReferencedRendering(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.ViewUsageImpl View Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.ViewUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getViewUsage() + * @generated + */ + EClass VIEW_USAGE = eINSTANCE.getViewUsage(); + + /** + * The meta object literal for the 'Exposed Element' reference list feature. + * + * + * @generated + */ + EReference VIEW_USAGE__EXPOSED_ELEMENT = eINSTANCE.getViewUsage_ExposedElement(); + + /** + * The meta object literal for the 'Satisfied Viewpoint' reference list feature. + * + * + * @generated + */ + EReference VIEW_USAGE__SATISFIED_VIEWPOINT = eINSTANCE.getViewUsage_SatisfiedViewpoint(); + + /** + * The meta object literal for the 'View Condition' reference list feature. + * + * + * @generated + */ + EReference VIEW_USAGE__VIEW_CONDITION = eINSTANCE.getViewUsage_ViewCondition(); + + /** + * The meta object literal for the 'View Definition' reference feature. + * + * + * @generated + */ + EReference VIEW_USAGE__VIEW_DEFINITION = eINSTANCE.getViewUsage_ViewDefinition(); + + /** + * The meta object literal for the 'View Rendering' reference feature. + * + * + * @generated + */ + EReference VIEW_USAGE__VIEW_RENDERING = eINSTANCE.getViewUsage_ViewRendering(); + + /** + * The meta object literal for the 'Include As Exposed' operation. + * + * + * @generated + */ + EOperation VIEW_USAGE___INCLUDE_AS_EXPOSED__ELEMENT = eINSTANCE.getViewUsage__IncludeAsExposed__Element(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.impl.WhileLoopActionUsageImpl While Loop Action Usage}' class. + * + * + * @see org.omg.sysml.model.sysml.impl.WhileLoopActionUsageImpl + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getWhileLoopActionUsage() + * @generated + */ + EClass WHILE_LOOP_ACTION_USAGE = eINSTANCE.getWhileLoopActionUsage(); + + /** + * The meta object literal for the 'Until Argument' reference feature. + * + * + * @generated + */ + EReference WHILE_LOOP_ACTION_USAGE__UNTIL_ARGUMENT = eINSTANCE.getWhileLoopActionUsage_UntilArgument(); + + /** + * The meta object literal for the 'While Argument' reference feature. + * + * + * @generated + */ + EReference WHILE_LOOP_ACTION_USAGE__WHILE_ARGUMENT = eINSTANCE.getWhileLoopActionUsage_WhileArgument(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.FeatureDirectionKind Feature Direction Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.FeatureDirectionKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getFeatureDirectionKind() + * @generated + */ + EEnum FEATURE_DIRECTION_KIND = eINSTANCE.getFeatureDirectionKind(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.PortionKind Portion Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.PortionKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getPortionKind() + * @generated + */ + EEnum PORTION_KIND = eINSTANCE.getPortionKind(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.RequirementConstraintKind Requirement Constraint Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.RequirementConstraintKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getRequirementConstraintKind() + * @generated + */ + EEnum REQUIREMENT_CONSTRAINT_KIND = eINSTANCE.getRequirementConstraintKind(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.StateSubactionKind State Subaction Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.StateSubactionKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getStateSubactionKind() + * @generated + */ + EEnum STATE_SUBACTION_KIND = eINSTANCE.getStateSubactionKind(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.TransitionFeatureKind Transition Feature Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.TransitionFeatureKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTransitionFeatureKind() + * @generated + */ + EEnum TRANSITION_FEATURE_KIND = eINSTANCE.getTransitionFeatureKind(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.TriggerKind Trigger Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.TriggerKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getTriggerKind() + * @generated + */ + EEnum TRIGGER_KIND = eINSTANCE.getTriggerKind(); + + /** + * The meta object literal for the '{@link org.omg.sysml.model.sysml.VisibilityKind Visibility Kind}' enum. + * + * + * @see org.omg.sysml.model.sysml.VisibilityKind + * @see org.omg.sysml.model.sysml.impl.SysMLPackageImpl#getVisibilityKind() + * @generated + */ + EEnum VISIBILITY_KIND = eINSTANCE.getVisibilityKind(); + + } + +} //SysMLPackage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TerminateActionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TerminateActionUsage.java new file mode 100644 index 000000000..a397ce2ef --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TerminateActionUsage.java @@ -0,0 +1,75 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Terminate Action Usage'. + * + * + * + *

A TerminateActionUsage is an ActionUsage that directly or indirectly specializes the ActionDefinition TerminateAction from the Systems Model Library, which causes a given terminatedOccurrence to end during its performance. By default, the terminatedOccurrence is the featuring instance (that) of the performance of the TerminateActionUsage, generally the performance of its immediately containing ActionDefinition or ActionUsage.

+ * specializesFromLibrary('Actions::terminateActions') + * terminatedOccurrenceArgument = argument(1) + * isSubactionUsage() implies + * specializesFromLibrary('Actions::Action::terminateSubactions') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.TerminateActionUsage#getTerminatedOccurrenceArgument Terminated Occurrence Argument}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getTerminateActionUsage() + * @model + * @generated + */ +public interface TerminateActionUsage extends ActionUsage { + /** + * Returns the value of the 'Terminated Occurrence Argument' reference. + * + * + * + *

The Expression that is the featureValue of the terminateOccurrence parameter of this TerminateActionUsage. + * + * @return the value of the 'Terminated Occurrence Argument' reference. + * @see #setTerminatedOccurrenceArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTerminateActionUsage_TerminatedOccurrenceArgument() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='terminateActionUsage'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getTerminatedOccurrenceArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TerminateActionUsage#getTerminatedOccurrenceArgument Terminated Occurrence Argument}' reference. + * + * + * @param value the new value of the 'Terminated Occurrence Argument' reference. + * @see #getTerminatedOccurrenceArgument() + * @generated + */ + void setTerminatedOccurrenceArgument(Expression value); + +} // TerminateActionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TextualRepresentation.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TextualRepresentation.java new file mode 100644 index 000000000..976f8f36d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TextualRepresentation.java @@ -0,0 +1,157 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Textual Representation'. + * + * + * + *

A TextualRepresentation is an AnnotatingElement whose body represents the representedElement in a given language. The representedElement must be the owner of the TextualRepresentation. The named language can be a natural language, in which case the body is an informal representation, or an artificial language, in which case the body is expected to be a formal, machine-parsable representation.

+ * + *

If the named language of a TextualRepresentation is machine-parsable, then the body text should be legal input text as defined for that language. The interpretation of the named language string shall be case insensitive. The following language names are defined to correspond to the given standard languages:

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
kermlKernel Modeling Language
oclObject Constraint Language
alfAction Language for fUML
+ * + *

Other specifications may define specific language strings, other than those shown above, to be used to indicate the use of languages from those specifications in KerML TextualRepresentation.

+ * + *

If the language of a TextualRepresentation is "kerml", then the body text shall be a legal representation of the representedElement in the KerML textual concrete syntax. A conforming tool can use such a TextualRepresentation Annotation to record the original KerML concrete syntax text from which an Element was parsed. In this case, it is a tool responsibility to ensure that the body of the TextualRepresentation remains correct (or the Annotation is removed) if the annotated Element changes other than by re-parsing the body text.

+ * + *

An Element with a TextualRepresentation in a language other than KerML is essentially a semantically "opaque" Element specified in the other language. However, a conforming KerML tool may interpret such an element consistently with the specification of the named language.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.TextualRepresentation#getBody Body}
  • + *
  • {@link org.omg.sysml.model.sysml.TextualRepresentation#getLanguage Language}
  • + *
  • {@link org.omg.sysml.model.sysml.TextualRepresentation#getRepresentedElement Represented Element}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getTextualRepresentation() + * @model + * @generated + */ +public interface TextualRepresentation extends AnnotatingElement { + /** + * Returns the value of the 'Body' attribute. + * + * + * + *

The textual representation of the representedElement in the given language.

+ * + * + * @return the value of the 'Body' attribute. + * @see #setBody(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTextualRepresentation_Body() + * @model required="true" ordered="false" + * @generated + */ + String getBody(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TextualRepresentation#getBody Body}' attribute. + * + * + * @param value the new value of the 'Body' attribute. + * @see #getBody() + * @generated + */ + void setBody(String value); + + /** + * Returns the value of the 'Language' attribute. + * + * + * + *

The natural or artifical language in which the body text is written.

+ * + * + * @return the value of the 'Language' attribute. + * @see #setLanguage(String) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTextualRepresentation_Language() + * @model required="true" ordered="false" + * @generated + */ + String getLanguage(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TextualRepresentation#getLanguage Language}' attribute. + * + * + * @param value the new value of the 'Language' attribute. + * @see #getLanguage() + * @generated + */ + void setLanguage(String value); + + /** + * Returns the value of the 'Represented Element' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Element#getTextualRepresentation Textual Representation}'. + * + * + * + *

The Element that is represented by this TextualRepresentation.

+ * + * + * @return the value of the 'Represented Element' reference. + * @see #setRepresentedElement(Element) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTextualRepresentation_RepresentedElement() + * @see org.omg.sysml.model.sysml.Element#getTextualRepresentation + * @model opposite="textualRepresentation" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Element getRepresentedElement(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TextualRepresentation#getRepresentedElement Represented Element}' reference. + * + * + * @param value the new value of the 'Represented Element' reference. + * @see #getRepresentedElement() + * @generated + */ + void setRepresentedElement(Element value); + +} // TextualRepresentation diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TransitionFeatureKind.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TransitionFeatureKind.java new file mode 100644 index 000000000..0f90a64ca --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TransitionFeatureKind.java @@ -0,0 +1,270 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Transition Feature Kind', + * and utility methods for working with them. + * + * + *

A TransitionActionKind indicates whether the transitionFeature of a TransitionFeatureMembership is a trigger, guard or effect.

+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionFeatureKind() + * @model + * @generated + */ +public enum TransitionFeatureKind implements Enumerator { + /** + * The 'Trigger' literal object. + * + * + * + *

Indicates that the transitionFeature of a TransitionFeatureMembership is a triggerAction.

+ * + * @see #TRIGGER_VALUE + * @generated + * @ordered + */ + TRIGGER(0, "trigger", "trigger"), + + /** + * The 'Guard' literal object. + * + * + * + *

Indicates that the transitionFeature of a TransitionFeatureMembership is a guardExpression.

+ * + * @see #GUARD_VALUE + * @generated + * @ordered + */ + GUARD(1, "guard", "guard"), + + /** + * The 'Effect' literal object. + * + * + * + *

Indicates that the transitionFeature of a TransitionFeatureMembership is an effectAction.

+ * + * @see #EFFECT_VALUE + * @generated + * @ordered + */ + EFFECT(2, "effect", "effect"); + + /** + * The 'Trigger' literal value. + * + * + * + *

Indicates that the transitionFeature of a TransitionFeatureMembership is a triggerAction.

+ * + * @see #TRIGGER + * @model name="trigger" + * @generated + * @ordered + */ + public static final int TRIGGER_VALUE = 0; + + /** + * The 'Guard' literal value. + * + * + * + *

Indicates that the transitionFeature of a TransitionFeatureMembership is a guardExpression.

+ * + * @see #GUARD + * @model name="guard" + * @generated + * @ordered + */ + public static final int GUARD_VALUE = 1; + + /** + * The 'Effect' literal value. + * + * + * + *

Indicates that the transitionFeature of a TransitionFeatureMembership is an effectAction.

+ * + * @see #EFFECT + * @model name="effect" + * @generated + * @ordered + */ + public static final int EFFECT_VALUE = 2; + + /** + * An array of all the 'Transition Feature Kind' enumerators. + * + * + * @generated + */ + private static final TransitionFeatureKind[] VALUES_ARRAY = + new TransitionFeatureKind[] { + TRIGGER, + GUARD, + EFFECT, + }; + + /** + * A public read-only list of all the 'Transition Feature Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Transition Feature Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static TransitionFeatureKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + TransitionFeatureKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Transition Feature Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static TransitionFeatureKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + TransitionFeatureKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Transition Feature Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static TransitionFeatureKind get(int value) { + switch (value) { + case TRIGGER_VALUE: return TRIGGER; + case GUARD_VALUE: return GUARD; + case EFFECT_VALUE: return EFFECT; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private TransitionFeatureKind(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //TransitionFeatureKind diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TransitionFeatureMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TransitionFeatureMembership.java new file mode 100644 index 000000000..9fb583686 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TransitionFeatureMembership.java @@ -0,0 +1,112 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Transition Feature Membership'. + * + * + * + *

A TransitionFeatureMembership is a FeatureMembership for a trigger, guard or effect of a TransitionUsage, whose transitionFeature is a AcceptActionUsage, Boolean-valued Expression or ActionUsage, depending on its kind.

+ * kind = TransitionFeatureKind::trigger implies + * transitionFeature.oclIsKindOf(AcceptActionUsage) + * owningType.oclIsKindOf(TransitionUsage) + * kind = TransitionFeatureKind::guard implies + * transitionFeature.oclIsKindOf(Expression) and + * let guard : Expression = transitionFeature.oclIsKindOf(Expression) in + * guard.result.specializesFromLibrary('ScalarValues::Boolean') and + * guard.result.multiplicity <> null and + * guard.result.multiplicity.hasBounds(1,1) + * kind = TransitionFeatureKind::effect implies + * transitionFeature.oclIsKindOf(ActionUsage) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.TransitionFeatureMembership#getKind Kind}
  • + *
  • {@link org.omg.sysml.model.sysml.TransitionFeatureMembership#getTransitionFeature Transition Feature}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionFeatureMembership() + * @model + * @generated + */ +public interface TransitionFeatureMembership extends FeatureMembership { + /** + * Returns the value of the 'Kind' attribute. + * The literals are from the enumeration {@link org.omg.sysml.model.sysml.TransitionFeatureKind}. + * + * + * + *

Whether this TransitionFeatureMembership is for a trigger, guard or effect.

+ * + * @return the value of the 'Kind' attribute. + * @see org.omg.sysml.model.sysml.TransitionFeatureKind + * @see #setKind(TransitionFeatureKind) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionFeatureMembership_Kind() + * @model required="true" ordered="false" + * @generated + */ + TransitionFeatureKind getKind(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TransitionFeatureMembership#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.omg.sysml.model.sysml.TransitionFeatureKind + * @see #getKind() + * @generated + */ + void setKind(TransitionFeatureKind value); + + /** + * Returns the value of the 'Transition Feature' reference. + * + * + * + *

The Step that is the ownedMemberFeature of this TransitionFeatureMembership.

+ * + * @return the value of the 'Transition Feature' reference. + * @see #setTransitionFeature(Step) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionFeatureMembership_TransitionFeature() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='transitionFeatureMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Step getTransitionFeature(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TransitionFeatureMembership#getTransitionFeature Transition Feature}' reference. + * + * + * @param value the new value of the 'Transition Feature' reference. + * @see #getTransitionFeature() + * @generated + */ + void setTransitionFeature(Step value); + +} // TransitionFeatureMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TransitionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TransitionUsage.java new file mode 100644 index 000000000..3e62c7d59 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TransitionUsage.java @@ -0,0 +1,289 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Transition Usage'. + * + * + * + *

A TransitionUsage is an ActionUsage representing a triggered transition between ActionUsages or StateUsages. When triggered by a triggerAction, when its guardExpression is true, the TransitionUsage asserts that its source is exited, then its effectAction (if any) is performed, and then its target is entered.

+ * + *

A TransitionUsage can be related to some of its ownedFeatures using TransitionFeatureMembership Relationships, corresponding to the triggerAction, guardExpression and effectAction of the TransitionUsage.

+ * isComposite and owningType <> null and + * (owningType.oclIsKindOf(ActionDefinition) or + * owningType.oclIsKindOf(ActionUsage)) and + * source <> null and not source.oclIsKindOf(StateUsage) implies + * specializesFromLibrary('Actions::Action::decisionTransitions') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(StateDefinition) or + * owningType.oclIsKindOf(StateUsage)) and + * source <> null and source.oclIsKindOf(StateUsage) implies + * specializesFromLibrary('States::StateAction::stateTransitions') + * + * specializesFromLibrary('Actions::transitionActions') + * source = + * let sourceFeature : Feature = sourceFeature() in + * if sourceFeature = null then null + * else sourceFeature.featureTarget.oclAsType(ActionUsage) + * target = + * if succession.targetFeature->isEmpty() then null + * else + * let targetFeature : Feature = + * succession.targetFeature->first().featureTarget in + * if not targetFeature.oclIsKindOf(ActionUsage) then null + * else targetFeature.oclAsType(ActionUsage) + * endif + * endif + * + * triggerAction = ownedFeatureMembership-> + * selectByKind(TransitionFeatureMembership)-> + * select(kind = TransitionFeatureKind::trigger).transitionFeature-> + * selectByKind(AcceptActionUsage) + * let successions : Sequence(Successions) = + * ownedMember->selectByKind(Succession) in + * successions->notEmpty() and + * successions->at(1).targetFeature.featureTarget-> + * forAll(oclIsKindOf(ActionUsage)) + * guardExpression = ownedFeatureMembership-> + * selectByKind(TransitionFeatureMembership)-> + * select(kind = TransitionFeatureKind::trigger).transitionFeature-> + * selectByKind(Expression) + * triggerAction->forAll(specializesFromLibrary('Actions::TransitionAction::accepter') and + * guardExpression->forAll(specializesFromLibrary('Actions::TransitionAction::guard') and + * effectAction->forAll(specializesFromLibrary('Actions::TransitionAction::effect')) + * triggerAction = ownedFeatureMembership-> + * selectByKind(TransitionFeatureMembership)-> + * select(kind = TransitionFeatureKind::trigger).transitionFeatures-> + * selectByKind(AcceptActionUsage) + * succession.sourceFeature = source + * ownedMember->selectByKind(BindingConnector)->exists(b | + * b.relatedFeatures->includes(source) and + * b.relatedFeatures->includes(inputParameter(1))) + * triggerAction->notEmpty() implies + * let payloadParameter : Feature = inputParameter(2) in + * payloadParameter <> null and + * payloadParameter.subsetsChain(triggerAction->at(1), triggerPayloadParameter()) + * ownedMember->selectByKind(BindingConnector)->exists(b | + * b.relatedFeatures->includes(succession) and + * b.relatedFeatures->includes(resolveGlobal( + * 'TransitionPerformances::TransitionPerformance::transitionLink'))) + * if triggerAction->isEmpty() then + * inputParameters()->size() >= 1 + * else + * inputParameters()->size() >= 2 + * endif + * + * succession = ownedMember->selectByKind(Succession)->at(1) + * source <> null and not source.oclIsKindOf(StateUsage) implies + * triggerAction->isEmpty() + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.TransitionUsage#getEffectAction Effect Action}
  • + *
  • {@link org.omg.sysml.model.sysml.TransitionUsage#getGuardExpression Guard Expression}
  • + *
  • {@link org.omg.sysml.model.sysml.TransitionUsage#getSource Source}
  • + *
  • {@link org.omg.sysml.model.sysml.TransitionUsage#getSuccession Succession}
  • + *
  • {@link org.omg.sysml.model.sysml.TransitionUsage#getTarget Target}
  • + *
  • {@link org.omg.sysml.model.sysml.TransitionUsage#getTriggerAction Trigger Action}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionUsage() + * @model + * @generated + */ +public interface TransitionUsage extends ActionUsage { + /** + * Returns the value of the 'Effect Action' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ActionUsage}. + * + * + * + *

The ActionUsages that define the effects of this TransitionUsage, which are the ownedFeatures of the TransitionUsage related to it by TransitionFeatureMemberships with kind = effect, which must all be ActionUsages.

+ * + * @return the value of the 'Effect Action' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionUsage_EffectAction() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='activeTransition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getEffectAction(); + + /** + * Returns the value of the 'Guard Expression' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Expression}. + * + * + * + *

The Expressions that define the guards of this TransitionUsage, which are the ownedFeatures of the TransitionUsage related to it by TransitionFeatureMemberships with kind = guard, which must all be Expressions.

+ * + * @return the value of the 'Guard Expression' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionUsage_GuardExpression() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='guardedTransition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getGuardExpression(); + + /** + * Returns the value of the 'Source' reference. + * + * + * + *

The source ActionUsage of this TransitionUsage, which becomes the source of the succession for the TransitionUsage.

+ * + * @return the value of the 'Source' reference. + * @see #setSource(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionUsage_Source() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='outgoingTransition'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getSource(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TransitionUsage#getSource Source}' reference. + * + * + * @param value the new value of the 'Source' reference. + * @see #getSource() + * @generated + */ + void setSource(ActionUsage value); + + /** + * Returns the value of the 'Succession' reference. + * + * + * + *

The Succession that is the ownedFeature of this TransitionUsage, which, if the TransitionUsage is triggered, asserts the temporal ordering of the source and target.

+ * + * @return the value of the 'Succession' reference. + * @see #setSuccession(Succession) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionUsage_Succession() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='linkedTransition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Succession getSuccession(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TransitionUsage#getSuccession Succession}' reference. + * + * + * @param value the new value of the 'Succession' reference. + * @see #getSuccession() + * @generated + */ + void setSuccession(Succession value); + + /** + * Returns the value of the 'Target' reference. + * + * + * + *

The target ActionUsage of this TransitionUsage, which is the targetFeature of the succession for the TransitionUsage.

+ * + * @return the value of the 'Target' reference. + * @see #setTarget(ActionUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionUsage_Target() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='incomingTransition'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ActionUsage getTarget(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TransitionUsage#getTarget Target}' reference. + * + * + * @param value the new value of the 'Target' reference. + * @see #getTarget() + * @generated + */ + void setTarget(ActionUsage value); + + /** + * Returns the value of the 'Trigger Action' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.AcceptActionUsage}. + * + * + * + *

The AcceptActionUsages that define the triggers of this TransitionUsage, which are the ownedFeatures of the TransitionUsage related to it by TransitionFeatureMemberships with kind = trigger, which must all be AcceptActionUsages.

+ * + * @return the value of the 'Trigger Action' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getTransitionUsage_TriggerAction() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='triggeredTransition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getTriggerAction(); + + /** + * + * + * + *

Return the Feature to be used as the source of the succession of this TransitionUsage, which is the first member of the TransitionUsage that is a Feature, that is owned by the TransitionUsage via a Membership that is not a FeatureMembership, and whose featureTarget is an ActionUsage.

+ * let features : Sequence(Feature) = ownedMembership-> + * reject(oclIsKindOf(FeatureMembership)).memberElement-> + * selectByKind(Feature)-> + * select(featureTarget.oclIsKindOf(ActionUsage)) in + * if features->isEmpty() then null + * else features->first() + * endif + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature sourceFeature(); + + /** + * + * + * + *

Return the payloadParameter of the triggerAction of this TransitionUsage, if it has one.

+ * if triggerAction->isEmpty() then null + * else triggerAction->first().payloadParameter + * endif + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ReferenceUsage triggerPayloadParameter(); + +} // TransitionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TriggerInvocationExpression.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TriggerInvocationExpression.java new file mode 100644 index 000000000..04693eede --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TriggerInvocationExpression.java @@ -0,0 +1,92 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Trigger Invocation Expression'. + * + * + * + *

A TriggerInvocationExpression is an InvocationExpression that invokes one of the trigger Functions from the Kernel Semantic Library Triggers package, as indicated by its kind.

+ * kind = TriggerKind::after implies + * argument->notEmpty() and + * argument->at(1).result.specializesFromLibrary('Quantities::ScalarQuantityValue') and + * let mRef : Element = + * resolveGlobal('Quantities::TensorQuantityValue::mRef').ownedMemberElement in + * argument->at(1).result.feature-> + * select(ownedRedefinition.redefinedFeature-> + * closure(ownedRedefinition.redefinedFeature)-> + * includes(mRef))-> + * exists(specializesFromLibrary('ISQBase::DurationUnit')) + * kind = TriggerKind::at implies + * argument->notEmpty() and + * argument->at(1).result.specializesFromLibrary('Time::TimeInstantValue') + * kind = TriggerKind::when implies + * argument->notEmpty() and + * argument->at(1).oclIsKindOf(FeatureReferenceExpression) and + * let referent : Feature = + * argument->at(1).oclAsType(FeatureReferenceExpression).referent in + * referent.oclIsKindOf(Expression) and + * referent.oclAsType(Expression).result.specializesFromLibrary('ScalarValues::Boolean') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.TriggerInvocationExpression#getKind Kind}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getTriggerInvocationExpression() + * @model + * @generated + */ +public interface TriggerInvocationExpression extends InvocationExpression { + /** + * Returns the value of the 'Kind' attribute. + * The literals are from the enumeration {@link org.omg.sysml.model.sysml.TriggerKind}. + * + * + * + *

Indicates which of the Functions from the Triggers model in the Kernel Semantic Library is to be invoked by this TriggerInvocationExpression.

+ * + * @return the value of the 'Kind' attribute. + * @see org.omg.sysml.model.sysml.TriggerKind + * @see #setKind(TriggerKind) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTriggerInvocationExpression_Kind() + * @model required="true" ordered="false" + * @generated + */ + TriggerKind getKind(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TriggerInvocationExpression#getKind Kind}' attribute. + * + * + * @param value the new value of the 'Kind' attribute. + * @see org.omg.sysml.model.sysml.TriggerKind + * @see #getKind() + * @generated + */ + void setKind(TriggerKind value); + +} // TriggerInvocationExpression diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TriggerKind.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TriggerKind.java new file mode 100644 index 000000000..fb4ece6c1 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TriggerKind.java @@ -0,0 +1,270 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Trigger Kind', + * and utility methods for working with them. + * + * + *

TriggerKind enumerates the kinds of triggers that can be represented by a TriggerInvocationExpression.

+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getTriggerKind() + * @model + * @generated + */ +public enum TriggerKind implements Enumerator { + /** + * The 'When' literal object. + * + * + * + *

Indicates a change trigger, corresponding to the TriggerWhen Function from the Triggers model in the Kernel Semantic Library.

+ * + * @see #WHEN_VALUE + * @generated + * @ordered + */ + WHEN(0, "when", "when"), + + /** + * The 'At' literal object. + * + * + * + *

Indicates an absolute time trigger, corresponding to the TriggerAt Function from the Triggers model in the Kernel Semantic Library.

+ * + * @see #AT_VALUE + * @generated + * @ordered + */ + AT(1, "at", "at"), + + /** + * The 'After' literal object. + * + * + * + *

Indicates a relative time trigger, corresponding to the TriggerAfter Function from the Triggers model in the Kernel Semantic Library.

+ * + * @see #AFTER_VALUE + * @generated + * @ordered + */ + AFTER(2, "after", "after"); + + /** + * The 'When' literal value. + * + * + * + *

Indicates a change trigger, corresponding to the TriggerWhen Function from the Triggers model in the Kernel Semantic Library.

+ * + * @see #WHEN + * @model name="when" + * @generated + * @ordered + */ + public static final int WHEN_VALUE = 0; + + /** + * The 'At' literal value. + * + * + * + *

Indicates an absolute time trigger, corresponding to the TriggerAt Function from the Triggers model in the Kernel Semantic Library.

+ * + * @see #AT + * @model name="at" + * @generated + * @ordered + */ + public static final int AT_VALUE = 1; + + /** + * The 'After' literal value. + * + * + * + *

Indicates a relative time trigger, corresponding to the TriggerAfter Function from the Triggers model in the Kernel Semantic Library.

+ * + * @see #AFTER + * @model name="after" + * @generated + * @ordered + */ + public static final int AFTER_VALUE = 2; + + /** + * An array of all the 'Trigger Kind' enumerators. + * + * + * @generated + */ + private static final TriggerKind[] VALUES_ARRAY = + new TriggerKind[] { + WHEN, + AT, + AFTER, + }; + + /** + * A public read-only list of all the 'Trigger Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Trigger Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static TriggerKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + TriggerKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Trigger Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static TriggerKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + TriggerKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Trigger Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static TriggerKind get(int value) { + switch (value) { + case WHEN_VALUE: return WHEN; + case AT_VALUE: return AT; + case AFTER_VALUE: return AFTER; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private TriggerKind(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //TriggerKind diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Type.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Type.java new file mode 100644 index 000000000..23ee263ce --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Type.java @@ -0,0 +1,858 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Type'. + * + * + * + *

A Type is a Namespace that is the most general kind of Element supporting the semantics of classification. A Type may be a Classifier or a Feature, defining conditions on what is classified by the Type (see also the description of isSufficient).

+ * + * ownedSpecialization = ownedRelationship->selectByKind(Specialization)-> + * select(s | s.special = self) + * + * multiplicity = + * let ownedMultiplicities: Sequence(Multiplicity) = + * ownedMember->selectByKind(Multiplicity) in + * if ownedMultiplicities->isEmpty() then null + * else ownedMultiplicities->first() + * endif + * ownedFeatureMembership = ownedRelationship->selectByKind(FeatureMembership) + * ownedConjugator = + * let ownedConjugators: Sequence(Conjugator) = + * ownedRelationship->selectByKind(Conjugation) in + * if ownedConjugators->isEmpty() then null + * else ownedConjugators->at(1) endif + * output = feature->select(f | + * let direction: FeatureDirectionKind = directionOf(f) in + * direction = FeatureDirectionKind::out or + * direction = FeatureDirectionKind::inout) + * input = feature->select(f | + * let direction: FeatureDirectionKind = directionOf(f) in + * direction = FeatureDirectionKind::_'in' or + * direction = FeatureDirectionKind::inout) + * inheritedMembership = inheritedMemberships(Set{}, Set{}, false) + * specializesFromLibrary('Base::Anything') + * directedFeature = feature->select(f | directionOf(f) <> null) + * feature = featureMembership.ownedMemberFeature + * featureMembership = ownedFeatureMembership->union( + * inheritedMembership->selectByKind(FeatureMembership)) + * ownedFeature = ownedFeatureMembership.ownedMemberFeature + * differencingType = ownedDifferencing.differencingType + * intersectingType->excludes(self) + * differencingType->excludes(self) + * unioningType = ownedUnioning.unioningType + * unioningType->excludes(self) + * intersectingType = ownedIntersecting.intersectingType + * ownedRelationship->selectByKind(Conjugation)->size() <= 1 + * ownedMember->selectByKind(Multiplicity)->size() <= 1 + * endFeature = feature->select(isEnd) + * ownedDisjoining = + * ownedRelationship->selectByKind(Disjoining) + * ownedUnioning = + * ownedRelationship->selectByKind(Unioning) + * ownedRelationship->selectByKind(Intersecting) + * ownedDifferencing = + * ownedRelationship->selectByKind(Differencing) + * ownedEndFeature = ownedFeature->select(isEnd) + * inheritedFeature = inheritedMemberships-> + * selectByKind(FeatureMembership).memberFeature + * ownedUnioning->size() <> 1 + * ownedIntersecting->size() <> 1 + * ownedDifferencing->size() <> 1 + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Type#isIsAbstract Is Abstract}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#isIsConjugated Is Conjugated}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#isIsSufficient Is Sufficient}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getDifferencingType Differencing Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getDirectedFeature Directed Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getEndFeature End Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getFeature Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getFeatureMembership Feature Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getInheritedFeature Inherited Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getInheritedMembership Inherited Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getInput Input}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getIntersectingType Intersecting Type}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getMultiplicity Multiplicity}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getOutput Output}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getOwnedConjugator Owned Conjugator}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getOwnedDifferencing Owned Differencing}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getOwnedDisjoining Owned Disjoining}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getOwnedEndFeature Owned End Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getOwnedFeature Owned Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getOwnedFeatureMembership Owned Feature Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getOwnedIntersecting Owned Intersecting}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getOwnedSpecialization Owned Specialization}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getOwnedUnioning Owned Unioning}
  • + *
  • {@link org.omg.sysml.model.sysml.Type#getUnioningType Unioning Type}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getType() + * @model + * @generated + */ +public interface Type extends Namespace { + /** + * Returns the value of the 'Is Abstract' attribute. + * The default value is "false". + * + * + * + *

Indicates whether instances of this Type must also be instances of at least one of its specialized Types.

+ * + * + * @return the value of the 'Is Abstract' attribute. + * @see #setIsAbstract(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_IsAbstract() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsAbstract(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Type#isIsAbstract Is Abstract}' attribute. + * + * + * @param value the new value of the 'Is Abstract' attribute. + * @see #isIsAbstract() + * @generated + */ + void setIsAbstract(boolean value); + + /** + * Returns the value of the 'Is Conjugated' attribute. + * + * + * + *

Indicates whether this Type has an ownedConjugator.

+ * + * + * @return the value of the 'Is Conjugated' attribute. + * @see #setIsConjugated(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_IsConjugated() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isIsConjugated(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Type#isIsConjugated Is Conjugated}' attribute. + * + * + * @param value the new value of the 'Is Conjugated' attribute. + * @see #isIsConjugated() + * @generated + */ + void setIsConjugated(boolean value); + + /** + * Returns the value of the 'Is Sufficient' attribute. + * The default value is "false". + * + * + * + *

Whether all things that meet the classification conditions of this Type must be classified by the Type.

+ * + *

(A Type gives conditions that must be met by whatever it classifies, but when isSufficient is false, things may meet those conditions but still not be classified by the Type. For example, a Type Car that is not sufficient could require everything it classifies to have four wheels, but not all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would classify all four-wheeled things.)

+ * + * + * @return the value of the 'Is Sufficient' attribute. + * @see #setIsSufficient(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_IsSufficient() + * @model default="false" required="true" ordered="false" + * @generated + */ + boolean isIsSufficient(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Type#isIsSufficient Is Sufficient}' attribute. + * + * + * @param value the new value of the 'Is Sufficient' attribute. + * @see #isIsSufficient() + * @generated + */ + void setIsSufficient(boolean value); + + /** + * Returns the value of the 'Differencing Type' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Type}. + * + * + * + *

The interpretations of a Type with differencingTypes are asserted to be those of the first of those Types, but not including those of the remaining Types. For example, a Classifier might be the difference of a Classifier for people and another for people of a particular nationality, leaving people who are not of that nationality. Similarly, a feature of people might be the difference between a feature for their children and a Classifier for people of a particular sex, identifying their children not of that sex (because the interpretations of the children Feature that identify those of that sex are also interpretations of the Classifier for that sex).

+ * + * + * @return the value of the 'Differencing Type' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_DifferencingType() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='differencedType'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getDifferencingType(); + + /** + * Returns the value of the 'Directed Feature' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

The features of this Type that have a non-null direction.

+ * + * + * @return the value of the 'Directed Feature' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_DirectedFeature() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typeWithDirectedFeature'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getDirectedFeature(); + + /** + * Returns the value of the 'End Feature' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

All features of this Type with isEnd = true.

+ * + * @return the value of the 'End Feature' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_EndFeature() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typeWithEndFeature'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getEndFeature(); + + /** + * Returns the value of the 'Feature' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

The ownedMemberFeatures of the featureMemberships of this Type.

+ * + * + * @return the value of the 'Feature' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_Feature() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typeWithFeature'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getFeature(); + + /** + * Returns the value of the 'Feature Membership' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.FeatureMembership}. + * + * + * + *

The FeatureMemberships for features of this Type, which include all ownedFeatureMemberships and those inheritedMemberships that are FeatureMemberships (but does not include any importedMemberships).

+ * + * + * @return the value of the 'Feature Membership' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_FeatureMembership() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='type'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getFeatureMembership(); + + /** + * Returns the value of the 'Inherited Feature' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

All the memberFeatures of the inheritedMemberships of this Type that are FeatureMemberships.

+ * + * + * @return the value of the 'Inherited Feature' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_InheritedFeature() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='inheritingType'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getInheritedFeature(); + + /** + * Returns the value of the 'Inherited Membership' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Membership}. + * + * + * + *

All Memberships inherited by this Type via Specialization or Conjugation. These are included in the derived union for the memberships of the Type.

+ * + * + * @return the value of the 'Inherited Membership' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_InheritedMembership() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='inheritingType'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getInheritedMembership(); + + /** + * Returns the value of the 'Input' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

All features related to this Type by FeatureMemberships that have direction in or inout.

+ * + * + * @return the value of the 'Input' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_Input() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typeWithInput'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getInput(); + + /** + * Returns the value of the 'Intersecting Type' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Type}. + * + * + * + *

The interpretations of a Type with intersectingTypes are asserted to be those in common among the intersectingTypes, which are the Types derived from the intersectingType of the ownedIntersectings of this Type. For example, a Classifier might be an intersection of Classifiers for people of a particular sex and of a particular nationality. Similarly, a feature for people's children of a particular sex might be the intersection of a Feature for their children and a Classifier for people of that sex (because the interpretations of the children Feature that identify those of that sex are also interpretations of the Classifier for that sex).

+ * + * + * @return the value of the 'Intersecting Type' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_IntersectingType() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='intersectedType'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getIntersectingType(); + + /** + * Returns the value of the 'Multiplicity' reference. + * + * + * + *

An ownedMember of this Type that is a Multiplicity, which constraints the cardinality of the Type. If there is no such ownedMember, then the cardinality of this Type is constrained by all the Multiplicity constraints applicable to any direct supertypes.

+ * + * @return the value of the 'Multiplicity' reference. + * @see #setMultiplicity(Multiplicity) + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_Multiplicity() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typeWithMultiplicity'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Multiplicity getMultiplicity(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Type#getMultiplicity Multiplicity}' reference. + * + * + * @param value the new value of the 'Multiplicity' reference. + * @see #getMultiplicity() + * @generated + */ + void setMultiplicity(Multiplicity value); + + /** + * Returns the value of the 'Output' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * + * + * + *

All features related to this Type by FeatureMemberships that have direction out or inout.

+ * + * + * @return the value of the 'Output' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_Output() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typeWithOutput'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOutput(); + + /** + * Returns the value of the 'Owned Conjugator' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Conjugation#getOwningType Owning Type}'. + * + * + * + *

A Conjugation owned by this Type for which the Type is the originalType.

+ * + * + * @return the value of the 'Owned Conjugator' reference. + * @see #setOwnedConjugator(Conjugation) + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_OwnedConjugator() + * @see org.omg.sysml.model.sysml.Conjugation#getOwningType + * @model opposite="owningType" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Conjugation getOwnedConjugator(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Type#getOwnedConjugator Owned Conjugator}' reference. + * + * + * @param value the new value of the 'Owned Conjugator' reference. + * @see #getOwnedConjugator() + * @generated + */ + void setOwnedConjugator(Conjugation value); + + /** + * Returns the value of the 'Owned Differencing' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Differencing}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Differencing#getTypeDifferenced Type Differenced}'. + * + * + * + *

The ownedRelationships of this Type that are Differencings, having this Type as their typeDifferenced.

+ * + * + * @return the value of the 'Owned Differencing' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_OwnedDifferencing() + * @see org.omg.sysml.model.sysml.Differencing#getTypeDifferenced + * @model opposite="typeDifferenced" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedDifferencing(); + + /** + * Returns the value of the 'Owned Disjoining' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Disjoining}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Disjoining#getOwningType Owning Type}'. + * + * + * + *

The ownedRelationships of this Type that are Disjoinings, for which the Type is the typeDisjoined Type.

+ * + * + * @return the value of the 'Owned Disjoining' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_OwnedDisjoining() + * @see org.omg.sysml.model.sysml.Disjoining#getOwningType + * @model opposite="owningType" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedDisjoining(); + + /** + * Returns the value of the 'Owned End Feature' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Feature#getEndOwningType End Owning Type}'. + * + * + * + *

All endFeatures of this Type that are ownedFeatures.

+ * + * + * @return the value of the 'Owned End Feature' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_OwnedEndFeature() + * @see org.omg.sysml.model.sysml.Feature#getEndOwningType + * @model opposite="endOwningType" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedEndFeature(); + + /** + * Returns the value of the 'Owned Feature' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Feature}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Feature#getOwningType Owning Type}'. + * + * + * + *

The ownedMemberFeatures of the ownedFeatureMemberships of this Type.

+ * + * + * @return the value of the 'Owned Feature' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_OwnedFeature() + * @see org.omg.sysml.model.sysml.Feature#getOwningType + * @model opposite="owningType" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedFeature(); + + /** + * Returns the value of the 'Owned Feature Membership' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.FeatureMembership}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.FeatureMembership#getOwningType Owning Type}'. + * + * + * + *

The ownedMemberships of this Type that are FeatureMemberships, for which the Type is the owningType. Each such FeatureMembership identifies an ownedFeature of the Type.

+ * + * + * @return the value of the 'Owned Feature Membership' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_OwnedFeatureMembership() + * @see org.omg.sysml.model.sysml.FeatureMembership#getOwningType + * @model opposite="owningType" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedFeatureMembership(); + + /** + * Returns the value of the 'Owned Intersecting' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Intersecting}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Intersecting#getTypeIntersected Type Intersected}'. + * + * + * + *

The ownedRelationships of this Type that are Intersectings, have the Type as their typeIntersected.

+ * + * + * @return the value of the 'Owned Intersecting' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_OwnedIntersecting() + * @see org.omg.sysml.model.sysml.Intersecting#getTypeIntersected + * @model opposite="typeIntersected" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedIntersecting(); + + /** + * Returns the value of the 'Owned Specialization' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Specialization}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Specialization#getOwningType Owning Type}'. + * + * + * + *

The ownedRelationships of this Type that are Specializations, for which the Type is the specific Type.

+ * + * + * @return the value of the 'Owned Specialization' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_OwnedSpecialization() + * @see org.omg.sysml.model.sysml.Specialization#getOwningType + * @model opposite="owningType" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedSpecialization(); + + /** + * Returns the value of the 'Owned Unioning' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Unioning}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Unioning#getTypeUnioned Type Unioned}'. + * + * + * + *

The ownedRelationships of this Type that are Unionings, having the Type as their typeUnioned.

+ * + * + * @return the value of the 'Owned Unioning' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_OwnedUnioning() + * @see org.omg.sysml.model.sysml.Unioning#getTypeUnioned + * @model opposite="typeUnioned" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getOwnedUnioning(); + + /** + * Returns the value of the 'Unioning Type' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Type}. + * + * + * + *

The interpretations of a Type with unioningTypes are asserted to be the same as those of all the unioningTypes together, which are the Types derived from the unioningType of the ownedUnionings of this Type. For example, a Classifier for people might be the union of Classifiers for all the sexes. Similarly, a feature for people's children might be the union of features dividing them in the same ways as people in general.

+ * + * + * @return the value of the 'Unioning Type' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getType_UnioningType() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='unionedType'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getUnioningType(); + + /** + * + * + * + *

If the memberElement of the given membership is a Feature, then return all Features directly or indirectly redefined by the memberElement.

+ * if not membership.memberElement.oclIsType(Feature) then Set{} + * else membership.memberElement.oclAsType(Feature).allRedefinedFeatures() + * endif + * + * @model ordered="false" membershipRequired="true" membershipOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList allRedefinedFeaturesOf(Membership membership); + + /** + * + * + * + *

Return this Type and all Types that are directly or transitively supertypes of this Type (as determined by the supertypes operation with excludeImplied = false).

+ * + * OrderedSet{self}->closure(supertypes(false)) + * + * @model ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList allSupertypes(); + + /** + * + * + * + *

If the given feature is a feature of this Type, then return its direction relative to this Type, taking conjugation into account.

+ * + * directionOfExcluding(f, Set{}) + * + * @model ordered="false" featureRequired="true" featureOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + FeatureDirectionKind directionOf(Feature feature); + + /** + * + * + * + *

Return the direction of the given feature relative to this Type, excluding a given set of Types from the search of supertypes of this Type.

+ * let excludedSelf : Set(Type) = excluded->including(self) in + * if feature.owningType = self then feature.direction + * else + * let directions : Sequence(FeatureDirectionKind) = + * supertypes(false)->excluding(excludedSelf). + * directionOfExcluding(feature, excludedSelf)-> + * select(d | d <> null) in + * if directions->isEmpty() then null + * else + * let direction : FeatureDirectionKind = directions->first() in + * if not isConjugated then direction + * else if direction = FeatureDirectionKind::_'in' then FeatureDirectionKind::out + * else if direction = FeatureDirectionKind::out then FeatureDirectionKind::_'in' + * else direction + * endif endif endif endif + * endif + * + * @model ordered="false" featureRequired="true" featureOrdered="false" excludedMany="true" excludedOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + FeatureDirectionKind directionOfExcluding(Feature feature, EList excluded); + + /** + * + * + * + *

Return all the non-private Memberships of all the supertypes of this Type, excluding any supertypes that are this Type or are in the given set of excludedTypes. If excludeImplied = true, then also transitively exclude any supertypes from implied Specializations.

+ * let excludingSelf : Set(Type) = excludedType->including(self) in + * supertypes(excludeImplied)->reject(t | excludingSelf->includes(t)). + * nonPrivateMemberships(excludedNamespaces, excludingSelf, excludeImplied) + * + * + * @model excludedNamespacesMany="true" excludedNamespacesOrdered="false" excludedTypesMany="true" excludedTypesOrdered="false" excludeImpliedRequired="true" excludeImpliedOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList inheritableMemberships(EList excludedNamespaces, EList excludedTypes, boolean excludeImplied); + + /** + * + * + * + *

Return the Memberships inheritable from supertypes of this Type with redefined Features removed. When computing inheritable Memberships, exclude Imports of excludedNamespaces, Specializations of excludedTypes, and, if excludeImplied = true, all implied Specializations.

+ * + * removeRedefinedFeatures( + * inheritableMemberships(excludedNamespaces, excludedTypes, excludeImplied)) + * + * @model excludedNamespacesMany="true" excludedNamespacesOrdered="false" excludedTypesMany="true" excludedTypesOrdered="false" excludeImpliedRequired="true" excludeImpliedOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList inheritedMemberships(EList excludedNamespaces, EList excludedTypes, boolean excludeImplied); + + /** + * + * + * + *

By default, this Type is compatible with an otherType if it directly or indirectly specializes the otherType.

+ * specializes(otherType) + * + * @model required="true" ordered="false" otherTypeRequired="true" otherTypeOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isCompatibleWith(Type otherType); + + /** + * + * + * + *

Return the owned or inherited Multiplicities for this Type<./code>.

+ * if multiplicity <> null then OrderedSet{multiplicity} + * else + * ownedSpecialization.general->closure(t | + * if t.multiplicity <> null then OrderedSet{} + * else ownedSpecialization.general + * )->select(multiplicity <> null).multiplicity->asOrderedSet() + * endif + * + * @model annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList multiplicities(); + + /** + * + * + * + *

Return the public, protected and inherited Memberships of this Type. When computing imported Memberships, exclude the given set of excludedNamespaces. When computing inherited Memberships, exclude Types in the given set of excludedTypes. If excludeImplied = true, then also exclude any supertypes from implied Specializations.

+ * let publicMemberships : OrderedSet(Membership) = + * membershipsOfVisibility(VisibilityKind::public, excludedNamespaces) in + * let protectedMemberships : OrderedSet(Membership) = + * membershipsOfVisibility(VisibilityKind::protected, excludedNamespaces) in + * let inheritedMemberships : OrderedSet(Membership) = + * inheritedMemberships(excludedNamespaces, excludedTypes, excludeImplied) in + * publicMemberships-> + * union(protectedMemberships)-> + * union(inheritedMemberships) + * + * @model excludedNamespacesMany="true" excludedNamespacesOrdered="false" excludedTypesMany="true" excludedTypesOrdered="false" excludeImpliedRequired="true" excludeImpliedOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList nonPrivateMemberships(EList excludedNamespaces, EList excludedTypes, boolean excludeImplied); + + /** + * + * + * + *

Return a subset of memberships, removing those Memberships whose memberElements are Features and for which either of the following two conditions holds:

+ * + *
    + *
  1. The memberElement of the Membership is included in redefined Features of another Membership in memberships.
  2. + *
  3. One of the redefined Features of the Membership is a directly redefinedFeature of an ownedFeature of this Type.
  4. + *
+ * + *

For this purpose, the redefined Features of a Membership whose memberElement is a Feature includes the memberElement and all Features directly or indirectly redefined by the memberElement.

+ * let reducedMemberships : Sequence(Membership) = + * memberships->reject(mem1 | + * memberships->excluding(mem1)-> + * exists(mem2 | allRedefinedFeaturesOf(mem2)-> + * includes(mem1.memberElement))) in + * let redefinedFeatures : Set(Feature) = + * ownedFeature.redefinition.redefinedFeature->asSet() in + * reducedMemberships->reject(mem | allRedefinedFeaturesOf(mem)-> + * exists(feature | redefinedFeatures->includes(feature))) + * + * @model membershipsMany="true" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList removeRedefinedFeatures(EList memberships); + + /** + * + * + * + *

Check whether this Type is a direct or indirect specialization of the given supertype.

+ * if isConjugated then + * ownedConjugator.originalType.specializes(supertype) + * else + * allSupertypes()->includes(supertype) + * endif + * + * @model required="true" ordered="false" supertypeRequired="true" supertypeOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean specializes(Type supertype); + + /** + * + * + * + *

Check whether this Type is a direct or indirect specialization of the named library Type. libraryTypeName must conform to the syntax of a KerML qualified name and must resolve to a Type in global scope.

+ * + * let mem : Membership = resolveGlobal(libraryTypeName) in + * mem <> null and mem.memberElement.oclIsKindOf(Type) and + * specializes(mem.memberElement.oclAsType(Type)) + * + * @model required="true" ordered="false" libraryTypeNameRequired="true" libraryTypeNameOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean specializesFromLibrary(String libraryTypeName); + + /** + * + * + * + *

If this Type is conjugated, then return just the originalType of the Conjugation. Otherwise, return the general Types from all ownedSpecializations of this type, if excludeImplied = false, or all non-implied ownedSpecializations, if excludeImplied = true.

+ * if isConjugated then Sequence{conjugator.originalType} + * else if not excludeImplied then ownedSpecialization.general + * else ownedSpecialization->reject(isImplied).general + * endif + * endif + * + * @model excludeImpliedRequired="true" excludeImpliedOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList supertypes(boolean excludeImplied); + +} // Type diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TypeFeaturing.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TypeFeaturing.java new file mode 100644 index 000000000..c21aba592 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/TypeFeaturing.java @@ -0,0 +1,129 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Type Featuring'. + * + * + * + *

A TypeFeaturing is a Featuring Relationship in which the featureOfType is the source and the featuringType is the target.

+ * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.TypeFeaturing#getFeatureOfType Feature Of Type}
  • + *
  • {@link org.omg.sysml.model.sysml.TypeFeaturing#getFeaturingType Featuring Type}
  • + *
  • {@link org.omg.sysml.model.sysml.TypeFeaturing#getOwningFeatureOfType Owning Feature Of Type}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getTypeFeaturing() + * @model + * @generated + */ +public interface TypeFeaturing extends Relationship { + /** + * Returns the value of the 'Feature Of Type' reference. + * + * + * + *

The Feature that is featured by the featuringType. It is the source of the TypeFeaturing.

+ * + * @return the value of the 'Feature Of Type' reference. + * @see #setFeatureOfType(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTypeFeaturing_FeatureOfType() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typeFeaturing'" + * annotation="redefines" + * @generated + */ + Feature getFeatureOfType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TypeFeaturing#getFeatureOfType Feature Of Type}' reference. + * + * + * @param value the new value of the 'Feature Of Type' reference. + * @see #getFeatureOfType() + * @generated + */ + void setFeatureOfType(Feature value); + + /** + * Returns the value of the 'Featuring Type' reference. + * + * + * + *

The Type that features the featureOfType. It is the target of the TypeFeaturing.

+ * + * @return the value of the 'Featuring Type' reference. + * @see #setFeaturingType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTypeFeaturing_FeaturingType() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='typeFeaturingOfType'" + * annotation="redefines" + * @generated + */ + Type getFeaturingType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TypeFeaturing#getFeaturingType Featuring Type}' reference. + * + * + * @param value the new value of the 'Featuring Type' reference. + * @see #getFeaturingType() + * @generated + */ + void setFeaturingType(Type value); + + /** + * Returns the value of the 'Owning Feature Of Type' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Feature#getOwnedTypeFeaturing Owned Type Featuring}'. + * + * + * + *

A featureOfType that is also the owningRelatedElement of this TypeFeaturing.

+ * + * @return the value of the 'Owning Feature Of Type' reference. + * @see #setOwningFeatureOfType(Feature) + * @see org.omg.sysml.model.sysml.SysMLPackage#getTypeFeaturing_OwningFeatureOfType() + * @see org.omg.sysml.model.sysml.Feature#getOwnedTypeFeaturing + * @model opposite="ownedTypeFeaturing" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature getOwningFeatureOfType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.TypeFeaturing#getOwningFeatureOfType Owning Feature Of Type}' reference. + * + * + * @param value the new value of the 'Owning Feature Of Type' reference. + * @see #getOwningFeatureOfType() + * @generated + */ + void setOwningFeatureOfType(Feature value); + +} // TypeFeaturing diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Unioning.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Unioning.java new file mode 100644 index 000000000..ab0166e85 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Unioning.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Unioning'. + * + * + * + *

Unioning is a Relationship that makes its unioningType one of the unioningTypes of its typeUnioned.

+ * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Unioning#getTypeUnioned Type Unioned}
  • + *
  • {@link org.omg.sysml.model.sysml.Unioning#getUnioningType Unioning Type}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getUnioning() + * @model + * @generated + */ +public interface Unioning extends Relationship { + /** + * Returns the value of the 'Type Unioned' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Type#getOwnedUnioning Owned Unioning}'. + * + * + * + *

Type with interpretations partly determined by unioningType, as described in Type::unioningType.

+ * + * + * @return the value of the 'Type Unioned' reference. + * @see #setTypeUnioned(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getUnioning_TypeUnioned() + * @see org.omg.sysml.model.sysml.Type#getOwnedUnioning + * @model opposite="ownedUnioning" required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Type getTypeUnioned(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Unioning#getTypeUnioned Type Unioned}' reference. + * + * + * @param value the new value of the 'Type Unioned' reference. + * @see #getTypeUnioned() + * @generated + */ + void setTypeUnioned(Type value); + + /** + * Returns the value of the 'Unioning Type' reference. + * + * + * + *

Type that partly determines interpretations of typeUnioned, as described in Type::unioningType.

+ * + * + * @return the value of the 'Unioning Type' reference. + * @see #setUnioningType(Type) + * @see org.omg.sysml.model.sysml.SysMLPackage#getUnioning_UnioningType() + * @model required="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='unionedUnioning'" + * annotation="redefines" + * @generated + */ + Type getUnioningType(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Unioning#getUnioningType Unioning Type}' reference. + * + * + * @param value the new value of the 'Unioning Type' reference. + * @see #getUnioningType() + * @generated + */ + void setUnioningType(Type value); + +} // Unioning diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Usage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Usage.java new file mode 100644 index 000000000..1b5bed1c7 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/Usage.java @@ -0,0 +1,889 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Usage'. + * + * + * + *

A Usage is a usage of a Definition.

+ * + *

A Usage may have nestedUsages that model features that apply in the context of the owningUsage. A Usage may also have Definitions nested in it, but this has no semantic significance, other than the nested scoping resulting from the Usage being considered as a Namespace for any nested Definitions.

+ * + *

However, if a Usage has isVariation = true, then it represents a variation point Usage. In this case, all of its members must be variant Usages, related to the Usage by VariantMembership Relationships. Rather than being features of the Usage, variant Usages model different concrete alternatives that can be chosen to fill in for the variation point Usage.

+ * variant = variantMembership.ownedVariantUsage + * variantMembership = ownedMembership->selectByKind(VariantMembership) + * isVariation implies ownedFeatureMembership->isEmpty() + * isReference = not isComposite + * owningVariationUsage <> null implies + * specializes(owningVariationUsage) + * isVariation implies + * not ownedSpecialization.specific->exists( + * oclIsKindOf(Definition) and + * oclAsType(Definition).isVariation or + * oclIsKindOf(Usage) and + * oclAsType(Usage).isVariation) + * owningVariationDefinition <> null implies + * specializes(owningVariationDefinition) + * directedUsage = directedFeature->selectByKind(Usage) + * nestedAction = nestedUsage->selectByKind(ActionUsage) + * nestedAllocation = nestedUsage->selectByKind(AllocationUsage) + * nestedAnalysisCase = nestedUsage->selectByKind(AnalysisCaseUsage) + * nestedAttribute = nestedUsage->selectByKind(AttributeUsage) + * nestedCalculation = nestedUsage->selectByKind(CalculationUsage) + * nestedCase = nestedUsage->selectByKind(CaseUsage) + * nestedConcern = nestedUsage->selectByKind(ConcernUsage) + * nestedConnection = nestedUsage->selectByKind(ConnectorAsUsage) + * nestedConstraint = nestedUsage->selectByKind(ConstraintUsage) + * ownedNested = nestedUsage->selectByKind(EnumerationUsage) + * nestedFlow = nestedUsage->selectByKind(FlowConnectionUsage) + * nestedInterface = nestedUsage->selectByKind(ReferenceUsage) + * nestedItem = nestedUsage->selectByKind(ItemUsage) + * nestedMetadata = nestedUsage->selectByKind(MetadataUsage) + * nestedOccurrence = nestedUsage->selectByKind(OccurrenceUsage) + * nestedPart = nestedUsage->selectByKind(PartUsage) + * nestedPort = nestedUsage->selectByKind(PortUsage) + * nestedReference = nestedUsage->selectByKind(ReferenceUsage) + * nestedRendering = nestedUsage->selectByKind(RenderingUsage) + * nestedRequirement = nestedUsage->selectByKind(RequirementUsage) + * nestedState = nestedUsage->selectByKind(StateUsage) + * nestedTransition = nestedUsage->selectByKind(TransitionUsage) + * nestedUsage = ownedFeature->selectByKind(Usage) + * nestedUseCase = nestedUsage->selectByKind(UseCaseUsage) + * nestedVerificationCase = nestedUsage->selectByKind(VerificationCaseUsage) + * nestedView = nestedUsage->selectByKind(ViewUsage) + * nestedViewpoint = nestedUsage->selectByKind(ViewpointUsage) + * usage = feature->selectByKind(Usage) + * direction <> null or isEnd or featuringType->isEmpty() implies + * isReference + * isVariation implies isAbstract + * mayTimeVary = + * owningType <> null and + * owningType.specializesFromLibrary('Occurrences::Occurrence') and + * not ( + * isPortion or + * specializesFromLibrary('Links::SelfLink') or + * specializesFromLibrary('Occurrences::HappensLink') or + * isComposite and specializesFromLibrary('Actions::Action') + * ) + * owningVariationUsage <> null implies + * featuringType->asSet() = owningVariationUsage.featuringType->asSet() + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.Usage#isIsReference Is Reference}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#isIsVariation Is Variation}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#isMayTimeVary May Time Vary}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getDefinition Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getDirectedUsage Directed Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedAction Nested Action}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedAllocation Nested Allocation}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedAnalysisCase Nested Analysis Case}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedAttribute Nested Attribute}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedCalculation Nested Calculation}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedCase Nested Case}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedConcern Nested Concern}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedConnection Nested Connection}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedConstraint Nested Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedEnumeration Nested Enumeration}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedFlow Nested Flow}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedInterface Nested Interface}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedItem Nested Item}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedMetadata Nested Metadata}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedOccurrence Nested Occurrence}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedPart Nested Part}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedPort Nested Port}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedReference Nested Reference}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedRendering Nested Rendering}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedRequirement Nested Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedState Nested State}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedTransition Nested Transition}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedUsage Nested Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedUseCase Nested Use Case}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedVerificationCase Nested Verification Case}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedView Nested View}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getNestedViewpoint Nested Viewpoint}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getOwningDefinition Owning Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getOwningUsage Owning Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getUsage Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getVariant Variant}
  • + *
  • {@link org.omg.sysml.model.sysml.Usage#getVariantMembership Variant Membership}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage() + * @model + * @generated + */ +public interface Usage extends Feature { + /** + * Returns the value of the 'Is Reference' attribute. + * + * + * + *

Whether this Usage is a referential Usage, that is, it has isComposite = false.

+ * + * @return the value of the 'Is Reference' attribute. + * @see #setIsReference(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_IsReference() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isIsReference(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Usage#isIsReference Is Reference}' attribute. + * + * + * @param value the new value of the 'Is Reference' attribute. + * @see #isIsReference() + * @generated + */ + void setIsReference(boolean value); + + /** + * Returns the value of the 'Is Variation' attribute. + * + * + * + *

Whether this Usage is for a variation point or not. If true, then all the memberships of the Usage must be VariantMemberships.

+ * + * @return the value of the 'Is Variation' attribute. + * @see #setIsVariation(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_IsVariation() + * @model required="true" ordered="false" + * @generated + */ + boolean isIsVariation(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Usage#isIsVariation Is Variation}' attribute. + * + * + * @param value the new value of the 'Is Variation' attribute. + * @see #isIsVariation() + * @generated + */ + void setIsVariation(boolean value); + + /** + * Returns the value of the 'May Time Vary' attribute. + * + * + * + *

Whether this Usage may be time varying (that is, whether it is featured by the snapshots of its owningType, rather than being featured by the owningType itself). However, if isConstant is also true, then the value of the Usage is nevertheless constant over the entire duration of an instance of its owningType (that is, it has the same value on all snapshots).

+ * + *

The property mayTimeVary redefines the KerML property Feature::isVariable, making it derived. The property isConstant is inherited from Feature.

+ * + * @return the value of the 'May Time Vary' attribute. + * @see #setMayTimeVary(boolean) + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_MayTimeVary() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean isMayTimeVary(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Usage#isMayTimeVary May Time Vary}' attribute. + * + * + * @param value the new value of the 'May Time Vary' attribute. + * @see #isMayTimeVary() + * @generated + */ + void setMayTimeVary(boolean value); + + /** + * Returns the value of the 'Definition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Classifier}. + * + * + * + *

The Classifiers that are the types of this Usage. Nominally, these are Definitions, but other kinds of Kernel Classifiers are also allowed, to permit use of Classifiers from the Kernel Model Libraries.

+ * + * @return the value of the 'Definition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_Definition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedUsage'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getDefinition(); + + /** + * Returns the value of the 'Directed Usage' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Usage}. + * + * + * + *

The usages of this Usage that are directedFeatures.

+ * + * + * @return the value of the 'Directed Usage' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_DirectedUsage() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='usageWithDirectedUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getDirectedUsage(); + + /** + * Returns the value of the 'Nested Action' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ActionUsage}. + * + * + * + *

The ActionUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Action' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedAction() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='actionOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedAction(); + + /** + * Returns the value of the 'Nested Allocation' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.AllocationUsage}. + * + * + * + *

The AllocationUsages that are nestedUsages of this Usage.

+ * + * @return the value of the 'Nested Allocation' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedAllocation() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='allocationOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedAllocation(); + + /** + * Returns the value of the 'Nested Analysis Case' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.AnalysisCaseUsage}. + * + * + * + *

The AnalysisCaseUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Analysis Case' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedAnalysisCase() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='analysisCaseOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedAnalysisCase(); + + /** + * Returns the value of the 'Nested Attribute' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.AttributeUsage}. + * + * + * + *

The code>AttributeUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Attribute' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedAttribute() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='attributeOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedAttribute(); + + /** + * Returns the value of the 'Nested Calculation' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.CalculationUsage}. + * + * + * + *

The CalculationUsage that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Calculation' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedCalculation() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='calculationOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedCalculation(); + + /** + * Returns the value of the 'Nested Case' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.CaseUsage}. + * + * + * + *

The CaseUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Case' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedCase() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='caseOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedCase(); + + /** + * Returns the value of the 'Nested Concern' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConcernUsage}. + * + * + * + *

The ConcernUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Concern' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedConcern() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='concernOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedConcern(); + + /** + * Returns the value of the 'Nested Connection' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConnectorAsUsage}. + * + * + * + *

The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are ConnectorAsUsages even though they are not ConnectionUsages.

+ * + * @return the value of the 'Nested Connection' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedConnection() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='connectionOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedConnection(); + + /** + * Returns the value of the 'Nested Constraint' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ConstraintUsage}. + * + * + * + *

The ConstraintUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Constraint' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedConstraint() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='constraintOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedConstraint(); + + /** + * Returns the value of the 'Nested Enumeration' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.EnumerationUsage}. + * + * + * + *

The code>EnumerationUsages that are nestedUsages of this Usage.

+ * + * @return the value of the 'Nested Enumeration' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedEnumeration() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='enumerationOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedEnumeration(); + + /** + * Returns the value of the 'Nested Flow' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.FlowUsage}. + * + * + * + *

The code>FlowUsages that are nestedUsages of this Usage.

+ * + * @return the value of the 'Nested Flow' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedFlow() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='flowOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedFlow(); + + /** + * Returns the value of the 'Nested Interface' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.InterfaceUsage}. + * + * + * + *

The InterfaceUsages that are nestedUsages of this Usage.

+ * + * @return the value of the 'Nested Interface' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedInterface() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='interfaceOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedInterface(); + + /** + * Returns the value of the 'Nested Item' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ItemUsage}. + * + * + * + *

The ItemUsages that are nestedUsages of this Usage.

+ * + * @return the value of the 'Nested Item' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedItem() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='itemOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedItem(); + + /** + * Returns the value of the 'Nested Metadata' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.MetadataUsage}. + * + * + * + *

The MetadataUsages that are nestedUsages of this of this Usage.

+ * + * @return the value of the 'Nested Metadata' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedMetadata() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='metadataOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedMetadata(); + + /** + * Returns the value of the 'Nested Occurrence' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.OccurrenceUsage}. + * + * + * + *

The OccurrenceUsages that are nestedUsages of this Usage.

+ * + * @return the value of the 'Nested Occurrence' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedOccurrence() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='occurrenceOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedOccurrence(); + + /** + * Returns the value of the 'Nested Part' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartUsage}. + * + * + * + *

The PartUsages that are nestedUsages of this Usage.

+ * + * @return the value of the 'Nested Part' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedPart() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='partOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedPart(); + + /** + * Returns the value of the 'Nested Port' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PortUsage}. + * + * + * + *

The PortUsages that are nestedUsages of this Usage.

+ * + * @return the value of the 'Nested Port' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedPort() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='portOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedPort(); + + /** + * Returns the value of the 'Nested Reference' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ReferenceUsage}. + * + * + * + *

The ReferenceUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Reference' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedReference() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='referenceOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedReference(); + + /** + * Returns the value of the 'Nested Rendering' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.RenderingUsage}. + * + * + * + *

The RenderingUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Rendering' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedRendering() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='renderingOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedRendering(); + + /** + * Returns the value of the 'Nested Requirement' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.RequirementUsage}. + * + * + * + *

The RequirementUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Requirement' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedRequirement() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='requirementOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedRequirement(); + + /** + * Returns the value of the 'Nested State' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.StateUsage}. + * + * + * + *

The StateUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested State' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedState() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='stateOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedState(); + + /** + * Returns the value of the 'Nested Transition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.TransitionUsage}. + * + * + * + *

The TransitionUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Transition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedTransition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='transitionOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedTransition(); + + /** + * Returns the value of the 'Nested Usage' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Usage}. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Usage#getOwningUsage Owning Usage}'. + * + * + * + *

The Usages that are ownedFeatures of this Usage.

+ * + * @return the value of the 'Nested Usage' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedUsage() + * @see org.omg.sysml.model.sysml.Usage#getOwningUsage + * @model opposite="owningUsage" transient="true" volatile="true" derived="true" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedUsage(); + + /** + * Returns the value of the 'Nested Use Case' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.UseCaseUsage}. + * + * + * + *

The UseCaseUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Use Case' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedUseCase() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='useCaseOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedUseCase(); + + /** + * Returns the value of the 'Nested Verification Case' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.VerificationCaseUsage}. + * + * + * + *

The VerificationCaseUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Verification Case' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedVerificationCase() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='verificationCaseOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedVerificationCase(); + + /** + * Returns the value of the 'Nested View' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ViewUsage}. + * + * + * + *

The ViewUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested View' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedView() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='viewOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedView(); + + /** + * Returns the value of the 'Nested Viewpoint' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ViewpointUsage}. + * + * + * + *

The ViewpointUsages that are nestedUsages of this Usage.

+ * + * + * @return the value of the 'Nested Viewpoint' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_NestedViewpoint() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='viewpointOwningUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getNestedViewpoint(); + + /** + * Returns the value of the 'Owning Definition' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Definition#getOwnedUsage Owned Usage}'. + * + * + * + *

The Definition that owns this Usage (if any).

+ * + * @return the value of the 'Owning Definition' reference. + * @see #setOwningDefinition(Definition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_OwningDefinition() + * @see org.omg.sysml.model.sysml.Definition#getOwnedUsage + * @model opposite="ownedUsage" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Definition getOwningDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Usage#getOwningDefinition Owning Definition}' reference. + * + * + * @param value the new value of the 'Owning Definition' reference. + * @see #getOwningDefinition() + * @generated + */ + void setOwningDefinition(Definition value); + + /** + * Returns the value of the 'Owning Usage' reference. + * It is bidirectional and its opposite is '{@link org.omg.sysml.model.sysml.Usage#getNestedUsage Nested Usage}'. + * + * + * + *

The Usage in which this Usage is nested (if any).

+ * + * @return the value of the 'Owning Usage' reference. + * @see #setOwningUsage(Usage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_OwningUsage() + * @see org.omg.sysml.model.sysml.Usage#getNestedUsage + * @model opposite="nestedUsage" transient="true" volatile="true" derived="true" ordered="false" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Usage getOwningUsage(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.Usage#getOwningUsage Owning Usage}' reference. + * + * + * @param value the new value of the 'Owning Usage' reference. + * @see #getOwningUsage() + * @generated + */ + void setOwningUsage(Usage value); + + /** + * Returns the value of the 'Usage' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Usage}. + * + * + * + *

The Usages that are features of this Usage (not necessarily owned).

+ * + * @return the value of the 'Usage' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_Usage() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getUsage(); + + /** + * Returns the value of the 'Variant' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Usage}. + * + * + * + *

The Usages which represent the variants of this Usage as a variation point Usage, if isVariation = true. If isVariation = false, then there must be no variants.

+ * + * @return the value of the 'Variant' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_Variant() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningVariationUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getVariant(); + + /** + * Returns the value of the 'Variant Membership' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.VariantMembership}. + * + * + * + *

The ownedMemberships of this Usage that are VariantMemberships. If isVariation = true, then this must be all memberships of the Usage. If isVariation = false, then variantMembershipmust be empty.

+ * + * @return the value of the 'Variant Membership' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUsage_VariantMembership() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningVariationUsage'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getVariantMembership(); + + /** + * + * + * + *

If ownedReferenceSubsetting is not null, return the featureTarget of the referencedFeature of the ownedReferenceSubsetting.

+ * if ownedReferenceSubsetting = null then null + * else ownedReferenceSubsetting.referencedFeature.featureTarget + * endif + * + * @model required="true" ordered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Feature referencedFeatureTarget(); + +} // Usage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/UseCaseDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/UseCaseDefinition.java new file mode 100644 index 000000000..7a2701082 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/UseCaseDefinition.java @@ -0,0 +1,67 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Use Case Definition'. + * + * + * + *

A UseCaseDefinition is a CaseDefinition that specifies a set of actions performed by its subject, in interaction with one or more actors external to the subject. The objective is to yield an observable result that is of value to one or more of the actors.

+ * + * includedUseCase = ownedUseCase-> + * selectByKind(IncludeUseCaseUsage). + * useCaseIncluded + * specializesFromLibrary('UseCases::UseCase') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.UseCaseDefinition#getIncludedUseCase Included Use Case}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getUseCaseDefinition() + * @model + * @generated + */ +public interface UseCaseDefinition extends CaseDefinition { + /** + * Returns the value of the 'Included Use Case' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.UseCaseUsage}. + * + * + * + *

The UseCaseUsages that are included by this UseCaseDefinition, which are the useCaseIncludeds of the IncludeUseCaseUsages owned by this UseCaseDefinition.

+ * + * @return the value of the 'Included Use Case' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUseCaseDefinition_IncludedUseCase() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='includingUseCaseDefinition'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getIncludedUseCase(); + +} // UseCaseDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/UseCaseUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/UseCaseUsage.java new file mode 100644 index 000000000..86b50dbfa --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/UseCaseUsage.java @@ -0,0 +1,99 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Use Case Usage'. + * + * + * + *

A UseCaseUsage is a Usage of a UseCaseDefinition.

+ * includedUseCase = ownedUseCase-> + * selectByKind(IncludeUseCaseUsage). + * useCaseIncluded + * specializesFromLibrary('UseCases::useCases') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(UseCaseDefinition) or + * owningType.oclIsKindOf(UseCaseUsage)) implies + * specializesFromLibrary('UseCases::UseCase::subUseCases') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.UseCaseUsage#getIncludedUseCase Included Use Case}
  • + *
  • {@link org.omg.sysml.model.sysml.UseCaseUsage#getUseCaseDefinition Use Case Definition}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getUseCaseUsage() + * @model + * @generated + */ +public interface UseCaseUsage extends CaseUsage { + /** + * Returns the value of the 'Included Use Case' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.UseCaseUsage}. + * + * + * + *

The UseCaseUsages that are included by this UseCaseUse, which are the useCaseIncludeds of the IncludeUseCaseUsages owned by this UseCaseUsage.

+ * + * @return the value of the 'Included Use Case' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getUseCaseUsage_IncludedUseCase() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='includingUseCase'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getIncludedUseCase(); + + /** + * Returns the value of the 'Use Case Definition' reference. + * + * + * + *

The UseCaseDefinition that is the definition of this UseCaseUsage.

+ * + * @return the value of the 'Use Case Definition' reference. + * @see #setUseCaseDefinition(UseCaseDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getUseCaseUsage_UseCaseDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedUseCase'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + UseCaseDefinition getUseCaseDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.UseCaseUsage#getUseCaseDefinition Use Case Definition}' reference. + * + * + * @param value the new value of the 'Use Case Definition' reference. + * @see #getUseCaseDefinition() + * @generated + */ + void setUseCaseDefinition(UseCaseDefinition value); + +} // UseCaseUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VariantMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VariantMembership.java new file mode 100644 index 000000000..2ae1a4741 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VariantMembership.java @@ -0,0 +1,77 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'Variant Membership'. + * + * + * + *

A VariantMembership is a Membership between a variation point Definition or Usage and a Usage that represents a variant in the context of that variation. The membershipOwningNamespace for the VariantMembership must be either a Definition or a Usage with isVariation = true.

+ * membershipOwningNamespace.oclIsKindOf(Definition) and + * membershipOwningNamespace.oclAsType(Definition).isVariation or + * membershipOwningNamespace.oclIsKindOf(Usage) and + * membershipOwningNamespace.oclAsType(Usage).isVariation + * + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.VariantMembership#getOwnedVariantUsage Owned Variant Usage}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getVariantMembership() + * @model + * @generated + */ +public interface VariantMembership extends OwningMembership { + /** + * Returns the value of the 'Owned Variant Usage' reference. + * + * + * + *

The Usage that represents a variant in the context of the owningVariationDefinition or owningVariationUsage.

+ * + * @return the value of the 'Owned Variant Usage' reference. + * @see #setOwnedVariantUsage(Usage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getVariantMembership_OwnedVariantUsage() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningVariantMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Usage getOwnedVariantUsage(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.VariantMembership#getOwnedVariantUsage Owned Variant Usage}' reference. + * + * + * @param value the new value of the 'Owned Variant Usage' reference. + * @see #getOwnedVariantUsage() + * @generated + */ + void setOwnedVariantUsage(Usage value); + +} // VariantMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VerificationCaseDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VerificationCaseDefinition.java new file mode 100644 index 000000000..3d67f2bd1 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VerificationCaseDefinition.java @@ -0,0 +1,70 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Verification Case Definition'. + * + * + * + *

A VerificationCaseDefinition is a CaseDefinition for the purpose of verification of the subject of the case against its requirements.

+ * verifiedRequirement = + * if objectiveRequirement = null then OrderedSet{} + * else + * objectiveRequirement.featureMembership-> + * selectByKind(RequirementVerificationMembership). + * verifiedRequirement->asOrderedSet() + * endif + * specializesFromLibrary('VerificationCases::VerificationCase') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.VerificationCaseDefinition#getVerifiedRequirement Verified Requirement}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getVerificationCaseDefinition() + * @model + * @generated + */ +public interface VerificationCaseDefinition extends CaseDefinition { + /** + * Returns the value of the 'Verified Requirement' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.RequirementUsage}. + * + * + * + *

The RequirementUsages verified by this VerificationCaseDefinition, which are the verifiedRequirements of all RequirementVerificationMemberships of the objectiveRequirement.

+ * + * @return the value of the 'Verified Requirement' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getVerificationCaseDefinition_VerifiedRequirement() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='verifyingCaseDefinition'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getVerifiedRequirement(); + +} // VerificationCaseDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VerificationCaseUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VerificationCaseUsage.java new file mode 100644 index 000000000..92828d704 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VerificationCaseUsage.java @@ -0,0 +1,103 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Verification Case Usage'. + * + * + * + *

A VerificationCaseUsage is a Usage of a VerificationCaseDefinition.

+ * verifiedRequirement = + * if objectiveRequirement = null then OrderedSet{} + * else + * objectiveRequirement.featureMembership-> + * selectByKind(RequirementVerificationMembership). + * verifiedRequirement->asOrderedSet() + * endif + * specializesFromLibrary('VerificationCases::verificationCases') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(VerificationCaseDefinition) or + * owningType.oclIsKindOf(VerificationCaseUsage)) implies + * specializesFromLibrary('VerificationCases::VerificationCase::subVerificationCases') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.VerificationCaseUsage#getVerificationCaseDefinition Verification Case Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.VerificationCaseUsage#getVerifiedRequirement Verified Requirement}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getVerificationCaseUsage() + * @model + * @generated + */ +public interface VerificationCaseUsage extends CaseUsage { + /** + * Returns the value of the 'Verification Case Definition' reference. + * + * + * + *

The VerificationCase that is the definition of this VerificationCaseUsage.

+ * + * @return the value of the 'Verification Case Definition' reference. + * @see #setVerificationCaseDefinition(VerificationCaseDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getVerificationCaseUsage_VerificationCaseDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedVerificationCase'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + VerificationCaseDefinition getVerificationCaseDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.VerificationCaseUsage#getVerificationCaseDefinition Verification Case Definition}' reference. + * + * + * @param value the new value of the 'Verification Case Definition' reference. + * @see #getVerificationCaseDefinition() + * @generated + */ + void setVerificationCaseDefinition(VerificationCaseDefinition value); + + /** + * Returns the value of the 'Verified Requirement' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.RequirementUsage}. + * + * + * + *

The RequirementUsages verified by this VerificationCaseUsage, which are the verifiedRequirements of all RequirementVerificationMemberships of the objectiveRequirement.

+ * + * @return the value of the 'Verified Requirement' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getVerificationCaseUsage_VerifiedRequirement() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='verifyingCase'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getVerifiedRequirement(); + +} // VerificationCaseUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewDefinition.java new file mode 100644 index 000000000..cf44224bf --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewDefinition.java @@ -0,0 +1,146 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'View Definition'. + * + * + * + *

A ViewDefinition is a PartDefinition that specifies how a view artifact is constructed to satisfy a viewpoint. It specifies a viewConditions to define the model content to be presented and a viewRendering to define how the model content is presented.

+ * view = usage->selectByKind(ViewUsage) + * satisfiedViewpoint = ownedRequirement-> + * selectByKind(ViewpointUsage)-> + * select(isComposite) + * viewRendering = + * let renderings: OrderedSet(ViewRenderingMembership) = + * featureMembership->selectByKind(ViewRenderingMembership) in + * if renderings->isEmpty() then null + * else renderings->first().referencedRendering + * endif + * viewCondition = ownedMembership-> + * selectByKind(ElementFilterMembership). + * condition + * featureMembership-> + * selectByKind(ViewRenderingMembership)-> + * size() <= 1 + * specializesFromLibrary('Views::View') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ViewDefinition#getSatisfiedViewpoint Satisfied Viewpoint}
  • + *
  • {@link org.omg.sysml.model.sysml.ViewDefinition#getView View}
  • + *
  • {@link org.omg.sysml.model.sysml.ViewDefinition#getViewCondition View Condition}
  • + *
  • {@link org.omg.sysml.model.sysml.ViewDefinition#getViewRendering View Rendering}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewDefinition() + * @model + * @generated + */ +public interface ViewDefinition extends PartDefinition { + /** + * Returns the value of the 'Satisfied Viewpoint' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ViewpointUsage}. + * + * + * + *

The composite ownedRequirements of this ViewDefinition that are ViewpointUsages for viewpoints satisfied by the ViewDefinition.

+ * + * @return the value of the 'Satisfied Viewpoint' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewDefinition_SatisfiedViewpoint() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='viewpointSatisfyingViewDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getSatisfiedViewpoint(); + + /** + * Returns the value of the 'View' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ViewUsage}. + * + * + * + *

The usages of this ViewDefinition that are ViewUsages.

+ * + * @return the value of the 'View' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewDefinition_View() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='featuringView'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getView(); + + /** + * Returns the value of the 'View Condition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Expression}. + * + * + * + *

The Expressions related to this ViewDefinition by ElementFilterMemberships, which specify conditions on Elements to be rendered in a view.

+ * + * @return the value of the 'View Condition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewDefinition_ViewCondition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningViewDefinition'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getViewCondition(); + + /** + * Returns the value of the 'View Rendering' reference. + * + * + * + *

The RenderingUsage to be used to render views defined by this ViewDefinition, which is the referencedRendering of the ViewRenderingMembership of the ViewDefinition.

+ * + * @return the value of the 'View Rendering' reference. + * @see #setViewRendering(RenderingUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewDefinition_ViewRendering() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='renderingOwningViewDefinition'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RenderingUsage getViewRendering(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ViewDefinition#getViewRendering View Rendering}' reference. + * + * + * @param value the new value of the 'View Rendering' reference. + * @see #getViewRendering() + * @generated + */ + void setViewRendering(RenderingUsage value); + +} // ViewDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewRenderingMembership.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewRenderingMembership.java new file mode 100644 index 000000000..7da94097c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewRenderingMembership.java @@ -0,0 +1,110 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'View Rendering Membership'. + * + * + * + *

A ViewRenderingMembership is a FeatureMembership that identifies the viewRendering of a ViewDefinition or ViewUsage.

+ * referencedRendering = + * let referencedFeature : Feature = + * ownedRendering.referencedFeatureTarget() in + * if referencedFeature = null then ownedRendering + * else if referencedFeature.oclIsKindOf(RenderingUsage) then + * refrencedFeature.oclAsType(RenderingUsage) + * else null + * endif endif + * owningType.oclIsKindOf(ViewDefinition) or + * owningType.oclIsKindOf(ViewUsage) + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ViewRenderingMembership#getOwnedRendering Owned Rendering}
  • + *
  • {@link org.omg.sysml.model.sysml.ViewRenderingMembership#getReferencedRendering Referenced Rendering}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewRenderingMembership() + * @model + * @generated + */ +public interface ViewRenderingMembership extends FeatureMembership { + /** + * Returns the value of the 'Owned Rendering' reference. + * + * + * + *

The owned RenderingUsage that is either itself the referencedRendering or subsets the referencedRendering. + * + * @return the value of the 'Owned Rendering' reference. + * @see #setOwnedRendering(RenderingUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewRenderingMembership_OwnedRendering() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='viewRenderingMembership'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RenderingUsage getOwnedRendering(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ViewRenderingMembership#getOwnedRendering Owned Rendering}' reference. + * + * + * @param value the new value of the 'Owned Rendering' reference. + * @see #getOwnedRendering() + * @generated + */ + void setOwnedRendering(RenderingUsage value); + + /** + * Returns the value of the 'Referenced Rendering' reference. + * + * + * + *

The RenderingUsage that is referenced through this ViewRenderingMembership. It is the referencedFeature of the ownedReferenceSubsetting for the ownedRendering, if there is one, and, otherwise, the ownedRendering itself.

+ * + * @return the value of the 'Referenced Rendering' reference. + * @see #setReferencedRendering(RenderingUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewRenderingMembership_ReferencedRendering() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='referencingRenderingMembership'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RenderingUsage getReferencedRendering(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ViewRenderingMembership#getReferencedRendering Referenced Rendering}' reference. + * + * + * @param value the new value of the 'Referenced Rendering' reference. + * @see #getReferencedRendering() + * @generated + */ + void setReferencedRendering(RenderingUsage value); + +} // ViewRenderingMembership diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewUsage.java new file mode 100644 index 000000000..e66d74843 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewUsage.java @@ -0,0 +1,201 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'View Usage'. + * + * + * + *

A ViewUsage is a usage of a ViewDefinition to specify the generation of a view of the members of a collection of exposedNamespaces. The ViewUsage can satisfy more viewpoints than its definition, and it can specialize the viewRendering specified by its definition.

+ * exposedElement = ownedImport->selectByKind(Expose). + * importedMemberships(Set{}).memberElement-> + * select(elm | includeAsExposed(elm))-> + * asOrderedSet() + * satisfiedViewpoint = ownedRequirement-> + * selectByKind(ViewpointUsage)-> + * select(isComposite) + * viewCondition = ownedMembership-> + * selectByKind(ElementFilterMembership). + * condition + * viewRendering = + * let renderings: OrderedSet(ViewRenderingMembership) = + * featureMembership->selectByKind(ViewRenderingMembership) in + * if renderings->isEmpty() then null + * else renderings->first().referencedRendering + * endif + * featureMembership-> + * selectByKind(ViewRenderingMembership)-> + * size() <= 1 + * specializesFromLibrary('Views::views') + * owningType <> null and + * (owningType.oclIsKindOf(ViewDefinition) or + * owningType.oclIsKindOf(ViewUsage)) implies + * specializesFromLibrary('Views::View::subviews') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ViewUsage#getExposedElement Exposed Element}
  • + *
  • {@link org.omg.sysml.model.sysml.ViewUsage#getSatisfiedViewpoint Satisfied Viewpoint}
  • + *
  • {@link org.omg.sysml.model.sysml.ViewUsage#getViewCondition View Condition}
  • + *
  • {@link org.omg.sysml.model.sysml.ViewUsage#getViewDefinition View Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.ViewUsage#getViewRendering View Rendering}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewUsage() + * @model + * @generated + */ +public interface ViewUsage extends PartUsage { + /** + * Returns the value of the 'Exposed Element' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Element}. + * + * + * + *

The Elements that are exposed by this ViewUsage, which are those memberElements of the imported Memberships from all the Expose Relationships that meet all the owned and inherited viewConditions.

+ * + * @return the value of the 'Exposed Element' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewUsage_ExposedElement() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='exposingView'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getExposedElement(); + + /** + * Returns the value of the 'Satisfied Viewpoint' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.ViewpointUsage}. + * + * + * + *

The nestedRequirements of this ViewUsage that are ViewpointUsages for (additional) viewpoints satisfied by the ViewUsage.

+ * + * @return the value of the 'Satisfied Viewpoint' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewUsage_SatisfiedViewpoint() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='viewpointSatisfyingView'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getSatisfiedViewpoint(); + + /** + * Returns the value of the 'View Condition' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.Expression}. + * + * + * + *

The Expressions related to this ViewUsage by ElementFilterMemberships, which specify conditions on Elements to be rendered in a view.

+ * + * @return the value of the 'View Condition' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewUsage_ViewCondition() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owningView'" + * annotation="subsets" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getViewCondition(); + + /** + * Returns the value of the 'View Definition' reference. + * + * + * + *

The ViewDefinition that is the definition of this ViewUsage.

+ * + * @return the value of the 'View Definition' reference. + * @see #setViewDefinition(ViewDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewUsage_ViewDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedView'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ViewDefinition getViewDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ViewUsage#getViewDefinition View Definition}' reference. + * + * + * @param value the new value of the 'View Definition' reference. + * @see #getViewDefinition() + * @generated + */ + void setViewDefinition(ViewDefinition value); + + /** + * Returns the value of the 'View Rendering' reference. + * + * + * + *

The RenderingUsage to be used to render views defined by this ViewUsage, which is the referencedRendering of the ViewRenderingMembership of the ViewUsage.

+ * + * @return the value of the 'View Rendering' reference. + * @see #setViewRendering(RenderingUsage) + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewUsage_ViewRendering() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='renderingOwningView'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + RenderingUsage getViewRendering(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ViewUsage#getViewRendering View Rendering}' reference. + * + * + * @param value the new value of the 'View Rendering' reference. + * @see #getViewRendering() + * @generated + */ + void setViewRendering(RenderingUsage value); + + /** + * + * + * + *

Determine whether the given element meets all the owned and inherited viewConditions.

+ * let metadataFeatures: Sequence(AnnotatingElement) = + * element.ownedAnnotation.annotatingElement-> + * select(oclIsKindOf(MetadataFeature)) in + * self.membership->selectByKind(ElementFilterMembership). + * condition->forAll(cond | + * metadataFeatures->exists(elem | + * cond.checkCondition(elem))) + * + * @model required="true" ordered="false" elementRequired="true" elementOrdered="false" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + boolean includeAsExposed(Element element); + +} // ViewUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewpointDefinition.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewpointDefinition.java new file mode 100644 index 000000000..f73d39ba8 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewpointDefinition.java @@ -0,0 +1,66 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Viewpoint Definition'. + * + * + * + *

A ViewpointDefinition is a RequirementDefinition that specifies one or more stakeholder concerns that are to be satisfied by creating a view of a model.

+ * viewpointStakeholder = framedConcern.featureMemberhsip-> + * selectByKind(StakeholderMembership). + * ownedStakeholderParameter + * specializesFromLibrary('Views::Viewpoint') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ViewpointDefinition#getViewpointStakeholder Viewpoint Stakeholder}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewpointDefinition() + * @model + * @generated + */ +public interface ViewpointDefinition extends RequirementDefinition { + /** + * Returns the value of the 'Viewpoint Stakeholder' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartUsage}. + * + * + * + *

The PartUsages that identify the stakeholders with concerns framed by this ViewpointDefinition, which are the owned and inherited stakeholderParameters of the framedConcerns of this ViewpointDefinition.

+ * + * @return the value of the 'Viewpoint Stakeholder' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewpointDefinition_ViewpointStakeholder() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='viewpointDefinitionForStakeholder'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getViewpointStakeholder(); + +} // ViewpointDefinition diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewpointUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewpointUsage.java new file mode 100644 index 000000000..81c3a6e7d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/ViewpointUsage.java @@ -0,0 +1,101 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Viewpoint Usage'. + * + * + * + *

A ViewpointUsage is a Usage of a ViewpointDefinition.

+ * + * + * viewpointStakeholder = framedConcern.featureMemberhsip-> + * selectByKind(StakeholderMembership). + * ownedStakeholderParameter + * specializesFromLibrary('Views::viewpoints') + * isComposite and owningType <> null and + * (owningType.oclIsKindOf(ViewDefinition) or + * owningType.oclIsKindOf(ViewUsage)) implies + * specializesFromLibrary('Views::View::viewpointSatisfactions') + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.ViewpointUsage#getViewpointDefinition Viewpoint Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.ViewpointUsage#getViewpointStakeholder Viewpoint Stakeholder}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewpointUsage() + * @model + * @generated + */ +public interface ViewpointUsage extends RequirementUsage { + /** + * Returns the value of the 'Viewpoint Definition' reference. + * + * + * + *

The ViewpointDefinition that is the definition of this ViewpointUsage.

+ * + * @return the value of the 'Viewpoint Definition' reference. + * @see #setViewpointDefinition(ViewpointDefinition) + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewpointUsage_ViewpointDefinition() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='definedViewpoint'" + * annotation="redefines" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + ViewpointDefinition getViewpointDefinition(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.ViewpointUsage#getViewpointDefinition Viewpoint Definition}' reference. + * + * + * @param value the new value of the 'Viewpoint Definition' reference. + * @see #getViewpointDefinition() + * @generated + */ + void setViewpointDefinition(ViewpointDefinition value); + + /** + * Returns the value of the 'Viewpoint Stakeholder' reference list. + * The list contents are of type {@link org.omg.sysml.model.sysml.PartUsage}. + * + * + * + *

The PartUsages that identify the stakeholders with concerns framed by this ViewpointUsage, which are the owned and inherited stakeholderParameters of the framedConcerns of this ViewpointUsage.

+ * + * @return the value of the 'Viewpoint Stakeholder' reference list. + * @see org.omg.sysml.model.sysml.SysMLPackage#getViewpointUsage_ViewpointStakeholder() + * @model transient="true" volatile="true" derived="true" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='viewpointForStakeholder'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + EList getViewpointStakeholder(); + +} // ViewpointUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VisibilityKind.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VisibilityKind.java new file mode 100644 index 000000000..9858bbe2d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/VisibilityKind.java @@ -0,0 +1,273 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Visibility Kind', + * and utility methods for working with them. + * + * + *

VisibilityKind is an enumeration whose literals specify the visibility of a Membership of an Element in a Namespace outside of that Namespace. Note that "visibility" specifically restricts whether an Element in a Namespace may be referenced by name from outside the Namespace and only otherwise restricts access to an Element as provided by specific constraints in the abstract syntax (e.g., preventing the import or inheritance of private Elements).

+ * + * + * @see org.omg.sysml.model.sysml.SysMLPackage#getVisibilityKind() + * @model + * @generated + */ +public enum VisibilityKind implements Enumerator { + /** + * The 'Private' literal object. + * + * + * + *

Indicates a Membership is not visible outside its owning Namespace.

+ * + * @see #PRIVATE_VALUE + * @generated + * @ordered + */ + PRIVATE(0, "private", "private"), + + /** + * The 'Protected' literal object. + * + * + * + *

An intermediate level of visibility between public and private. By default, it is equivalent to private for the purposes of normal access to and import of Elements from a Namespace. However, other Relationships may be specified to include Memberships with protected visibility in the list of memberships for a Namespace (e.g., Specialization).

+ * + * + * @see #PROTECTED_VALUE + * @generated + * @ordered + */ + PROTECTED(1, "protected", "protected"), + + /** + * The 'Public' literal object. + * + * + * + *

Indicates that a Membership is publicly visible outside its owning Namespace.

+ * + * @see #PUBLIC_VALUE + * @generated + * @ordered + */ + PUBLIC(2, "public", "public"); + + /** + * The 'Private' literal value. + * + * + * + *

Indicates a Membership is not visible outside its owning Namespace.

+ * + * @see #PRIVATE + * @model name="private" + * @generated + * @ordered + */ + public static final int PRIVATE_VALUE = 0; + + /** + * The 'Protected' literal value. + * + * + * + *

An intermediate level of visibility between public and private. By default, it is equivalent to private for the purposes of normal access to and import of Elements from a Namespace. However, other Relationships may be specified to include Memberships with protected visibility in the list of memberships for a Namespace (e.g., Specialization).

+ * + * + * @see #PROTECTED + * @model name="protected" + * @generated + * @ordered + */ + public static final int PROTECTED_VALUE = 1; + + /** + * The 'Public' literal value. + * + * + * + *

Indicates that a Membership is publicly visible outside its owning Namespace.

+ * + * @see #PUBLIC + * @model name="public" + * @generated + * @ordered + */ + public static final int PUBLIC_VALUE = 2; + + /** + * An array of all the 'Visibility Kind' enumerators. + * + * + * @generated + */ + private static final VisibilityKind[] VALUES_ARRAY = + new VisibilityKind[] { + PRIVATE, + PROTECTED, + PUBLIC, + }; + + /** + * A public read-only list of all the 'Visibility Kind' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Visibility Kind' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static VisibilityKind get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + VisibilityKind result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Visibility Kind' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static VisibilityKind getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + VisibilityKind result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Visibility Kind' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static VisibilityKind get(int value) { + switch (value) { + case PRIVATE_VALUE: return PRIVATE; + case PROTECTED_VALUE: return PROTECTED; + case PUBLIC_VALUE: return PUBLIC; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private VisibilityKind(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + @Override + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + @Override + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //VisibilityKind diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/WhileLoopActionUsage.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/WhileLoopActionUsage.java new file mode 100644 index 000000000..b32d8b844 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/WhileLoopActionUsage.java @@ -0,0 +1,121 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml; + + +/** + * + * A representation of the model object 'While Loop Action Usage'. + * + * + * + *

A WhileLoopActionUsage is a LoopActionUsage that specifies that the bodyAction ActionUsage should be performed repeatedly while the result of the whileArgument Expression is true or until the result of the untilArgument Expression (if provided) is true. The whileArgument Expression is evaluated before each (possible) performance of the bodyAction, and the untilArgument Expression is evaluated after each performance of the bodyAction.

+ * isSubactionUsage() implies + * specializesFromLibrary('Actions::Action::whileLoops') + * untilArgument = + * let parameter : Feature = inputParameter(3) in + * if parameter <> null and parameter.oclIsKindOf(Expression) then + * parameter.oclAsType(Expression) + * else + * null + * endif + * + * specializesFromLibrary('Actions::whileLoopActions') + * whileArgument = + * let parameter : Feature = inputParameter(1) in + * if parameter <> null and parameter.oclIsKindOf(Expression) then + * parameter.oclAsType(Expression) + * else + * null + * endif + * + * inputParameters()->size() >= 2 + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.WhileLoopActionUsage#getUntilArgument Until Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.WhileLoopActionUsage#getWhileArgument While Argument}
  • + *
+ * + * @see org.omg.sysml.model.sysml.SysMLPackage#getWhileLoopActionUsage() + * @model + * @generated + */ +public interface WhileLoopActionUsage extends LoopActionUsage { + /** + * Returns the value of the 'Until Argument' reference. + * + * + * + *

The Expression whose result, if false, determines that the bodyAction should continue to be performed. It is the (optional) third owned parameter of the WhileLoopActionUsage.

+ * + * + * @return the value of the 'Until Argument' reference. + * @see #setUntilArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getWhileLoopActionUsage_UntilArgument() + * @model transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='untilLoopAction'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getUntilArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.WhileLoopActionUsage#getUntilArgument Until Argument}' reference. + * + * + * @param value the new value of the 'Until Argument' reference. + * @see #getUntilArgument() + * @generated + */ + void setUntilArgument(Expression value); + + /** + * Returns the value of the 'While Argument' reference. + * + * + * + *

The Expression whose result, if true, determines that the bodyAction should continue to be performed. It is the first owned parameter of the WhileLoopActionUsage.

+ * + * + * @return the value of the 'While Argument' reference. + * @see #setWhileArgument(Expression) + * @see org.omg.sysml.model.sysml.SysMLPackage#getWhileLoopActionUsage_WhileArgument() + * @model required="true" transient="true" volatile="true" derived="true" ordered="false" + * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='whileLoopAction'" + * annotation="http://www.omg.org/spec/SysML" + * @generated + */ + Expression getWhileArgument(); + + /** + * Sets the value of the '{@link org.omg.sysml.model.sysml.WhileLoopActionUsage#getWhileArgument While Argument}' reference. + * + * + * @param value the new value of the 'While Argument' reference. + * @see #getWhileArgument() + * @generated + */ + void setWhileArgument(Expression value); + +} // WhileLoopActionUsage diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AcceptActionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AcceptActionUsageImpl.java new file mode 100644 index 000000000..a104d4831 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AcceptActionUsageImpl.java @@ -0,0 +1,169 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Accept Action Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AcceptActionUsageImpl#getPayloadArgument Payload Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AcceptActionUsageImpl#getPayloadParameter Payload Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AcceptActionUsageImpl#getReceiverArgument Receiver Argument}
  • + *
+ * + * @generated + */ +public class AcceptActionUsageImpl extends ActionUsageImpl implements AcceptActionUsage { + /** + * + * + * @generated + */ + protected AcceptActionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ACCEPT_ACTION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public Expression getPayloadArgument() { + return (Expression)eGet(SysMLPackage.Literals.ACCEPT_ACTION_USAGE__PAYLOAD_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPayloadArgument(Expression newPayloadArgument) { + eSet(SysMLPackage.Literals.ACCEPT_ACTION_USAGE__PAYLOAD_ARGUMENT, newPayloadArgument); + } + + /** + * + * + * @generated + */ + @Override + public ReferenceUsage getPayloadParameter() { + return (ReferenceUsage)eGet(SysMLPackage.Literals.ACCEPT_ACTION_USAGE__PAYLOAD_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPayloadParameter(ReferenceUsage newPayloadParameter) { + eSet(SysMLPackage.Literals.ACCEPT_ACTION_USAGE__PAYLOAD_PARAMETER, newPayloadParameter); + } + + /** + * + * + * @generated + */ + @Override + public Expression getReceiverArgument() { + return (Expression)eGet(SysMLPackage.Literals.ACCEPT_ACTION_USAGE__RECEIVER_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReceiverArgument(Expression newReceiverArgument) { + eSet(SysMLPackage.Literals.ACCEPT_ACTION_USAGE__RECEIVER_ARGUMENT, newReceiverArgument); + } + + /** + * The cached invocation delegate for the '{@link #isTriggerAction() Is Trigger Action}' operation. + * + * + * @see #isTriggerAction() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_TRIGGER_ACTION__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ACCEPT_ACTION_USAGE___IS_TRIGGER_ACTION).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isTriggerAction() { + try { + return (Boolean)IS_TRIGGER_ACTION__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.ACCEPT_ACTION_USAGE___IS_TRIGGER_ACTION: + return isTriggerAction(); + } + return super.eInvoke(operationID, arguments); + } + +} //AcceptActionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ActionDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ActionDefinitionImpl.java new file mode 100644 index 000000000..9e1ff31f5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ActionDefinitionImpl.java @@ -0,0 +1,135 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ActionDefinition; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Action Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ActionDefinitionImpl#getParameter Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ActionDefinitionImpl#getStep Step}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ActionDefinitionImpl#getAction Action}
  • + *
+ * + * @generated + */ +public class ActionDefinitionImpl extends OccurrenceDefinitionImpl implements ActionDefinition { + /** + * + * + * @generated + */ + protected ActionDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ACTION_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParameter() { + return (EList)eGet(SysMLPackage.Literals.BEHAVIOR__PARAMETER, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getStep() { + return (EList)eGet(SysMLPackage.Literals.BEHAVIOR__STEP, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAction() { + return (EList)eGet(SysMLPackage.Literals.ACTION_DEFINITION__ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Behavior.class) { + switch (derivedFeatureID) { + case SysMLPackage.ACTION_DEFINITION__PARAMETER: return SysMLPackage.BEHAVIOR__PARAMETER; + case SysMLPackage.ACTION_DEFINITION__STEP: return SysMLPackage.BEHAVIOR__STEP; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Behavior.class) { + switch (baseFeatureID) { + case SysMLPackage.BEHAVIOR__PARAMETER: return SysMLPackage.ACTION_DEFINITION__PARAMETER; + case SysMLPackage.BEHAVIOR__STEP: return SysMLPackage.ACTION_DEFINITION__STEP; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //ActionDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ActionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ActionUsageImpl.java new file mode 100644 index 000000000..550593e01 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ActionUsageImpl.java @@ -0,0 +1,294 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Action Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ActionUsageImpl#getBehavior Behavior}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ActionUsageImpl#getParameter Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ActionUsageImpl#getActionDefinition Action Definition}
  • + *
+ * + * @generated + */ +public class ActionUsageImpl extends OccurrenceUsageImpl implements ActionUsage { + /** + * + * + * @generated + */ + protected ActionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ACTION_USAGE; + } + + + /** + * + * + * @generated + */ + @Override + public EList getBehavior() { + var sourceValue = this.getActionDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Behavior typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Behavior typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParameter() { + return (EList)eGet(SysMLPackage.Literals.STEP__PARAMETER, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getActionDefinition() { + return (EList)eGet(SysMLPackage.Literals.ACTION_USAGE__ACTION_DEFINITION, true); + } + + /** + * The cached invocation delegate for the '{@link #argument(int) Argument}' operation. + * + * + * @see #argument(int) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ARGUMENT_INT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ACTION_USAGE___ARGUMENT__INT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Expression argument(int i) { + try { + return (Expression)ARGUMENT_INT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{i})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #inputParameter(int) Input Parameter}' operation. + * + * + * @see #inputParameter(int) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate INPUT_PARAMETER_INT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ACTION_USAGE___INPUT_PARAMETER__INT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Feature inputParameter(int i) { + try { + return (Feature)INPUT_PARAMETER_INT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{i})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #inputParameters() Input Parameters}' operation. + * + * + * @see #inputParameters() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate INPUT_PARAMETERS__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ACTION_USAGE___INPUT_PARAMETERS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList inputParameters() { + try { + return (EList)INPUT_PARAMETERS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isSubactionUsage() Is Subaction Usage}' operation. + * + * + * @see #isSubactionUsage() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_SUBACTION_USAGE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ACTION_USAGE___IS_SUBACTION_USAGE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isSubactionUsage() { + try { + return (Boolean)IS_SUBACTION_USAGE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Step.class) { + switch (derivedFeatureID) { + case SysMLPackage.ACTION_USAGE__BEHAVIOR: return SysMLPackage.STEP__BEHAVIOR; + case SysMLPackage.ACTION_USAGE__PARAMETER: return SysMLPackage.STEP__PARAMETER; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Step.class) { + switch (baseFeatureID) { + case SysMLPackage.STEP__BEHAVIOR: return SysMLPackage.ACTION_USAGE__BEHAVIOR; + case SysMLPackage.STEP__PARAMETER: return SysMLPackage.ACTION_USAGE__PARAMETER; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.ACTION_USAGE___ARGUMENT__INT: + return argument((Integer)arguments.get(0)); + case SysMLPackage.ACTION_USAGE___INPUT_PARAMETER__INT: + return inputParameter((Integer)arguments.get(0)); + case SysMLPackage.ACTION_USAGE___INPUT_PARAMETERS: + return inputParameters(); + case SysMLPackage.ACTION_USAGE___IS_SUBACTION_USAGE: + return isSubactionUsage(); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public EList getOccurrenceDefinition() { + var sourceValue = this.getActionDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof org.omg.sysml.model.sysml.Class typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof org.omg.sysml.model.sysml.Class typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //ActionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ActorMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ActorMembershipImpl.java new file mode 100644 index 000000000..ad0b4e661 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ActorMembershipImpl.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ActorMembership; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Actor Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ActorMembershipImpl#getOwnedActorParameter Owned Actor Parameter}
  • + *
+ * + * @generated + */ +public class ActorMembershipImpl extends ParameterMembershipImpl implements ActorMembership { + /** + * + * + * @generated + */ + protected ActorMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ACTOR_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public PartUsage getOwnedActorParameter() { + return (PartUsage)eGet(SysMLPackage.Literals.ACTOR_MEMBERSHIP__OWNED_ACTOR_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedActorParameter(PartUsage newOwnedActorParameter) { + eSet(SysMLPackage.Literals.ACTOR_MEMBERSHIP__OWNED_ACTOR_PARAMETER, newOwnedActorParameter); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberParameter() { + var sourceValue = this.getOwnedActorParameter(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //ActorMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AllocationDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AllocationDefinitionImpl.java new file mode 100644 index 000000000..177d4336e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AllocationDefinitionImpl.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AllocationDefinition; +import org.omg.sysml.model.sysml.AllocationUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Allocation Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AllocationDefinitionImpl#getAllocation Allocation}
  • + *
+ * + * @generated + */ +public class AllocationDefinitionImpl extends ConnectionDefinitionImpl implements AllocationDefinition { + /** + * + * + * @generated + */ + protected AllocationDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ALLOCATION_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAllocation() { + return (EList)eGet(SysMLPackage.Literals.ALLOCATION_DEFINITION__ALLOCATION, true); + } + +} //AllocationDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AllocationUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AllocationUsageImpl.java new file mode 100644 index 000000000..2f05584d8 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AllocationUsageImpl.java @@ -0,0 +1,98 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AllocationDefinition; +import org.omg.sysml.model.sysml.AllocationUsage; +import org.omg.sysml.model.sysml.AssociationStructure; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Allocation Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AllocationUsageImpl#getAllocationDefinition Allocation Definition}
  • + *
+ * + * @generated + */ +public class AllocationUsageImpl extends ConnectionUsageImpl implements AllocationUsage { + /** + * + * + * @generated + */ + protected AllocationUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ALLOCATION_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAllocationDefinition() { + return (EList)eGet(SysMLPackage.Literals.ALLOCATION_USAGE__ALLOCATION_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public EList getConnectionDefinition() { + var sourceValue = this.getAllocationDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof AssociationStructure typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof AssociationStructure typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //AllocationUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnalysisCaseDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnalysisCaseDefinitionImpl.java new file mode 100644 index 000000000..e5e8d8d6b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnalysisCaseDefinitionImpl.java @@ -0,0 +1,81 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AnalysisCaseDefinition; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Analysis Case Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AnalysisCaseDefinitionImpl#getResultExpression Result Expression}
  • + *
+ * + * @generated + */ +public class AnalysisCaseDefinitionImpl extends CaseDefinitionImpl implements AnalysisCaseDefinition { + /** + * + * + * @generated + */ + protected AnalysisCaseDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ANALYSIS_CASE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public Expression getResultExpression() { + return (Expression)eGet(SysMLPackage.Literals.ANALYSIS_CASE_DEFINITION__RESULT_EXPRESSION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setResultExpression(Expression newResultExpression) { + eSet(SysMLPackage.Literals.ANALYSIS_CASE_DEFINITION__RESULT_EXPRESSION, newResultExpression); + } + +} //AnalysisCaseDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnalysisCaseUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnalysisCaseUsageImpl.java new file mode 100644 index 000000000..6619d9bc3 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnalysisCaseUsageImpl.java @@ -0,0 +1,127 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AnalysisCaseDefinition; +import org.omg.sysml.model.sysml.AnalysisCaseUsage; +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Analysis Case Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AnalysisCaseUsageImpl#getAnalysisCaseDefinition Analysis Case Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AnalysisCaseUsageImpl#getResultExpression Result Expression}
  • + *
+ * + * @generated + */ +public class AnalysisCaseUsageImpl extends CaseUsageImpl implements AnalysisCaseUsage { + /** + * + * + * @generated + */ + protected AnalysisCaseUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ANALYSIS_CASE_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public AnalysisCaseDefinition getAnalysisCaseDefinition() { + return (AnalysisCaseDefinition)eGet(SysMLPackage.Literals.ANALYSIS_CASE_USAGE__ANALYSIS_CASE_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setAnalysisCaseDefinition(AnalysisCaseDefinition newAnalysisCaseDefinition) { + eSet(SysMLPackage.Literals.ANALYSIS_CASE_USAGE__ANALYSIS_CASE_DEFINITION, newAnalysisCaseDefinition); + } + + /** + * + * + * @generated + */ + @Override + public Expression getResultExpression() { + return (Expression)eGet(SysMLPackage.Literals.ANALYSIS_CASE_USAGE__RESULT_EXPRESSION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setResultExpression(Expression newResultExpression) { + eSet(SysMLPackage.Literals.ANALYSIS_CASE_USAGE__RESULT_EXPRESSION, newResultExpression); + } + + /** + * + * + * @generated + */ + @Override + public CaseDefinition getCaseDefinition() { + var sourceValue = this.getAnalysisCaseDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof CaseDefinition typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof CaseDefinition typedValue) { + return typedValue; + } + return null; + } + +} //AnalysisCaseUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnnotatingElementImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnnotatingElementImpl.java new file mode 100644 index 000000000..f542b2cd3 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnnotatingElementImpl.java @@ -0,0 +1,120 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Annotating Element'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AnnotatingElementImpl#getAnnotatedElement Annotated Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AnnotatingElementImpl#getAnnotation Annotation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AnnotatingElementImpl#getOwnedAnnotatingRelationship Owned Annotating Relationship}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AnnotatingElementImpl#getOwningAnnotatingRelationship Owning Annotating Relationship}
  • + *
+ * + * @generated + */ +public class AnnotatingElementImpl extends ElementImpl implements AnnotatingElement { + /** + * + * + * @generated + */ + protected AnnotatingElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ANNOTATING_ELEMENT; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAnnotatedElement() { + return (EList)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__ANNOTATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAnnotation() { + return (EList)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__ANNOTATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedAnnotatingRelationship() { + return (EList)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public Annotation getOwningAnnotatingRelationship() { + return (Annotation)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningAnnotatingRelationship(Annotation newOwningAnnotatingRelationship) { + eSet(SysMLPackage.Literals.ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP, newOwningAnnotatingRelationship); + } + +} //AnnotatingElementImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnnotationImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnnotationImpl.java new file mode 100644 index 000000000..0a373c087 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AnnotationImpl.java @@ -0,0 +1,213 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Annotation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AnnotationImpl#getAnnotatedElement Annotated Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AnnotationImpl#getAnnotatingElement Annotating Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AnnotationImpl#getOwnedAnnotatingElement Owned Annotating Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AnnotationImpl#getOwningAnnotatedElement Owning Annotated Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AnnotationImpl#getOwningAnnotatingElement Owning Annotating Element}
  • + *
+ * + * @generated + */ +public class AnnotationImpl extends RelationshipImpl implements Annotation { + /** + * + * + * @generated + */ + protected AnnotationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ANNOTATION; + } + + /** + * + * + * @generated + */ + @Override + public Element getAnnotatedElement() { + return (Element)eGet(SysMLPackage.Literals.ANNOTATION__ANNOTATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setAnnotatedElement(Element newAnnotatedElement) { + eSet(SysMLPackage.Literals.ANNOTATION__ANNOTATED_ELEMENT, newAnnotatedElement); + } + + /** + * + * + * @generated + */ + @Override + public AnnotatingElement getAnnotatingElement() { + return (AnnotatingElement)eGet(SysMLPackage.Literals.ANNOTATION__ANNOTATING_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setAnnotatingElement(AnnotatingElement newAnnotatingElement) { + eSet(SysMLPackage.Literals.ANNOTATION__ANNOTATING_ELEMENT, newAnnotatingElement); + } + + /** + * + * + * @generated + */ + @Override + public AnnotatingElement getOwnedAnnotatingElement() { + return (AnnotatingElement)eGet(SysMLPackage.Literals.ANNOTATION__OWNED_ANNOTATING_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedAnnotatingElement(AnnotatingElement newOwnedAnnotatingElement) { + eSet(SysMLPackage.Literals.ANNOTATION__OWNED_ANNOTATING_ELEMENT, newOwnedAnnotatingElement); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwningAnnotatedElement() { + return (Element)eGet(SysMLPackage.Literals.ANNOTATION__OWNING_ANNOTATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningAnnotatedElement(Element newOwningAnnotatedElement) { + eSet(SysMLPackage.Literals.ANNOTATION__OWNING_ANNOTATED_ELEMENT, newOwningAnnotatedElement); + } + + /** + * + * + * @generated + */ + @Override + public AnnotatingElement getOwningAnnotatingElement() { + return (AnnotatingElement)eGet(SysMLPackage.Literals.ANNOTATION__OWNING_ANNOTATING_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningAnnotatingElement(AnnotatingElement newOwningAnnotatingElement) { + eSet(SysMLPackage.Literals.ANNOTATION__OWNING_ANNOTATING_ELEMENT, newOwningAnnotatingElement); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getAnnotatedElement(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getAnnotatingElement(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //AnnotationImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssertConstraintUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssertConstraintUsageImpl.java new file mode 100644 index 000000000..c4c41d335 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssertConstraintUsageImpl.java @@ -0,0 +1,135 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AssertConstraintUsage; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.Invariant; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Assert Constraint Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AssertConstraintUsageImpl#isIsNegated Is Negated}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssertConstraintUsageImpl#getAssertedConstraint Asserted Constraint}
  • + *
+ * + * @generated + */ +public class AssertConstraintUsageImpl extends ConstraintUsageImpl implements AssertConstraintUsage { + /** + * + * + * @generated + */ + protected AssertConstraintUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ASSERT_CONSTRAINT_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsNegated() { + return (Boolean)eGet(SysMLPackage.Literals.INVARIANT__IS_NEGATED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsNegated(boolean newIsNegated) { + eSet(SysMLPackage.Literals.INVARIANT__IS_NEGATED, newIsNegated); + } + + /** + * + * + * @generated + */ + @Override + public ConstraintUsage getAssertedConstraint() { + return (ConstraintUsage)eGet(SysMLPackage.Literals.ASSERT_CONSTRAINT_USAGE__ASSERTED_CONSTRAINT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setAssertedConstraint(ConstraintUsage newAssertedConstraint) { + eSet(SysMLPackage.Literals.ASSERT_CONSTRAINT_USAGE__ASSERTED_CONSTRAINT, newAssertedConstraint); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Invariant.class) { + switch (derivedFeatureID) { + case SysMLPackage.ASSERT_CONSTRAINT_USAGE__IS_NEGATED: return SysMLPackage.INVARIANT__IS_NEGATED; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Invariant.class) { + switch (baseFeatureID) { + case SysMLPackage.INVARIANT__IS_NEGATED: return SysMLPackage.ASSERT_CONSTRAINT_USAGE__IS_NEGATED; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //AssertConstraintUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssignmentActionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssignmentActionUsageImpl.java new file mode 100644 index 000000000..0b40ccd98 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssignmentActionUsageImpl.java @@ -0,0 +1,124 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AssignmentActionUsage; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Assignment Action Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AssignmentActionUsageImpl#getReferent Referent}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssignmentActionUsageImpl#getTargetArgument Target Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssignmentActionUsageImpl#getValueExpression Value Expression}
  • + *
+ * + * @generated + */ +public class AssignmentActionUsageImpl extends ActionUsageImpl implements AssignmentActionUsage { + /** + * + * + * @generated + */ + protected AssignmentActionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ASSIGNMENT_ACTION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public Feature getReferent() { + return (Feature)eGet(SysMLPackage.Literals.ASSIGNMENT_ACTION_USAGE__REFERENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReferent(Feature newReferent) { + eSet(SysMLPackage.Literals.ASSIGNMENT_ACTION_USAGE__REFERENT, newReferent); + } + + /** + * + * + * @generated + */ + @Override + public Expression getTargetArgument() { + return (Expression)eGet(SysMLPackage.Literals.ASSIGNMENT_ACTION_USAGE__TARGET_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTargetArgument(Expression newTargetArgument) { + eSet(SysMLPackage.Literals.ASSIGNMENT_ACTION_USAGE__TARGET_ARGUMENT, newTargetArgument); + } + + /** + * + * + * @generated + */ + @Override + public Expression getValueExpression() { + return (Expression)eGet(SysMLPackage.Literals.ASSIGNMENT_ACTION_USAGE__VALUE_EXPRESSION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setValueExpression(Expression newValueExpression) { + eSet(SysMLPackage.Literals.ASSIGNMENT_ACTION_USAGE__VALUE_EXPRESSION, newValueExpression); + } + +} //AssignmentActionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssociationImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssociationImpl.java new file mode 100644 index 000000000..83c040c6a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssociationImpl.java @@ -0,0 +1,312 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Relationship; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Association'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AssociationImpl#isIsImplied Is Implied}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssociationImpl#getOwnedRelatedElement Owned Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssociationImpl#getOwningRelatedElement Owning Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssociationImpl#getRelatedElement Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssociationImpl#getSource Source}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssociationImpl#getTarget Target}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssociationImpl#getAssociationEnd Association End}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssociationImpl#getRelatedType Related Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssociationImpl#getSourceType Source Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.AssociationImpl#getTargetType Target Type}
  • + *
+ * + * @generated + */ +public class AssociationImpl extends ClassifierImpl implements Association { + /** + * + * + * @generated + */ + protected AssociationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ASSOCIATION; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsImplied() { + return (Boolean)eGet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsImplied(boolean newIsImplied) { + eSet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, newIsImplied); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedRelatedElement() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNED_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwningRelatedElement() { + return (Element)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningRelatedElement(Element newOwningRelatedElement) { + eSet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, newOwningRelatedElement); + } + + + /** + * + * + * @generated + */ + @Override + public EList getRelatedElement() { + var sourceValue = this.getRelatedType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getSourceType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getTargetType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAssociationEnd() { + return (EList)eGet(SysMLPackage.Literals.ASSOCIATION__ASSOCIATION_END, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRelatedType() { + return (EList)eGet(SysMLPackage.Literals.ASSOCIATION__RELATED_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public Type getSourceType() { + return (Type)eGet(SysMLPackage.Literals.ASSOCIATION__SOURCE_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSourceType(Type newSourceType) { + eSet(SysMLPackage.Literals.ASSOCIATION__SOURCE_TYPE, newSourceType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTargetType() { + return (EList)eGet(SysMLPackage.Literals.ASSOCIATION__TARGET_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case SysMLPackage.ASSOCIATION__IS_IMPLIED: return SysMLPackage.RELATIONSHIP__IS_IMPLIED; + case SysMLPackage.ASSOCIATION__OWNED_RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__OWNED_RELATED_ELEMENT; + case SysMLPackage.ASSOCIATION__OWNING_RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__OWNING_RELATED_ELEMENT; + case SysMLPackage.ASSOCIATION__RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__RELATED_ELEMENT; + case SysMLPackage.ASSOCIATION__SOURCE: return SysMLPackage.RELATIONSHIP__SOURCE; + case SysMLPackage.ASSOCIATION__TARGET: return SysMLPackage.RELATIONSHIP__TARGET; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case SysMLPackage.RELATIONSHIP__IS_IMPLIED: return SysMLPackage.ASSOCIATION__IS_IMPLIED; + case SysMLPackage.RELATIONSHIP__OWNED_RELATED_ELEMENT: return SysMLPackage.ASSOCIATION__OWNED_RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__OWNING_RELATED_ELEMENT: return SysMLPackage.ASSOCIATION__OWNING_RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__RELATED_ELEMENT: return SysMLPackage.ASSOCIATION__RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__SOURCE: return SysMLPackage.ASSOCIATION__SOURCE; + case SysMLPackage.RELATIONSHIP__TARGET: return SysMLPackage.ASSOCIATION__TARGET; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public EList getEndFeature() { + var sourceValue = this.getAssociationEnd(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Feature typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //AssociationImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssociationStructureImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssociationStructureImpl.java new file mode 100644 index 000000000..ad978592d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AssociationStructureImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AssociationStructure; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Association Structure'. + * + * + * @generated + */ +public class AssociationStructureImpl extends AssociationImpl implements AssociationStructure { + /** + * + * + * @generated + */ + protected AssociationStructureImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ASSOCIATION_STRUCTURE; + } + +} //AssociationStructureImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AttributeDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AttributeDefinitionImpl.java new file mode 100644 index 000000000..7bfbd57c1 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AttributeDefinitionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AttributeDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Attribute Definition'. + * + * + * @generated + */ +public class AttributeDefinitionImpl extends DefinitionImpl implements AttributeDefinition { + /** + * + * + * @generated + */ + protected AttributeDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ATTRIBUTE_DEFINITION; + } + +} //AttributeDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AttributeUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AttributeUsageImpl.java new file mode 100644 index 000000000..de5119287 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/AttributeUsageImpl.java @@ -0,0 +1,98 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AttributeUsage; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.DataType; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Attribute Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.AttributeUsageImpl#getAttributeDefinition Attribute Definition}
  • + *
+ * + * @generated + */ +public class AttributeUsageImpl extends UsageImpl implements AttributeUsage { + /** + * + * + * @generated + */ + protected AttributeUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ATTRIBUTE_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAttributeDefinition() { + return (EList)eGet(SysMLPackage.Literals.ATTRIBUTE_USAGE__ATTRIBUTE_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public EList getDefinition() { + var sourceValue = this.getAttributeDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Classifier typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Classifier typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //AttributeUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BehaviorImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BehaviorImpl.java new file mode 100644 index 000000000..55a2deae5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BehaviorImpl.java @@ -0,0 +1,110 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Behavior'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.BehaviorImpl#getParameter Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.BehaviorImpl#getStep Step}
  • + *
+ * + * @generated + */ +public class BehaviorImpl extends ClassImpl implements Behavior { + /** + * + * + * @generated + */ + protected BehaviorImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.BEHAVIOR; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParameter() { + return (EList)eGet(SysMLPackage.Literals.BEHAVIOR__PARAMETER, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getStep() { + return (EList)eGet(SysMLPackage.Literals.BEHAVIOR__STEP, true); + } + + /** + * + * + * @generated + */ + @Override + public EList getDirectedFeature() { + var sourceValue = this.getParameter(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Feature typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //BehaviorImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BindingConnectorAsUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BindingConnectorAsUsageImpl.java new file mode 100644 index 000000000..76499c4dd --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BindingConnectorAsUsageImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.BindingConnectorAsUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Binding Connector As Usage'. + * + * + * @generated + */ +public class BindingConnectorAsUsageImpl extends ConnectorAsUsageImpl implements BindingConnectorAsUsage { + /** + * + * + * @generated + */ + protected BindingConnectorAsUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.BINDING_CONNECTOR_AS_USAGE; + } + +} //BindingConnectorAsUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BindingConnectorImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BindingConnectorImpl.java new file mode 100644 index 000000000..058d53eab --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BindingConnectorImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.BindingConnector; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Binding Connector'. + * + * + * @generated + */ +public class BindingConnectorImpl extends ConnectorImpl implements BindingConnector { + /** + * + * + * @generated + */ + protected BindingConnectorImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.BINDING_CONNECTOR; + } + +} //BindingConnectorImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BooleanExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BooleanExpressionImpl.java new file mode 100644 index 000000000..7b6ad4b4e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/BooleanExpressionImpl.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.BooleanExpression; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Boolean Expression'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.BooleanExpressionImpl#getPredicate Predicate}
  • + *
+ * + * @generated + */ +public class BooleanExpressionImpl extends ExpressionImpl implements BooleanExpression { + /** + * + * + * @generated + */ + protected BooleanExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.BOOLEAN_EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public Predicate getPredicate() { + return (Predicate)eGet(SysMLPackage.Literals.BOOLEAN_EXPRESSION__PREDICATE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPredicate(Predicate newPredicate) { + eSet(SysMLPackage.Literals.BOOLEAN_EXPRESSION__PREDICATE, newPredicate); + } + + /** + * + * + * @generated + */ + @Override + public Function getFunction() { + var sourceValue = this.getPredicate(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Function typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Function typedValue) { + return typedValue; + } + return null; + } + +} //BooleanExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CalculationDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CalculationDefinitionImpl.java new file mode 100644 index 000000000..49d4fd2f7 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CalculationDefinitionImpl.java @@ -0,0 +1,167 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.CalculationDefinition; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Calculation Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.CalculationDefinitionImpl#isIsModelLevelEvaluable Is Model Level Evaluable}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CalculationDefinitionImpl#getExpression Expression}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CalculationDefinitionImpl#getResult Result}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CalculationDefinitionImpl#getCalculation Calculation}
  • + *
+ * + * @generated + */ +public class CalculationDefinitionImpl extends ActionDefinitionImpl implements CalculationDefinition { + /** + * + * + * @generated + */ + protected CalculationDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CALCULATION_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsModelLevelEvaluable() { + return (Boolean)eGet(SysMLPackage.Literals.FUNCTION__IS_MODEL_LEVEL_EVALUABLE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsModelLevelEvaluable(boolean newIsModelLevelEvaluable) { + eSet(SysMLPackage.Literals.FUNCTION__IS_MODEL_LEVEL_EVALUABLE, newIsModelLevelEvaluable); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getExpression() { + return (EList)eGet(SysMLPackage.Literals.FUNCTION__EXPRESSION, true); + } + + /** + * + * + * @generated + */ + @Override + public Feature getResult() { + return (Feature)eGet(SysMLPackage.Literals.FUNCTION__RESULT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setResult(Feature newResult) { + eSet(SysMLPackage.Literals.FUNCTION__RESULT, newResult); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getCalculation() { + return (EList)eGet(SysMLPackage.Literals.CALCULATION_DEFINITION__CALCULATION, true); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Function.class) { + switch (derivedFeatureID) { + case SysMLPackage.CALCULATION_DEFINITION__IS_MODEL_LEVEL_EVALUABLE: return SysMLPackage.FUNCTION__IS_MODEL_LEVEL_EVALUABLE; + case SysMLPackage.CALCULATION_DEFINITION__EXPRESSION: return SysMLPackage.FUNCTION__EXPRESSION; + case SysMLPackage.CALCULATION_DEFINITION__RESULT: return SysMLPackage.FUNCTION__RESULT; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Function.class) { + switch (baseFeatureID) { + case SysMLPackage.FUNCTION__IS_MODEL_LEVEL_EVALUABLE: return SysMLPackage.CALCULATION_DEFINITION__IS_MODEL_LEVEL_EVALUABLE; + case SysMLPackage.FUNCTION__EXPRESSION: return SysMLPackage.CALCULATION_DEFINITION__EXPRESSION; + case SysMLPackage.FUNCTION__RESULT: return SysMLPackage.CALCULATION_DEFINITION__RESULT; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //CalculationDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CalculationUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CalculationUsageImpl.java new file mode 100644 index 000000000..44838bf32 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CalculationUsageImpl.java @@ -0,0 +1,334 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Calculation Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.CalculationUsageImpl#isIsModelLevelEvaluable Is Model Level Evaluable}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CalculationUsageImpl#getFunction Function}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CalculationUsageImpl#getResult Result}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CalculationUsageImpl#getCalculationDefinition Calculation Definition}
  • + *
+ * + * @generated + */ +public class CalculationUsageImpl extends ActionUsageImpl implements CalculationUsage { + /** + * + * + * @generated + */ + protected CalculationUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CALCULATION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsModelLevelEvaluable() { + return (Boolean)eGet(SysMLPackage.Literals.EXPRESSION__IS_MODEL_LEVEL_EVALUABLE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsModelLevelEvaluable(boolean newIsModelLevelEvaluable) { + eSet(SysMLPackage.Literals.EXPRESSION__IS_MODEL_LEVEL_EVALUABLE, newIsModelLevelEvaluable); + } + + + /** + * + * + * @generated + */ + @Override + public Function getFunction() { + var sourceValue = this.getCalculationDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Function typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Function typedValue) { + return typedValue; + } + return null; + } + /** + * + * + * @generated + */ + @Override + public void setFunction(Function newFunction) { + eSet(SysMLPackage.Literals.EXPRESSION__FUNCTION, newFunction); + } + + /** + * + * + * @generated + */ + @Override + public Feature getResult() { + return (Feature)eGet(SysMLPackage.Literals.EXPRESSION__RESULT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setResult(Feature newResult) { + eSet(SysMLPackage.Literals.EXPRESSION__RESULT, newResult); + } + + /** + * + * + * @generated + */ + @Override + public Function getCalculationDefinition() { + return (Function)eGet(SysMLPackage.Literals.CALCULATION_USAGE__CALCULATION_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setCalculationDefinition(Function newCalculationDefinition) { + eSet(SysMLPackage.Literals.CALCULATION_USAGE__CALCULATION_DEFINITION, newCalculationDefinition); + } + + /** + * The cached invocation delegate for the '{@link #checkCondition(org.omg.sysml.model.sysml.Element) Check Condition}' operation. + * + * + * @see #checkCondition(org.omg.sysml.model.sysml.Element) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate CHECK_CONDITION_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.EXPRESSION___CHECK_CONDITION__ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean checkCondition(Element target) { + try { + return (Boolean)CHECK_CONDITION_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{target})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #evaluate(org.omg.sysml.model.sysml.Element) Evaluate}' operation. + * + * + * @see #evaluate(org.omg.sysml.model.sysml.Element) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate EVALUATE_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.EXPRESSION___EVALUATE__ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList evaluate(Element target) { + try { + return (EList)EVALUATE_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{target})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #modelLevelEvaluable(org.eclipse.emf.common.util.EList) Model Level Evaluable}' operation. + * + * + * @see #modelLevelEvaluable(org.eclipse.emf.common.util.EList) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate MODEL_LEVEL_EVALUABLE_ELIST__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST).getInvocationDelegate(); + + + /** + * + * + * @generated + */ + @Override + public boolean modelLevelEvaluable(EList visited) { + return false; + } + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Expression.class) { + switch (derivedFeatureID) { + case SysMLPackage.CALCULATION_USAGE__IS_MODEL_LEVEL_EVALUABLE: return SysMLPackage.EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + case SysMLPackage.CALCULATION_USAGE__FUNCTION: return SysMLPackage.EXPRESSION__FUNCTION; + case SysMLPackage.CALCULATION_USAGE__RESULT: return SysMLPackage.EXPRESSION__RESULT; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Expression.class) { + switch (baseFeatureID) { + case SysMLPackage.EXPRESSION__IS_MODEL_LEVEL_EVALUABLE: return SysMLPackage.CALCULATION_USAGE__IS_MODEL_LEVEL_EVALUABLE; + case SysMLPackage.EXPRESSION__FUNCTION: return SysMLPackage.CALCULATION_USAGE__FUNCTION; + case SysMLPackage.EXPRESSION__RESULT: return SysMLPackage.CALCULATION_USAGE__RESULT; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) { + if (baseClass == Expression.class) { + switch (baseOperationID) { + case SysMLPackage.EXPRESSION___CHECK_CONDITION__ELEMENT: return SysMLPackage.CALCULATION_USAGE___CHECK_CONDITION__ELEMENT; + case SysMLPackage.EXPRESSION___EVALUATE__ELEMENT: return SysMLPackage.CALCULATION_USAGE___EVALUATE__ELEMENT; + case SysMLPackage.EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST: return SysMLPackage.CALCULATION_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + default: return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + @SuppressWarnings("unchecked") + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.CALCULATION_USAGE___CHECK_CONDITION__ELEMENT: + return checkCondition((Element)arguments.get(0)); + case SysMLPackage.CALCULATION_USAGE___EVALUATE__ELEMENT: + return evaluate((Element)arguments.get(0)); + case SysMLPackage.CALCULATION_USAGE___MODEL_LEVEL_EVALUABLE__ELIST: + return modelLevelEvaluable((EList)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public EList getActionDefinition() { + var sourceValue = this.getCalculationDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Behavior typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Behavior typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //CalculationUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CaseDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CaseDefinitionImpl.java new file mode 100644 index 000000000..96f62a2e3 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CaseDefinitionImpl.java @@ -0,0 +1,118 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; + +/** + * + * An implementation of the model object 'Case Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.CaseDefinitionImpl#getActorParameter Actor Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CaseDefinitionImpl#getObjectiveRequirement Objective Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CaseDefinitionImpl#getSubjectParameter Subject Parameter}
  • + *
+ * + * @generated + */ +public class CaseDefinitionImpl extends CalculationDefinitionImpl implements CaseDefinition { + /** + * + * + * @generated + */ + protected CaseDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CASE_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getActorParameter() { + return (EList)eGet(SysMLPackage.Literals.CASE_DEFINITION__ACTOR_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public RequirementUsage getObjectiveRequirement() { + return (RequirementUsage)eGet(SysMLPackage.Literals.CASE_DEFINITION__OBJECTIVE_REQUIREMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setObjectiveRequirement(RequirementUsage newObjectiveRequirement) { + eSet(SysMLPackage.Literals.CASE_DEFINITION__OBJECTIVE_REQUIREMENT, newObjectiveRequirement); + } + + /** + * + * + * @generated + */ + @Override + public Usage getSubjectParameter() { + return (Usage)eGet(SysMLPackage.Literals.CASE_DEFINITION__SUBJECT_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSubjectParameter(Usage newSubjectParameter) { + eSet(SysMLPackage.Literals.CASE_DEFINITION__SUBJECT_PARAMETER, newSubjectParameter); + } + +} //CaseDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CaseUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CaseUsageImpl.java new file mode 100644 index 000000000..0fa925cab --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CaseUsageImpl.java @@ -0,0 +1,163 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; + +/** + * + * An implementation of the model object 'Case Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.CaseUsageImpl#getActorParameter Actor Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CaseUsageImpl#getCaseDefinition Case Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CaseUsageImpl#getObjectiveRequirement Objective Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CaseUsageImpl#getSubjectParameter Subject Parameter}
  • + *
+ * + * @generated + */ +public class CaseUsageImpl extends CalculationUsageImpl implements CaseUsage { + /** + * + * + * @generated + */ + protected CaseUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CASE_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getActorParameter() { + return (EList)eGet(SysMLPackage.Literals.CASE_USAGE__ACTOR_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public CaseDefinition getCaseDefinition() { + return (CaseDefinition)eGet(SysMLPackage.Literals.CASE_USAGE__CASE_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setCaseDefinition(CaseDefinition newCaseDefinition) { + eSet(SysMLPackage.Literals.CASE_USAGE__CASE_DEFINITION, newCaseDefinition); + } + + /** + * + * + * @generated + */ + @Override + public RequirementUsage getObjectiveRequirement() { + return (RequirementUsage)eGet(SysMLPackage.Literals.CASE_USAGE__OBJECTIVE_REQUIREMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setObjectiveRequirement(RequirementUsage newObjectiveRequirement) { + eSet(SysMLPackage.Literals.CASE_USAGE__OBJECTIVE_REQUIREMENT, newObjectiveRequirement); + } + + /** + * + * + * @generated + */ + @Override + public Usage getSubjectParameter() { + return (Usage)eGet(SysMLPackage.Literals.CASE_USAGE__SUBJECT_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSubjectParameter(Usage newSubjectParameter) { + eSet(SysMLPackage.Literals.CASE_USAGE__SUBJECT_PARAMETER, newSubjectParameter); + } + + /** + * + * + * @generated + */ + @Override + public Function getCalculationDefinition() { + var sourceValue = this.getCaseDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Function typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Function typedValue) { + return typedValue; + } + return null; + } + +} //CaseUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ClassImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ClassImpl.java new file mode 100644 index 000000000..2007fe573 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ClassImpl.java @@ -0,0 +1,53 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Class'. + * + * + * @generated + */ +public class ClassImpl extends ClassifierImpl implements org.omg.sysml.model.sysml.Class { + /** + * + * + * @generated + */ + protected ClassImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CLASS; + } + +} //ClassImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ClassifierImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ClassifierImpl.java new file mode 100644 index 000000000..a9773867e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ClassifierImpl.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.Subclassification; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Classifier'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ClassifierImpl#getOwnedSubclassification Owned Subclassification}
  • + *
+ * + * @generated + */ +public class ClassifierImpl extends TypeImpl implements Classifier { + /** + * + * + * @generated + */ + protected ClassifierImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CLASSIFIER; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedSubclassification() { + return (EList)eGet(SysMLPackage.Literals.CLASSIFIER__OWNED_SUBCLASSIFICATION, true); + } + +} //ClassifierImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CollectExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CollectExpressionImpl.java new file mode 100644 index 000000000..8bc40366a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CollectExpressionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.CollectExpression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Collect Expression'. + * + * + * @generated + */ +public class CollectExpressionImpl extends OperatorExpressionImpl implements CollectExpression { + /** + * + * + * @generated + */ + protected CollectExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.COLLECT_EXPRESSION; + } + +} //CollectExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CommentImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CommentImpl.java new file mode 100644 index 000000000..a59784cc5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CommentImpl.java @@ -0,0 +1,101 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Comment; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Comment'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.CommentImpl#getBody Body}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CommentImpl#getLocale Locale}
  • + *
+ * + * @generated + */ +public class CommentImpl extends AnnotatingElementImpl implements Comment { + /** + * + * + * @generated + */ + protected CommentImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.COMMENT; + } + + /** + * + * + * @generated + */ + @Override + public String getBody() { + return (String)eGet(SysMLPackage.Literals.COMMENT__BODY, true); + } + + /** + * + * + * @generated + */ + @Override + public void setBody(String newBody) { + eSet(SysMLPackage.Literals.COMMENT__BODY, newBody); + } + + /** + * + * + * @generated + */ + @Override + public String getLocale() { + return (String)eGet(SysMLPackage.Literals.COMMENT__LOCALE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setLocale(String newLocale) { + eSet(SysMLPackage.Literals.COMMENT__LOCALE, newLocale); + } + +} //CommentImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConcernDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConcernDefinitionImpl.java new file mode 100644 index 000000000..853c466fa --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConcernDefinitionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConcernDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Concern Definition'. + * + * + * @generated + */ +public class ConcernDefinitionImpl extends RequirementDefinitionImpl implements ConcernDefinition { + /** + * + * + * @generated + */ + protected ConcernDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONCERN_DEFINITION; + } + +} //ConcernDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConcernUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConcernUsageImpl.java new file mode 100644 index 000000000..abb68c7c5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConcernUsageImpl.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConcernDefinition; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Concern Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ConcernUsageImpl#getConcernDefinition Concern Definition}
  • + *
+ * + * @generated + */ +public class ConcernUsageImpl extends RequirementUsageImpl implements ConcernUsage { + /** + * + * + * @generated + */ + protected ConcernUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONCERN_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public ConcernDefinition getConcernDefinition() { + return (ConcernDefinition)eGet(SysMLPackage.Literals.CONCERN_USAGE__CONCERN_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setConcernDefinition(ConcernDefinition newConcernDefinition) { + eSet(SysMLPackage.Literals.CONCERN_USAGE__CONCERN_DEFINITION, newConcernDefinition); + } + + /** + * + * + * @generated + */ + @Override + public RequirementDefinition getRequirementDefinition() { + var sourceValue = this.getConcernDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof RequirementDefinition typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof RequirementDefinition typedValue) { + return typedValue; + } + return null; + } + +} //ConcernUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConjugatedPortDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConjugatedPortDefinitionImpl.java new file mode 100644 index 000000000..af7e02cb0 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConjugatedPortDefinitionImpl.java @@ -0,0 +1,169 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.model.sysml.Conjugation; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.PortConjugation; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Conjugated Port Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ConjugatedPortDefinitionImpl#getOriginalPortDefinition Original Port Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConjugatedPortDefinitionImpl#getOwnedPortConjugator Owned Port Conjugator}
  • + *
+ * + * @generated + */ +public class ConjugatedPortDefinitionImpl extends PortDefinitionImpl implements ConjugatedPortDefinition { + /** + * + * + * @generated + */ + protected ConjugatedPortDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONJUGATED_PORT_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public PortDefinition getOriginalPortDefinition() { + return (PortDefinition)eGet(SysMLPackage.Literals.CONJUGATED_PORT_DEFINITION__ORIGINAL_PORT_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOriginalPortDefinition(PortDefinition newOriginalPortDefinition) { + eSet(SysMLPackage.Literals.CONJUGATED_PORT_DEFINITION__ORIGINAL_PORT_DEFINITION, newOriginalPortDefinition); + } + + /** + * + * + * @generated + */ + @Override + public PortConjugation getOwnedPortConjugator() { + return (PortConjugation)eGet(SysMLPackage.Literals.CONJUGATED_PORT_DEFINITION__OWNED_PORT_CONJUGATOR, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedPortConjugator(PortConjugation newOwnedPortConjugator) { + eSet(SysMLPackage.Literals.CONJUGATED_PORT_DEFINITION__OWNED_PORT_CONJUGATOR, newOwnedPortConjugator); + } + + /** + * + * + * @generated + */ + @Override + public Namespace getOwningNamespace() { + var sourceValue = this.getOriginalPortDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Namespace typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Namespace typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Conjugation getOwnedConjugator() { + var sourceValue = this.getOwnedPortConjugator(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Conjugation typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Conjugation typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public String effectiveName() { + var originalPortDefinition = this.getOriginalPortDefinition(); + if (originalPortDefinition == null) { + return null; + } + var originalName = originalPortDefinition.getName(); + if (originalName == null) { + return null; + } + return "~" + originalName; + } + +} //ConjugatedPortDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConjugatedPortTypingImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConjugatedPortTypingImpl.java new file mode 100644 index 000000000..9f6623f1e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConjugatedPortTypingImpl.java @@ -0,0 +1,127 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.model.sysml.ConjugatedPortTyping; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Conjugated Port Typing'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ConjugatedPortTypingImpl#getConjugatedPortDefinition Conjugated Port Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConjugatedPortTypingImpl#getPortDefinition Port Definition}
  • + *
+ * + * @generated + */ +public class ConjugatedPortTypingImpl extends FeatureTypingImpl implements ConjugatedPortTyping { + /** + * + * + * @generated + */ + protected ConjugatedPortTypingImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONJUGATED_PORT_TYPING; + } + + /** + * + * + * @generated + */ + @Override + public ConjugatedPortDefinition getConjugatedPortDefinition() { + return (ConjugatedPortDefinition)eGet(SysMLPackage.Literals.CONJUGATED_PORT_TYPING__CONJUGATED_PORT_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setConjugatedPortDefinition(ConjugatedPortDefinition newConjugatedPortDefinition) { + eSet(SysMLPackage.Literals.CONJUGATED_PORT_TYPING__CONJUGATED_PORT_DEFINITION, newConjugatedPortDefinition); + } + + /** + * + * + * @generated + */ + @Override + public PortDefinition getPortDefinition() { + return (PortDefinition)eGet(SysMLPackage.Literals.CONJUGATED_PORT_TYPING__PORT_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPortDefinition(PortDefinition newPortDefinition) { + eSet(SysMLPackage.Literals.CONJUGATED_PORT_TYPING__PORT_DEFINITION, newPortDefinition); + } + + /** + * + * + * @generated + */ + @Override + public Type getType() { + var sourceValue = this.getConjugatedPortDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + +} //ConjugatedPortTypingImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConjugationImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConjugationImpl.java new file mode 100644 index 000000000..ab4adf090 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConjugationImpl.java @@ -0,0 +1,171 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Conjugation; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Conjugation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ConjugationImpl#getConjugatedType Conjugated Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConjugationImpl#getOriginalType Original Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConjugationImpl#getOwningType Owning Type}
  • + *
+ * + * @generated + */ +public class ConjugationImpl extends RelationshipImpl implements Conjugation { + /** + * + * + * @generated + */ + protected ConjugationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONJUGATION; + } + + /** + * + * + * @generated + */ + @Override + public Type getConjugatedType() { + return (Type)eGet(SysMLPackage.Literals.CONJUGATION__CONJUGATED_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setConjugatedType(Type newConjugatedType) { + eSet(SysMLPackage.Literals.CONJUGATION__CONJUGATED_TYPE, newConjugatedType); + } + + /** + * + * + * @generated + */ + @Override + public Type getOriginalType() { + return (Type)eGet(SysMLPackage.Literals.CONJUGATION__ORIGINAL_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOriginalType(Type newOriginalType) { + eSet(SysMLPackage.Literals.CONJUGATION__ORIGINAL_TYPE, newOriginalType); + } + + /** + * + * + * @generated + */ + @Override + public Type getOwningType() { + return (Type)eGet(SysMLPackage.Literals.CONJUGATION__OWNING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningType(Type newOwningType) { + eSet(SysMLPackage.Literals.CONJUGATION__OWNING_TYPE, newOwningType); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getConjugatedType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getOriginalType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //ConjugationImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectionDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectionDefinitionImpl.java new file mode 100644 index 000000000..076767a11 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectionDefinitionImpl.java @@ -0,0 +1,309 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.AssociationStructure; +import org.omg.sysml.model.sysml.ConnectionDefinition; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Relationship; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.Usage; + +/** + * + * An implementation of the model object 'Connection Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#isIsImplied Is Implied}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#getOwnedRelatedElement Owned Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#getOwningRelatedElement Owning Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#getRelatedElement Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#getSource Source}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#getTarget Target}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#getAssociationEnd Association End}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#getRelatedType Related Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#getSourceType Source Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#getTargetType Target Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionDefinitionImpl#getConnectionEnd Connection End}
  • + *
+ * + * @generated + */ +public class ConnectionDefinitionImpl extends PartDefinitionImpl implements ConnectionDefinition { + /** + * + * + * @generated + */ + protected ConnectionDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONNECTION_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsImplied() { + return (Boolean)eGet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsImplied(boolean newIsImplied) { + eSet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, newIsImplied); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedRelatedElement() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNED_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwningRelatedElement() { + return (Element)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningRelatedElement(Element newOwningRelatedElement) { + eSet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, newOwningRelatedElement); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRelatedElement() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getSource() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__SOURCE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTarget() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__TARGET, true); + } + + + /** + * + * + * @generated + */ + @Override + public EList getAssociationEnd() { + var sourceValue = this.getConnectionEnd(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Feature typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRelatedType() { + return (EList)eGet(SysMLPackage.Literals.ASSOCIATION__RELATED_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public Type getSourceType() { + return (Type)eGet(SysMLPackage.Literals.ASSOCIATION__SOURCE_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSourceType(Type newSourceType) { + eSet(SysMLPackage.Literals.ASSOCIATION__SOURCE_TYPE, newSourceType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTargetType() { + return (EList)eGet(SysMLPackage.Literals.ASSOCIATION__TARGET_TYPE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getConnectionEnd() { + return (EList)eGet(SysMLPackage.Literals.CONNECTION_DEFINITION__CONNECTION_END, true); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONNECTION_DEFINITION__IS_IMPLIED: return SysMLPackage.RELATIONSHIP__IS_IMPLIED; + case SysMLPackage.CONNECTION_DEFINITION__OWNED_RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__OWNED_RELATED_ELEMENT; + case SysMLPackage.CONNECTION_DEFINITION__OWNING_RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__OWNING_RELATED_ELEMENT; + case SysMLPackage.CONNECTION_DEFINITION__RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__RELATED_ELEMENT; + case SysMLPackage.CONNECTION_DEFINITION__SOURCE: return SysMLPackage.RELATIONSHIP__SOURCE; + case SysMLPackage.CONNECTION_DEFINITION__TARGET: return SysMLPackage.RELATIONSHIP__TARGET; + default: return -1; + } + } + if (baseClass == Association.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONNECTION_DEFINITION__ASSOCIATION_END: return SysMLPackage.ASSOCIATION__ASSOCIATION_END; + case SysMLPackage.CONNECTION_DEFINITION__RELATED_TYPE: return SysMLPackage.ASSOCIATION__RELATED_TYPE; + case SysMLPackage.CONNECTION_DEFINITION__SOURCE_TYPE: return SysMLPackage.ASSOCIATION__SOURCE_TYPE; + case SysMLPackage.CONNECTION_DEFINITION__TARGET_TYPE: return SysMLPackage.ASSOCIATION__TARGET_TYPE; + default: return -1; + } + } + if (baseClass == AssociationStructure.class) { + switch (derivedFeatureID) { + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case SysMLPackage.RELATIONSHIP__IS_IMPLIED: return SysMLPackage.CONNECTION_DEFINITION__IS_IMPLIED; + case SysMLPackage.RELATIONSHIP__OWNED_RELATED_ELEMENT: return SysMLPackage.CONNECTION_DEFINITION__OWNED_RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__OWNING_RELATED_ELEMENT: return SysMLPackage.CONNECTION_DEFINITION__OWNING_RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__RELATED_ELEMENT: return SysMLPackage.CONNECTION_DEFINITION__RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__SOURCE: return SysMLPackage.CONNECTION_DEFINITION__SOURCE; + case SysMLPackage.RELATIONSHIP__TARGET: return SysMLPackage.CONNECTION_DEFINITION__TARGET; + default: return -1; + } + } + if (baseClass == Association.class) { + switch (baseFeatureID) { + case SysMLPackage.ASSOCIATION__ASSOCIATION_END: return SysMLPackage.CONNECTION_DEFINITION__ASSOCIATION_END; + case SysMLPackage.ASSOCIATION__RELATED_TYPE: return SysMLPackage.CONNECTION_DEFINITION__RELATED_TYPE; + case SysMLPackage.ASSOCIATION__SOURCE_TYPE: return SysMLPackage.CONNECTION_DEFINITION__SOURCE_TYPE; + case SysMLPackage.ASSOCIATION__TARGET_TYPE: return SysMLPackage.CONNECTION_DEFINITION__TARGET_TYPE; + default: return -1; + } + } + if (baseClass == AssociationStructure.class) { + switch (baseFeatureID) { + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //ConnectionDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectionUsageImpl.java new file mode 100644 index 000000000..2671197a0 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectionUsageImpl.java @@ -0,0 +1,266 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.AssociationStructure; +import org.omg.sysml.model.sysml.ConnectionUsage; +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.OccurrenceDefinition; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.PartDefinition; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.PortionKind; +import org.omg.sysml.model.sysml.Structure; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Connection Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionUsageImpl#isIsIndividual Is Individual}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionUsageImpl#getPortionKind Portion Kind}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionUsageImpl#getIndividualDefinition Individual Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionUsageImpl#getOccurrenceDefinition Occurrence Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionUsageImpl#getItemDefinition Item Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionUsageImpl#getPartDefinition Part Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectionUsageImpl#getConnectionDefinition Connection Definition}
  • + *
+ * + * @generated + */ +public class ConnectionUsageImpl extends ConnectorAsUsageImpl implements ConnectionUsage { + /** + * + * + * @generated + */ + protected ConnectionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONNECTION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsIndividual() { + return (Boolean)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__IS_INDIVIDUAL, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsIndividual(boolean newIsIndividual) { + eSet(SysMLPackage.Literals.OCCURRENCE_USAGE__IS_INDIVIDUAL, newIsIndividual); + } + + /** + * + * + * @generated + */ + @Override + public PortionKind getPortionKind() { + return (PortionKind)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__PORTION_KIND, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPortionKind(PortionKind newPortionKind) { + eSet(SysMLPackage.Literals.OCCURRENCE_USAGE__PORTION_KIND, newPortionKind); + } + + /** + * + * + * @generated + */ + @Override + public OccurrenceDefinition getIndividualDefinition() { + return (OccurrenceDefinition)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIndividualDefinition(OccurrenceDefinition newIndividualDefinition) { + eSet(SysMLPackage.Literals.OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION, newIndividualDefinition); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOccurrenceDefinition() { + return (EList)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__OCCURRENCE_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getItemDefinition() { + return (EList)eGet(SysMLPackage.Literals.ITEM_USAGE__ITEM_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getPartDefinition() { + return (EList)eGet(SysMLPackage.Literals.PART_USAGE__PART_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getConnectionDefinition() { + return (EList)eGet(SysMLPackage.Literals.CONNECTION_USAGE__CONNECTION_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == OccurrenceUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONNECTION_USAGE__IS_INDIVIDUAL: return SysMLPackage.OCCURRENCE_USAGE__IS_INDIVIDUAL; + case SysMLPackage.CONNECTION_USAGE__PORTION_KIND: return SysMLPackage.OCCURRENCE_USAGE__PORTION_KIND; + case SysMLPackage.CONNECTION_USAGE__INDIVIDUAL_DEFINITION: return SysMLPackage.OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION; + case SysMLPackage.CONNECTION_USAGE__OCCURRENCE_DEFINITION: return SysMLPackage.OCCURRENCE_USAGE__OCCURRENCE_DEFINITION; + default: return -1; + } + } + if (baseClass == ItemUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONNECTION_USAGE__ITEM_DEFINITION: return SysMLPackage.ITEM_USAGE__ITEM_DEFINITION; + default: return -1; + } + } + if (baseClass == PartUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONNECTION_USAGE__PART_DEFINITION: return SysMLPackage.PART_USAGE__PART_DEFINITION; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == OccurrenceUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.OCCURRENCE_USAGE__IS_INDIVIDUAL: return SysMLPackage.CONNECTION_USAGE__IS_INDIVIDUAL; + case SysMLPackage.OCCURRENCE_USAGE__PORTION_KIND: return SysMLPackage.CONNECTION_USAGE__PORTION_KIND; + case SysMLPackage.OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION: return SysMLPackage.CONNECTION_USAGE__INDIVIDUAL_DEFINITION; + case SysMLPackage.OCCURRENCE_USAGE__OCCURRENCE_DEFINITION: return SysMLPackage.CONNECTION_USAGE__OCCURRENCE_DEFINITION; + default: return -1; + } + } + if (baseClass == ItemUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.ITEM_USAGE__ITEM_DEFINITION: return SysMLPackage.CONNECTION_USAGE__ITEM_DEFINITION; + default: return -1; + } + } + if (baseClass == PartUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.PART_USAGE__PART_DEFINITION: return SysMLPackage.CONNECTION_USAGE__PART_DEFINITION; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public EList getAssociation() { + var sourceValue = this.getConnectionDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Association typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Association typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //ConnectionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectorAsUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectorAsUsageImpl.java new file mode 100644 index 000000000..7e2308d14 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectorAsUsageImpl.java @@ -0,0 +1,311 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.Connector; +import org.omg.sysml.model.sysml.ConnectorAsUsage; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Relationship; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Connector As Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#isIsImplied Is Implied}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getOwnedRelatedElement Owned Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getOwningRelatedElement Owning Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getRelatedElement Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getSource Source}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getTarget Target}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getAssociation Association}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getConnectorEnd Connector End}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getDefaultFeaturingType Default Featuring Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getRelatedFeature Related Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getSourceFeature Source Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorAsUsageImpl#getTargetFeature Target Feature}
  • + *
+ * + * @generated + */ +public abstract class ConnectorAsUsageImpl extends UsageImpl implements ConnectorAsUsage { + /** + * + * + * @generated + */ + protected ConnectorAsUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONNECTOR_AS_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsImplied() { + return (Boolean)eGet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsImplied(boolean newIsImplied) { + eSet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, newIsImplied); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedRelatedElement() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNED_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwningRelatedElement() { + return (Element)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningRelatedElement(Element newOwningRelatedElement) { + eSet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, newOwningRelatedElement); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRelatedElement() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getSource() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__SOURCE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTarget() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__TARGET, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAssociation() { + return (EList)eGet(SysMLPackage.Literals.CONNECTOR__ASSOCIATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getConnectorEnd() { + return (EList)eGet(SysMLPackage.Literals.CONNECTOR__CONNECTOR_END, true); + } + + /** + * + * + * @generated + */ + @Override + public Type getDefaultFeaturingType() { + return (Type)eGet(SysMLPackage.Literals.CONNECTOR__DEFAULT_FEATURING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setDefaultFeaturingType(Type newDefaultFeaturingType) { + eSet(SysMLPackage.Literals.CONNECTOR__DEFAULT_FEATURING_TYPE, newDefaultFeaturingType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRelatedFeature() { + return (EList)eGet(SysMLPackage.Literals.CONNECTOR__RELATED_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public Feature getSourceFeature() { + return (Feature)eGet(SysMLPackage.Literals.CONNECTOR__SOURCE_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSourceFeature(Feature newSourceFeature) { + eSet(SysMLPackage.Literals.CONNECTOR__SOURCE_FEATURE, newSourceFeature); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTargetFeature() { + return (EList)eGet(SysMLPackage.Literals.CONNECTOR__TARGET_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONNECTOR_AS_USAGE__IS_IMPLIED: return SysMLPackage.RELATIONSHIP__IS_IMPLIED; + case SysMLPackage.CONNECTOR_AS_USAGE__OWNED_RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__OWNED_RELATED_ELEMENT; + case SysMLPackage.CONNECTOR_AS_USAGE__OWNING_RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__OWNING_RELATED_ELEMENT; + case SysMLPackage.CONNECTOR_AS_USAGE__RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__RELATED_ELEMENT; + case SysMLPackage.CONNECTOR_AS_USAGE__SOURCE: return SysMLPackage.RELATIONSHIP__SOURCE; + case SysMLPackage.CONNECTOR_AS_USAGE__TARGET: return SysMLPackage.RELATIONSHIP__TARGET; + default: return -1; + } + } + if (baseClass == Connector.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONNECTOR_AS_USAGE__ASSOCIATION: return SysMLPackage.CONNECTOR__ASSOCIATION; + case SysMLPackage.CONNECTOR_AS_USAGE__CONNECTOR_END: return SysMLPackage.CONNECTOR__CONNECTOR_END; + case SysMLPackage.CONNECTOR_AS_USAGE__DEFAULT_FEATURING_TYPE: return SysMLPackage.CONNECTOR__DEFAULT_FEATURING_TYPE; + case SysMLPackage.CONNECTOR_AS_USAGE__RELATED_FEATURE: return SysMLPackage.CONNECTOR__RELATED_FEATURE; + case SysMLPackage.CONNECTOR_AS_USAGE__SOURCE_FEATURE: return SysMLPackage.CONNECTOR__SOURCE_FEATURE; + case SysMLPackage.CONNECTOR_AS_USAGE__TARGET_FEATURE: return SysMLPackage.CONNECTOR__TARGET_FEATURE; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case SysMLPackage.RELATIONSHIP__IS_IMPLIED: return SysMLPackage.CONNECTOR_AS_USAGE__IS_IMPLIED; + case SysMLPackage.RELATIONSHIP__OWNED_RELATED_ELEMENT: return SysMLPackage.CONNECTOR_AS_USAGE__OWNED_RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__OWNING_RELATED_ELEMENT: return SysMLPackage.CONNECTOR_AS_USAGE__OWNING_RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__RELATED_ELEMENT: return SysMLPackage.CONNECTOR_AS_USAGE__RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__SOURCE: return SysMLPackage.CONNECTOR_AS_USAGE__SOURCE; + case SysMLPackage.RELATIONSHIP__TARGET: return SysMLPackage.CONNECTOR_AS_USAGE__TARGET; + default: return -1; + } + } + if (baseClass == Connector.class) { + switch (baseFeatureID) { + case SysMLPackage.CONNECTOR__ASSOCIATION: return SysMLPackage.CONNECTOR_AS_USAGE__ASSOCIATION; + case SysMLPackage.CONNECTOR__CONNECTOR_END: return SysMLPackage.CONNECTOR_AS_USAGE__CONNECTOR_END; + case SysMLPackage.CONNECTOR__DEFAULT_FEATURING_TYPE: return SysMLPackage.CONNECTOR_AS_USAGE__DEFAULT_FEATURING_TYPE; + case SysMLPackage.CONNECTOR__RELATED_FEATURE: return SysMLPackage.CONNECTOR_AS_USAGE__RELATED_FEATURE; + case SysMLPackage.CONNECTOR__SOURCE_FEATURE: return SysMLPackage.CONNECTOR_AS_USAGE__SOURCE_FEATURE; + case SysMLPackage.CONNECTOR__TARGET_FEATURE: return SysMLPackage.CONNECTOR_AS_USAGE__TARGET_FEATURE; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //ConnectorAsUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectorImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectorImpl.java new file mode 100644 index 000000000..9c463354e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConnectorImpl.java @@ -0,0 +1,368 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.Connector; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Relationship; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Connector'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#isIsImplied Is Implied}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getOwnedRelatedElement Owned Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getOwningRelatedElement Owning Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getRelatedElement Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getSource Source}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getTarget Target}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getAssociation Association}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getConnectorEnd Connector End}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getDefaultFeaturingType Default Featuring Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getRelatedFeature Related Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getSourceFeature Source Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConnectorImpl#getTargetFeature Target Feature}
  • + *
+ * + * @generated + */ +public class ConnectorImpl extends FeatureImpl implements Connector { + /** + * + * + * @generated + */ + protected ConnectorImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONNECTOR; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsImplied() { + return (Boolean)eGet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsImplied(boolean newIsImplied) { + eSet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, newIsImplied); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedRelatedElement() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNED_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwningRelatedElement() { + return (Element)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningRelatedElement(Element newOwningRelatedElement) { + eSet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, newOwningRelatedElement); + } + + + /** + * + * + * @generated + */ + @Override + public EList getRelatedElement() { + var sourceValue = this.getRelatedFeature(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getSourceFeature(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getTargetFeature(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAssociation() { + return (EList)eGet(SysMLPackage.Literals.CONNECTOR__ASSOCIATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getConnectorEnd() { + return (EList)eGet(SysMLPackage.Literals.CONNECTOR__CONNECTOR_END, true); + } + + /** + * + * + * @generated + */ + @Override + public Type getDefaultFeaturingType() { + return (Type)eGet(SysMLPackage.Literals.CONNECTOR__DEFAULT_FEATURING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setDefaultFeaturingType(Type newDefaultFeaturingType) { + eSet(SysMLPackage.Literals.CONNECTOR__DEFAULT_FEATURING_TYPE, newDefaultFeaturingType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRelatedFeature() { + return (EList)eGet(SysMLPackage.Literals.CONNECTOR__RELATED_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public Feature getSourceFeature() { + return (Feature)eGet(SysMLPackage.Literals.CONNECTOR__SOURCE_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSourceFeature(Feature newSourceFeature) { + eSet(SysMLPackage.Literals.CONNECTOR__SOURCE_FEATURE, newSourceFeature); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTargetFeature() { + return (EList)eGet(SysMLPackage.Literals.CONNECTOR__TARGET_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONNECTOR__IS_IMPLIED: return SysMLPackage.RELATIONSHIP__IS_IMPLIED; + case SysMLPackage.CONNECTOR__OWNED_RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__OWNED_RELATED_ELEMENT; + case SysMLPackage.CONNECTOR__OWNING_RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__OWNING_RELATED_ELEMENT; + case SysMLPackage.CONNECTOR__RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__RELATED_ELEMENT; + case SysMLPackage.CONNECTOR__SOURCE: return SysMLPackage.RELATIONSHIP__SOURCE; + case SysMLPackage.CONNECTOR__TARGET: return SysMLPackage.RELATIONSHIP__TARGET; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case SysMLPackage.RELATIONSHIP__IS_IMPLIED: return SysMLPackage.CONNECTOR__IS_IMPLIED; + case SysMLPackage.RELATIONSHIP__OWNED_RELATED_ELEMENT: return SysMLPackage.CONNECTOR__OWNED_RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__OWNING_RELATED_ELEMENT: return SysMLPackage.CONNECTOR__OWNING_RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__RELATED_ELEMENT: return SysMLPackage.CONNECTOR__RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__SOURCE: return SysMLPackage.CONNECTOR__SOURCE; + case SysMLPackage.RELATIONSHIP__TARGET: return SysMLPackage.CONNECTOR__TARGET; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public EList getType() { + var sourceValue = this.getAssociation(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Type typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getEndFeature() { + var sourceValue = this.getConnectorEnd(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Feature typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //ConnectorImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConstraintDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConstraintDefinitionImpl.java new file mode 100644 index 000000000..900ce3b28 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConstraintDefinitionImpl.java @@ -0,0 +1,205 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.ConstraintDefinition; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Constraint Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintDefinitionImpl#getParameter Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintDefinitionImpl#getStep Step}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintDefinitionImpl#isIsModelLevelEvaluable Is Model Level Evaluable}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintDefinitionImpl#getExpression Expression}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintDefinitionImpl#getResult Result}
  • + *
+ * + * @generated + */ +public class ConstraintDefinitionImpl extends OccurrenceDefinitionImpl implements ConstraintDefinition { + /** + * + * + * @generated + */ + protected ConstraintDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONSTRAINT_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParameter() { + return (EList)eGet(SysMLPackage.Literals.BEHAVIOR__PARAMETER, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getStep() { + return (EList)eGet(SysMLPackage.Literals.BEHAVIOR__STEP, true); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsModelLevelEvaluable() { + return (Boolean)eGet(SysMLPackage.Literals.FUNCTION__IS_MODEL_LEVEL_EVALUABLE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsModelLevelEvaluable(boolean newIsModelLevelEvaluable) { + eSet(SysMLPackage.Literals.FUNCTION__IS_MODEL_LEVEL_EVALUABLE, newIsModelLevelEvaluable); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getExpression() { + return (EList)eGet(SysMLPackage.Literals.FUNCTION__EXPRESSION, true); + } + + /** + * + * + * @generated + */ + @Override + public Feature getResult() { + return (Feature)eGet(SysMLPackage.Literals.FUNCTION__RESULT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setResult(Feature newResult) { + eSet(SysMLPackage.Literals.FUNCTION__RESULT, newResult); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Behavior.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONSTRAINT_DEFINITION__PARAMETER: return SysMLPackage.BEHAVIOR__PARAMETER; + case SysMLPackage.CONSTRAINT_DEFINITION__STEP: return SysMLPackage.BEHAVIOR__STEP; + default: return -1; + } + } + if (baseClass == Function.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONSTRAINT_DEFINITION__IS_MODEL_LEVEL_EVALUABLE: return SysMLPackage.FUNCTION__IS_MODEL_LEVEL_EVALUABLE; + case SysMLPackage.CONSTRAINT_DEFINITION__EXPRESSION: return SysMLPackage.FUNCTION__EXPRESSION; + case SysMLPackage.CONSTRAINT_DEFINITION__RESULT: return SysMLPackage.FUNCTION__RESULT; + default: return -1; + } + } + if (baseClass == Predicate.class) { + switch (derivedFeatureID) { + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Behavior.class) { + switch (baseFeatureID) { + case SysMLPackage.BEHAVIOR__PARAMETER: return SysMLPackage.CONSTRAINT_DEFINITION__PARAMETER; + case SysMLPackage.BEHAVIOR__STEP: return SysMLPackage.CONSTRAINT_DEFINITION__STEP; + default: return -1; + } + } + if (baseClass == Function.class) { + switch (baseFeatureID) { + case SysMLPackage.FUNCTION__IS_MODEL_LEVEL_EVALUABLE: return SysMLPackage.CONSTRAINT_DEFINITION__IS_MODEL_LEVEL_EVALUABLE; + case SysMLPackage.FUNCTION__EXPRESSION: return SysMLPackage.CONSTRAINT_DEFINITION__EXPRESSION; + case SysMLPackage.FUNCTION__RESULT: return SysMLPackage.CONSTRAINT_DEFINITION__RESULT; + default: return -1; + } + } + if (baseClass == Predicate.class) { + switch (baseFeatureID) { + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //ConstraintDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConstraintUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConstraintUsageImpl.java new file mode 100644 index 000000000..d1d525f56 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConstraintUsageImpl.java @@ -0,0 +1,395 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.BooleanExpression; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Constraint Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintUsageImpl#getBehavior Behavior}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintUsageImpl#getParameter Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintUsageImpl#isIsModelLevelEvaluable Is Model Level Evaluable}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintUsageImpl#getFunction Function}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintUsageImpl#getResult Result}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintUsageImpl#getPredicate Predicate}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ConstraintUsageImpl#getConstraintDefinition Constraint Definition}
  • + *
+ * + * @generated + */ +public class ConstraintUsageImpl extends OccurrenceUsageImpl implements ConstraintUsage { + /** + * + * + * @generated + */ + protected ConstraintUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONSTRAINT_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getBehavior() { + return (EList)eGet(SysMLPackage.Literals.STEP__BEHAVIOR, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParameter() { + return (EList)eGet(SysMLPackage.Literals.STEP__PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsModelLevelEvaluable() { + return (Boolean)eGet(SysMLPackage.Literals.EXPRESSION__IS_MODEL_LEVEL_EVALUABLE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsModelLevelEvaluable(boolean newIsModelLevelEvaluable) { + eSet(SysMLPackage.Literals.EXPRESSION__IS_MODEL_LEVEL_EVALUABLE, newIsModelLevelEvaluable); + } + + /** + * + * + * @generated + */ + @Override + public Function getFunction() { + return (Function)eGet(SysMLPackage.Literals.EXPRESSION__FUNCTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setFunction(Function newFunction) { + eSet(SysMLPackage.Literals.EXPRESSION__FUNCTION, newFunction); + } + + /** + * + * + * @generated + */ + @Override + public Feature getResult() { + return (Feature)eGet(SysMLPackage.Literals.EXPRESSION__RESULT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setResult(Feature newResult) { + eSet(SysMLPackage.Literals.EXPRESSION__RESULT, newResult); + } + + + /** + * + * + * @generated + */ + @Override + public Predicate getPredicate() { + var sourceValue = this.getConstraintDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Predicate typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Predicate typedValue) { + return typedValue; + } + return null; + } + /** + * + * + * @generated + */ + @Override + public void setPredicate(Predicate newPredicate) { + eSet(SysMLPackage.Literals.BOOLEAN_EXPRESSION__PREDICATE, newPredicate); + } + + /** + * + * + * @generated + */ + @Override + public Predicate getConstraintDefinition() { + return (Predicate)eGet(SysMLPackage.Literals.CONSTRAINT_USAGE__CONSTRAINT_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setConstraintDefinition(Predicate newConstraintDefinition) { + eSet(SysMLPackage.Literals.CONSTRAINT_USAGE__CONSTRAINT_DEFINITION, newConstraintDefinition); + } + + /** + * The cached invocation delegate for the '{@link #checkCondition(org.omg.sysml.model.sysml.Element) Check Condition}' operation. + * + * + * @see #checkCondition(org.omg.sysml.model.sysml.Element) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate CHECK_CONDITION_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.EXPRESSION___CHECK_CONDITION__ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean checkCondition(Element target) { + try { + return (Boolean)CHECK_CONDITION_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{target})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #evaluate(org.omg.sysml.model.sysml.Element) Evaluate}' operation. + * + * + * @see #evaluate(org.omg.sysml.model.sysml.Element) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate EVALUATE_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.EXPRESSION___EVALUATE__ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList evaluate(Element target) { + try { + return (EList)EVALUATE_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{target})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #modelLevelEvaluable(org.eclipse.emf.common.util.EList) Model Level Evaluable}' operation. + * + * + * @see #modelLevelEvaluable(org.eclipse.emf.common.util.EList) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate MODEL_LEVEL_EVALUABLE_ELIST__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST).getInvocationDelegate(); + + + /** + * + * + * @generated + */ + @Override + public boolean modelLevelEvaluable(EList visited) { + return false; + } + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Step.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONSTRAINT_USAGE__BEHAVIOR: return SysMLPackage.STEP__BEHAVIOR; + case SysMLPackage.CONSTRAINT_USAGE__PARAMETER: return SysMLPackage.STEP__PARAMETER; + default: return -1; + } + } + if (baseClass == Expression.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONSTRAINT_USAGE__IS_MODEL_LEVEL_EVALUABLE: return SysMLPackage.EXPRESSION__IS_MODEL_LEVEL_EVALUABLE; + case SysMLPackage.CONSTRAINT_USAGE__FUNCTION: return SysMLPackage.EXPRESSION__FUNCTION; + case SysMLPackage.CONSTRAINT_USAGE__RESULT: return SysMLPackage.EXPRESSION__RESULT; + default: return -1; + } + } + if (baseClass == BooleanExpression.class) { + switch (derivedFeatureID) { + case SysMLPackage.CONSTRAINT_USAGE__PREDICATE: return SysMLPackage.BOOLEAN_EXPRESSION__PREDICATE; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Step.class) { + switch (baseFeatureID) { + case SysMLPackage.STEP__BEHAVIOR: return SysMLPackage.CONSTRAINT_USAGE__BEHAVIOR; + case SysMLPackage.STEP__PARAMETER: return SysMLPackage.CONSTRAINT_USAGE__PARAMETER; + default: return -1; + } + } + if (baseClass == Expression.class) { + switch (baseFeatureID) { + case SysMLPackage.EXPRESSION__IS_MODEL_LEVEL_EVALUABLE: return SysMLPackage.CONSTRAINT_USAGE__IS_MODEL_LEVEL_EVALUABLE; + case SysMLPackage.EXPRESSION__FUNCTION: return SysMLPackage.CONSTRAINT_USAGE__FUNCTION; + case SysMLPackage.EXPRESSION__RESULT: return SysMLPackage.CONSTRAINT_USAGE__RESULT; + default: return -1; + } + } + if (baseClass == BooleanExpression.class) { + switch (baseFeatureID) { + case SysMLPackage.BOOLEAN_EXPRESSION__PREDICATE: return SysMLPackage.CONSTRAINT_USAGE__PREDICATE; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) { + if (baseClass == Step.class) { + switch (baseOperationID) { + default: return -1; + } + } + if (baseClass == Expression.class) { + switch (baseOperationID) { + case SysMLPackage.EXPRESSION___CHECK_CONDITION__ELEMENT: return SysMLPackage.CONSTRAINT_USAGE___CHECK_CONDITION__ELEMENT; + case SysMLPackage.EXPRESSION___EVALUATE__ELEMENT: return SysMLPackage.CONSTRAINT_USAGE___EVALUATE__ELEMENT; + case SysMLPackage.EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST: return SysMLPackage.CONSTRAINT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST; + default: return -1; + } + } + if (baseClass == BooleanExpression.class) { + switch (baseOperationID) { + default: return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + @SuppressWarnings("unchecked") + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.CONSTRAINT_USAGE___CHECK_CONDITION__ELEMENT: + return checkCondition((Element)arguments.get(0)); + case SysMLPackage.CONSTRAINT_USAGE___EVALUATE__ELEMENT: + return evaluate((Element)arguments.get(0)); + case SysMLPackage.CONSTRAINT_USAGE___MODEL_LEVEL_EVALUABLE__ELIST: + return modelLevelEvaluable((EList)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + +} //ConstraintUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConstructorExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConstructorExpressionImpl.java new file mode 100644 index 000000000..db2b73e96 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ConstructorExpressionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConstructorExpression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Constructor Expression'. + * + * + * @generated + */ +public class ConstructorExpressionImpl extends InstantiationExpressionImpl implements ConstructorExpression { + /** + * + * + * @generated + */ + protected ConstructorExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONSTRUCTOR_EXPRESSION; + } + +} //ConstructorExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ControlNodeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ControlNodeImpl.java new file mode 100644 index 000000000..123586785 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ControlNodeImpl.java @@ -0,0 +1,101 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.ControlNode; +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Control Node'. + * + * + * @generated + */ +public abstract class ControlNodeImpl extends ActionUsageImpl implements ControlNode { + /** + * + * + * @generated + */ + protected ControlNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CONTROL_NODE; + } + + /** + * The cached invocation delegate for the '{@link #multiplicityHasBounds(org.omg.sysml.model.sysml.Multiplicity, int, int) Multiplicity Has Bounds}' operation. + * + * + * @see #multiplicityHasBounds(org.omg.sysml.model.sysml.Multiplicity, int, int) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate MULTIPLICITY_HAS_BOUNDS_MULTIPLICITY_INT_INT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.CONTROL_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean multiplicityHasBounds(Multiplicity mult, int lower, int upper) { + try { + return (Boolean)MULTIPLICITY_HAS_BOUNDS_MULTIPLICITY_INT_INT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(3, new Object[]{mult, lower, upper})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.CONTROL_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT: + return multiplicityHasBounds((Multiplicity)arguments.get(0), (Integer)arguments.get(1), (Integer)arguments.get(2)); + } + return super.eInvoke(operationID, arguments); + } + +} //ControlNodeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CrossSubsettingImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CrossSubsettingImpl.java new file mode 100644 index 000000000..c0dfd8e7d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/CrossSubsettingImpl.java @@ -0,0 +1,171 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.CrossSubsetting; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Cross Subsetting'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.CrossSubsettingImpl#getCrossedFeature Crossed Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.CrossSubsettingImpl#getCrossingFeature Crossing Feature}
  • + *
+ * + * @generated + */ +public class CrossSubsettingImpl extends SubsettingImpl implements CrossSubsetting { + /** + * + * + * @generated + */ + protected CrossSubsettingImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.CROSS_SUBSETTING; + } + + /** + * + * + * @generated + */ + @Override + public Feature getCrossedFeature() { + return (Feature)eGet(SysMLPackage.Literals.CROSS_SUBSETTING__CROSSED_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setCrossedFeature(Feature newCrossedFeature) { + eSet(SysMLPackage.Literals.CROSS_SUBSETTING__CROSSED_FEATURE, newCrossedFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getCrossingFeature() { + return (Feature)eGet(SysMLPackage.Literals.CROSS_SUBSETTING__CROSSING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setCrossingFeature(Feature newCrossingFeature) { + eSet(SysMLPackage.Literals.CROSS_SUBSETTING__CROSSING_FEATURE, newCrossingFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getSubsettedFeature() { + var sourceValue = this.getCrossedFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwningFeature() { + var sourceValue = this.getCrossingFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Feature getSubsettingFeature() { + var sourceValue = this.getCrossingFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //CrossSubsettingImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DataTypeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DataTypeImpl.java new file mode 100644 index 000000000..555a24f1f --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DataTypeImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.DataType; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Data Type'. + * + * + * @generated + */ +public class DataTypeImpl extends ClassifierImpl implements DataType { + /** + * + * + * @generated + */ + protected DataTypeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.DATA_TYPE; + } + +} //DataTypeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DecisionNodeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DecisionNodeImpl.java new file mode 100644 index 000000000..5e57c45b6 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DecisionNodeImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.DecisionNode; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Decision Node'. + * + * + * @generated + */ +public class DecisionNodeImpl extends ControlNodeImpl implements DecisionNode { + /** + * + * + * @generated + */ + protected DecisionNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.DECISION_NODE; + } + +} //DecisionNodeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DefinitionImpl.java new file mode 100644 index 000000000..5c5484a74 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DefinitionImpl.java @@ -0,0 +1,482 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.AllocationUsage; +import org.omg.sysml.model.sysml.AnalysisCaseUsage; +import org.omg.sysml.model.sysml.AttributeUsage; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.ConnectorAsUsage; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.EnumerationUsage; +import org.omg.sysml.model.sysml.FlowUsage; +import org.omg.sysml.model.sysml.InterfaceUsage; +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.MetadataUsage; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TransitionUsage; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.UseCaseUsage; +import org.omg.sysml.model.sysml.VariantMembership; +import org.omg.sysml.model.sysml.VerificationCaseUsage; +import org.omg.sysml.model.sysml.ViewUsage; +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * + * An implementation of the model object 'Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#isIsVariation Is Variation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getDirectedUsage Directed Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedAction Owned Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedAllocation Owned Allocation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedAnalysisCase Owned Analysis Case}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedAttribute Owned Attribute}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedCalculation Owned Calculation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedCase Owned Case}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedConcern Owned Concern}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedConnection Owned Connection}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedConstraint Owned Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedEnumeration Owned Enumeration}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedFlow Owned Flow}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedInterface Owned Interface}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedItem Owned Item}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedMetadata Owned Metadata}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedOccurrence Owned Occurrence}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedPart Owned Part}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedPort Owned Port}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedReference Owned Reference}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedRendering Owned Rendering}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedRequirement Owned Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedState Owned State}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedTransition Owned Transition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedUsage Owned Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedUseCase Owned Use Case}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedVerificationCase Owned Verification Case}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedView Owned View}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getOwnedViewpoint Owned Viewpoint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getUsage Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getVariant Variant}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DefinitionImpl#getVariantMembership Variant Membership}
  • + *
+ * + * @generated + */ +public class DefinitionImpl extends ClassifierImpl implements Definition { + /** + * + * + * @generated + */ + protected DefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsVariation() { + return (Boolean)eGet(SysMLPackage.Literals.DEFINITION__IS_VARIATION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsVariation(boolean newIsVariation) { + eSet(SysMLPackage.Literals.DEFINITION__IS_VARIATION, newIsVariation); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getDirectedUsage() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__DIRECTED_USAGE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedAction() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_ACTION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedAllocation() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_ALLOCATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedAnalysisCase() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_ANALYSIS_CASE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedAttribute() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_ATTRIBUTE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedCalculation() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_CALCULATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedCase() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_CASE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedConcern() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_CONCERN, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedConnection() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_CONNECTION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedConstraint() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_CONSTRAINT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedEnumeration() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_ENUMERATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedFlow() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_FLOW, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedInterface() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_INTERFACE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedItem() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_ITEM, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedMetadata() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_METADATA, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedOccurrence() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_OCCURRENCE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedPart() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_PART, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedPort() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_PORT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedReference() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_REFERENCE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedRendering() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_RENDERING, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedRequirement() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_REQUIREMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedState() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_STATE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedTransition() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_TRANSITION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedUsage() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_USAGE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedUseCase() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_USE_CASE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedVerificationCase() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_VERIFICATION_CASE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedView() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_VIEW, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedViewpoint() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__OWNED_VIEWPOINT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getUsage() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__USAGE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getVariant() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__VARIANT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getVariantMembership() { + return (EList)eGet(SysMLPackage.Literals.DEFINITION__VARIANT_MEMBERSHIP, true); + } + +} //DefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DependencyImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DependencyImpl.java new file mode 100644 index 000000000..fc8f65efc --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DependencyImpl.java @@ -0,0 +1,131 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Dependency; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Dependency'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.DependencyImpl#getClient Client}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DependencyImpl#getSupplier Supplier}
  • + *
+ * + * @generated + */ +public class DependencyImpl extends RelationshipImpl implements Dependency { + /** + * + * + * @generated + */ + protected DependencyImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.DEPENDENCY; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getClient() { + return (EList)eGet(SysMLPackage.Literals.DEPENDENCY__CLIENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getSupplier() { + return (EList)eGet(SysMLPackage.Literals.DEPENDENCY__SUPPLIER, true); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getClient(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getSupplier(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //DependencyImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DifferencingImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DifferencingImpl.java new file mode 100644 index 000000000..10dbebbba --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DifferencingImpl.java @@ -0,0 +1,150 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Differencing; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Differencing'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.DifferencingImpl#getDifferencingType Differencing Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DifferencingImpl#getTypeDifferenced Type Differenced}
  • + *
+ * + * @generated + */ +public class DifferencingImpl extends RelationshipImpl implements Differencing { + /** + * + * + * @generated + */ + protected DifferencingImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.DIFFERENCING; + } + + /** + * + * + * @generated + */ + @Override + public Type getDifferencingType() { + return (Type)eGet(SysMLPackage.Literals.DIFFERENCING__DIFFERENCING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setDifferencingType(Type newDifferencingType) { + eSet(SysMLPackage.Literals.DIFFERENCING__DIFFERENCING_TYPE, newDifferencingType); + } + + /** + * + * + * @generated + */ + @Override + public Type getTypeDifferenced() { + return (Type)eGet(SysMLPackage.Literals.DIFFERENCING__TYPE_DIFFERENCED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTypeDifferenced(Type newTypeDifferenced) { + eSet(SysMLPackage.Literals.DIFFERENCING__TYPE_DIFFERENCED, newTypeDifferenced); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getDifferencingType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getTypeDifferenced(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //DifferencingImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DisjoiningImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DisjoiningImpl.java new file mode 100644 index 000000000..b6a01d2f1 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DisjoiningImpl.java @@ -0,0 +1,171 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Disjoining; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Disjoining'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.DisjoiningImpl#getDisjoiningType Disjoining Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DisjoiningImpl#getOwningType Owning Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.DisjoiningImpl#getTypeDisjoined Type Disjoined}
  • + *
+ * + * @generated + */ +public class DisjoiningImpl extends RelationshipImpl implements Disjoining { + /** + * + * + * @generated + */ + protected DisjoiningImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.DISJOINING; + } + + /** + * + * + * @generated + */ + @Override + public Type getDisjoiningType() { + return (Type)eGet(SysMLPackage.Literals.DISJOINING__DISJOINING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setDisjoiningType(Type newDisjoiningType) { + eSet(SysMLPackage.Literals.DISJOINING__DISJOINING_TYPE, newDisjoiningType); + } + + /** + * + * + * @generated + */ + @Override + public Type getOwningType() { + return (Type)eGet(SysMLPackage.Literals.DISJOINING__OWNING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningType(Type newOwningType) { + eSet(SysMLPackage.Literals.DISJOINING__OWNING_TYPE, newOwningType); + } + + /** + * + * + * @generated + */ + @Override + public Type getTypeDisjoined() { + return (Type)eGet(SysMLPackage.Literals.DISJOINING__TYPE_DISJOINED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTypeDisjoined(Type newTypeDisjoined) { + eSet(SysMLPackage.Literals.DISJOINING__TYPE_DISJOINED, newTypeDisjoined); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getDisjoiningType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getTypeDisjoined(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //DisjoiningImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DocumentationImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DocumentationImpl.java new file mode 100644 index 000000000..3f654fb62 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/DocumentationImpl.java @@ -0,0 +1,106 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Documentation; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Documentation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.DocumentationImpl#getDocumentedElement Documented Element}
  • + *
+ * + * @generated + */ +public class DocumentationImpl extends CommentImpl implements Documentation { + /** + * + * + * @generated + */ + protected DocumentationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.DOCUMENTATION; + } + + /** + * + * + * @generated + */ + @Override + public Element getDocumentedElement() { + return (Element)eGet(SysMLPackage.Literals.DOCUMENTATION__DOCUMENTED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setDocumentedElement(Element newDocumentedElement) { + eSet(SysMLPackage.Literals.DOCUMENTATION__DOCUMENTED_ELEMENT, newDocumentedElement); + } + + /** + * + * + * @generated + */ + @Override + public EList getAnnotatedElement() { + var sourceValue = this.getDocumentedElement(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //DocumentationImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ElementFilterMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ElementFilterMembershipImpl.java new file mode 100644 index 000000000..e76d9aa79 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ElementFilterMembershipImpl.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.ElementFilterMembership; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Element Filter Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ElementFilterMembershipImpl#getCondition Condition}
  • + *
+ * + * @generated + */ +public class ElementFilterMembershipImpl extends OwningMembershipImpl implements ElementFilterMembership { + /** + * + * + * @generated + */ + protected ElementFilterMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ELEMENT_FILTER_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public Expression getCondition() { + return (Expression)eGet(SysMLPackage.Literals.ELEMENT_FILTER_MEMBERSHIP__CONDITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setCondition(Expression newCondition) { + eSet(SysMLPackage.Literals.ELEMENT_FILTER_MEMBERSHIP__CONDITION, newCondition); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwnedMemberElement() { + var sourceValue = this.getCondition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Element typedValue) { + return typedValue; + } + return null; + } + +} //ElementFilterMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ElementImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ElementImpl.java new file mode 100644 index 000000000..27da32e15 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ElementImpl.java @@ -0,0 +1,554 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.Documentation; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.OwningMembership; +import org.omg.sysml.model.sysml.Relationship; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TextualRepresentation; + +/** + * + * An implementation of the model object 'Element'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getAliasIds Alias Ids}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getDeclaredName Declared Name}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getDeclaredShortName Declared Short Name}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getElementId Element Id}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#isIsImpliedIncluded Is Implied Included}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#isIsLibraryElement Is Library Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getName Name}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getQualifiedName Qualified Name}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getShortName Short Name}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getDocumentation Documentation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getOwnedAnnotation Owned Annotation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getOwnedElement Owned Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getOwnedRelationship Owned Relationship}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getOwner Owner}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getOwningMembership Owning Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getOwningNamespace Owning Namespace}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getOwningRelationship Owning Relationship}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ElementImpl#getTextualRepresentation Textual Representation}
  • + *
+ * + * @generated + */ +public abstract class ElementImpl extends MinimalEObjectImpl.Container implements Element { + /** + * + * + * @generated + */ + protected ElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ELEMENT; + } + + /** + * + * + * @generated + */ + @Override + protected int eStaticFeatureCount() { + return 0; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAliasIds() { + return (EList)eGet(SysMLPackage.Literals.ELEMENT__ALIAS_IDS, true); + } + + /** + * + * + * @generated + */ + @Override + public String getDeclaredName() { + return (String)eGet(SysMLPackage.Literals.ELEMENT__DECLARED_NAME, true); + } + + /** + * + * + * @generated + */ + @Override + public void setDeclaredName(String newDeclaredName) { + eSet(SysMLPackage.Literals.ELEMENT__DECLARED_NAME, newDeclaredName); + } + + /** + * + * + * @generated + */ + @Override + public String getDeclaredShortName() { + return (String)eGet(SysMLPackage.Literals.ELEMENT__DECLARED_SHORT_NAME, true); + } + + /** + * + * + * @generated + */ + @Override + public void setDeclaredShortName(String newDeclaredShortName) { + eSet(SysMLPackage.Literals.ELEMENT__DECLARED_SHORT_NAME, newDeclaredShortName); + } + + /** + * + * + * @generated + */ + @Override + public String getElementId() { + return (String)eGet(SysMLPackage.Literals.ELEMENT__ELEMENT_ID, true); + } + + /** + * + * + * @generated + */ + @Override + public void setElementId(String newElementId) { + eSet(SysMLPackage.Literals.ELEMENT__ELEMENT_ID, newElementId); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsImpliedIncluded() { + return (Boolean)eGet(SysMLPackage.Literals.ELEMENT__IS_IMPLIED_INCLUDED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsImpliedIncluded(boolean newIsImpliedIncluded) { + eSet(SysMLPackage.Literals.ELEMENT__IS_IMPLIED_INCLUDED, newIsImpliedIncluded); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsLibraryElement() { + return (Boolean)eGet(SysMLPackage.Literals.ELEMENT__IS_LIBRARY_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsLibraryElement(boolean newIsLibraryElement) { + eSet(SysMLPackage.Literals.ELEMENT__IS_LIBRARY_ELEMENT, newIsLibraryElement); + } + + /** + * + * + * @generated + */ + @Override + public String getName() { + return (String)eGet(SysMLPackage.Literals.ELEMENT__NAME, true); + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) { + eSet(SysMLPackage.Literals.ELEMENT__NAME, newName); + } + + /** + * + * + * @generated + */ + @Override + public String getQualifiedName() { + return (String)eGet(SysMLPackage.Literals.ELEMENT__QUALIFIED_NAME, true); + } + + /** + * + * + * @generated + */ + @Override + public void setQualifiedName(String newQualifiedName) { + eSet(SysMLPackage.Literals.ELEMENT__QUALIFIED_NAME, newQualifiedName); + } + + /** + * + * + * @generated + */ + @Override + public String getShortName() { + return (String)eGet(SysMLPackage.Literals.ELEMENT__SHORT_NAME, true); + } + + /** + * + * + * @generated + */ + @Override + public void setShortName(String newShortName) { + eSet(SysMLPackage.Literals.ELEMENT__SHORT_NAME, newShortName); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getDocumentation() { + return (EList)eGet(SysMLPackage.Literals.ELEMENT__DOCUMENTATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedAnnotation() { + return (EList)eGet(SysMLPackage.Literals.ELEMENT__OWNED_ANNOTATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedElement() { + return (EList)eGet(SysMLPackage.Literals.ELEMENT__OWNED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedRelationship() { + return (EList)eGet(SysMLPackage.Literals.ELEMENT__OWNED_RELATIONSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwner() { + return (Element)eGet(SysMLPackage.Literals.ELEMENT__OWNER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwner(Element newOwner) { + eSet(SysMLPackage.Literals.ELEMENT__OWNER, newOwner); + } + + /** + * + * + * @generated + */ + @Override + public OwningMembership getOwningMembership() { + return (OwningMembership)eGet(SysMLPackage.Literals.ELEMENT__OWNING_MEMBERSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningMembership(OwningMembership newOwningMembership) { + eSet(SysMLPackage.Literals.ELEMENT__OWNING_MEMBERSHIP, newOwningMembership); + } + + /** + * + * + * @generated + */ + @Override + public Namespace getOwningNamespace() { + return (Namespace)eGet(SysMLPackage.Literals.ELEMENT__OWNING_NAMESPACE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningNamespace(Namespace newOwningNamespace) { + eSet(SysMLPackage.Literals.ELEMENT__OWNING_NAMESPACE, newOwningNamespace); + } + + /** + * + * + * @generated + */ + @Override + public Relationship getOwningRelationship() { + return (Relationship)eGet(SysMLPackage.Literals.ELEMENT__OWNING_RELATIONSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningRelationship(Relationship newOwningRelationship) { + eSet(SysMLPackage.Literals.ELEMENT__OWNING_RELATIONSHIP, newOwningRelationship); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTextualRepresentation() { + return (EList)eGet(SysMLPackage.Literals.ELEMENT__TEXTUAL_REPRESENTATION, true); + } + + /** + * The cached invocation delegate for the '{@link #effectiveName() Effective Name}' operation. + * + * + * @see #effectiveName() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate EFFECTIVE_NAME__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ELEMENT___EFFECTIVE_NAME).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public String effectiveName() { + try { + return (String)EFFECTIVE_NAME__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #effectiveShortName() Effective Short Name}' operation. + * + * + * @see #effectiveShortName() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate EFFECTIVE_SHORT_NAME__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ELEMENT___EFFECTIVE_SHORT_NAME).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public String effectiveShortName() { + try { + return (String)EFFECTIVE_SHORT_NAME__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #escapedName() Escaped Name}' operation. + * + * + * @see #escapedName() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ESCAPED_NAME__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ELEMENT___ESCAPED_NAME).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public String escapedName() { + try { + return (String)ESCAPED_NAME__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #libraryNamespace() Library Namespace}' operation. + * + * + * @see #libraryNamespace() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate LIBRARY_NAMESPACE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ELEMENT___LIBRARY_NAMESPACE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Namespace libraryNamespace() { + try { + return (Namespace)LIBRARY_NAMESPACE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #path() Path}' operation. + * + * + * @see #path() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate PATH__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ELEMENT___PATH).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public String path() { + try { + return (String)PATH__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.ELEMENT___EFFECTIVE_NAME: + return effectiveName(); + case SysMLPackage.ELEMENT___EFFECTIVE_SHORT_NAME: + return effectiveShortName(); + case SysMLPackage.ELEMENT___ESCAPED_NAME: + return escapedName(); + case SysMLPackage.ELEMENT___LIBRARY_NAMESPACE: + return libraryNamespace(); + case SysMLPackage.ELEMENT___PATH: + return path(); + } + return super.eInvoke(operationID, arguments); + } + +} //ElementImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EndFeatureMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EndFeatureMembershipImpl.java new file mode 100644 index 000000000..4e553587a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EndFeatureMembershipImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.EndFeatureMembership; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'End Feature Membership'. + * + * + * @generated + */ +public class EndFeatureMembershipImpl extends FeatureMembershipImpl implements EndFeatureMembership { + /** + * + * + * @generated + */ + protected EndFeatureMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.END_FEATURE_MEMBERSHIP; + } + +} //EndFeatureMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EnumerationDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EnumerationDefinitionImpl.java new file mode 100644 index 000000000..e0dd30a6a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EnumerationDefinitionImpl.java @@ -0,0 +1,98 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.EnumerationDefinition; +import org.omg.sysml.model.sysml.EnumerationUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; + +/** + * + * An implementation of the model object 'Enumeration Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.EnumerationDefinitionImpl#getEnumeratedValue Enumerated Value}
  • + *
+ * + * @generated + */ +public class EnumerationDefinitionImpl extends AttributeDefinitionImpl implements EnumerationDefinition { + /** + * + * + * @generated + */ + protected EnumerationDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ENUMERATION_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getEnumeratedValue() { + return (EList)eGet(SysMLPackage.Literals.ENUMERATION_DEFINITION__ENUMERATED_VALUE, true); + } + + /** + * + * + * @generated + */ + @Override + public EList getVariant() { + var sourceValue = this.getEnumeratedValue(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Usage typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Usage typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //EnumerationDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EnumerationUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EnumerationUsageImpl.java new file mode 100644 index 000000000..7c1e2012a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EnumerationUsageImpl.java @@ -0,0 +1,107 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.DataType; +import org.omg.sysml.model.sysml.EnumerationDefinition; +import org.omg.sysml.model.sysml.EnumerationUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Enumeration Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.EnumerationUsageImpl#getEnumerationDefinition Enumeration Definition}
  • + *
+ * + * @generated + */ +public class EnumerationUsageImpl extends AttributeUsageImpl implements EnumerationUsage { + /** + * + * + * @generated + */ + protected EnumerationUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ENUMERATION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public EnumerationDefinition getEnumerationDefinition() { + return (EnumerationDefinition)eGet(SysMLPackage.Literals.ENUMERATION_USAGE__ENUMERATION_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setEnumerationDefinition(EnumerationDefinition newEnumerationDefinition) { + eSet(SysMLPackage.Literals.ENUMERATION_USAGE__ENUMERATION_DEFINITION, newEnumerationDefinition); + } + + /** + * + * + * @generated + */ + @Override + public EList getAttributeDefinition() { + var sourceValue = this.getEnumerationDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof DataType typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof DataType typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //EnumerationUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EventOccurrenceUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EventOccurrenceUsageImpl.java new file mode 100644 index 000000000..3122c5a95 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/EventOccurrenceUsageImpl.java @@ -0,0 +1,81 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.EventOccurrenceUsage; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Event Occurrence Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.EventOccurrenceUsageImpl#getEventOccurrence Event Occurrence}
  • + *
+ * + * @generated + */ +public class EventOccurrenceUsageImpl extends OccurrenceUsageImpl implements EventOccurrenceUsage { + /** + * + * + * @generated + */ + protected EventOccurrenceUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.EVENT_OCCURRENCE_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public OccurrenceUsage getEventOccurrence() { + return (OccurrenceUsage)eGet(SysMLPackage.Literals.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setEventOccurrence(OccurrenceUsage newEventOccurrence) { + eSet(SysMLPackage.Literals.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE, newEventOccurrence); + } + +} //EventOccurrenceUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ExhibitStateUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ExhibitStateUsageImpl.java new file mode 100644 index 000000000..4929c32f8 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ExhibitStateUsageImpl.java @@ -0,0 +1,184 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.EventOccurrenceUsage; +import org.omg.sysml.model.sysml.ExhibitStateUsage; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.PerformActionUsage; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Exhibit State Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ExhibitStateUsageImpl#getEventOccurrence Event Occurrence}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ExhibitStateUsageImpl#getPerformedAction Performed Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ExhibitStateUsageImpl#getExhibitedState Exhibited State}
  • + *
+ * + * @generated + */ +public class ExhibitStateUsageImpl extends StateUsageImpl implements ExhibitStateUsage { + /** + * + * + * @generated + */ + protected ExhibitStateUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.EXHIBIT_STATE_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public OccurrenceUsage getEventOccurrence() { + return (OccurrenceUsage)eGet(SysMLPackage.Literals.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setEventOccurrence(OccurrenceUsage newEventOccurrence) { + eSet(SysMLPackage.Literals.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE, newEventOccurrence); + } + + + /** + * + * + * @generated + */ + @Override + public ActionUsage getPerformedAction() { + var sourceValue = this.getExhibitedState(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof ActionUsage typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof ActionUsage typedValue) { + return typedValue; + } + return null; + } + /** + * + * + * @generated + */ + @Override + public void setPerformedAction(ActionUsage newPerformedAction) { + eSet(SysMLPackage.Literals.PERFORM_ACTION_USAGE__PERFORMED_ACTION, newPerformedAction); + } + + /** + * + * + * @generated + */ + @Override + public StateUsage getExhibitedState() { + return (StateUsage)eGet(SysMLPackage.Literals.EXHIBIT_STATE_USAGE__EXHIBITED_STATE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setExhibitedState(StateUsage newExhibitedState) { + eSet(SysMLPackage.Literals.EXHIBIT_STATE_USAGE__EXHIBITED_STATE, newExhibitedState); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == EventOccurrenceUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.EXHIBIT_STATE_USAGE__EVENT_OCCURRENCE: return SysMLPackage.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE; + default: return -1; + } + } + if (baseClass == PerformActionUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.EXHIBIT_STATE_USAGE__PERFORMED_ACTION: return SysMLPackage.PERFORM_ACTION_USAGE__PERFORMED_ACTION; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == EventOccurrenceUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE: return SysMLPackage.EXHIBIT_STATE_USAGE__EVENT_OCCURRENCE; + default: return -1; + } + } + if (baseClass == PerformActionUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.PERFORM_ACTION_USAGE__PERFORMED_ACTION: return SysMLPackage.EXHIBIT_STATE_USAGE__PERFORMED_ACTION; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //ExhibitStateUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ExposeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ExposeImpl.java new file mode 100644 index 000000000..e6be345fd --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ExposeImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Expose; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Expose'. + * + * + * @generated + */ +public abstract class ExposeImpl extends ImportImpl implements Expose { + /** + * + * + * @generated + */ + protected ExposeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.EXPOSE; + } + +} //ExposeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ExpressionImpl.java new file mode 100644 index 000000000..6b62d1755 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ExpressionImpl.java @@ -0,0 +1,250 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Expression'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ExpressionImpl#isIsModelLevelEvaluable Is Model Level Evaluable}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ExpressionImpl#getFunction Function}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ExpressionImpl#getResult Result}
  • + *
+ * + * @generated + */ +public class ExpressionImpl extends StepImpl implements Expression { + /** + * + * + * @generated + */ + protected ExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsModelLevelEvaluable() { + return (Boolean)eGet(SysMLPackage.Literals.EXPRESSION__IS_MODEL_LEVEL_EVALUABLE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsModelLevelEvaluable(boolean newIsModelLevelEvaluable) { + eSet(SysMLPackage.Literals.EXPRESSION__IS_MODEL_LEVEL_EVALUABLE, newIsModelLevelEvaluable); + } + + /** + * + * + * @generated + */ + @Override + public Function getFunction() { + return (Function)eGet(SysMLPackage.Literals.EXPRESSION__FUNCTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setFunction(Function newFunction) { + eSet(SysMLPackage.Literals.EXPRESSION__FUNCTION, newFunction); + } + + /** + * + * + * @generated + */ + @Override + public Feature getResult() { + return (Feature)eGet(SysMLPackage.Literals.EXPRESSION__RESULT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setResult(Feature newResult) { + eSet(SysMLPackage.Literals.EXPRESSION__RESULT, newResult); + } + + /** + * The cached invocation delegate for the '{@link #checkCondition(org.omg.sysml.model.sysml.Element) Check Condition}' operation. + * + * + * @see #checkCondition(org.omg.sysml.model.sysml.Element) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate CHECK_CONDITION_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.EXPRESSION___CHECK_CONDITION__ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean checkCondition(Element target) { + try { + return (Boolean)CHECK_CONDITION_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{target})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #evaluate(org.omg.sysml.model.sysml.Element) Evaluate}' operation. + * + * + * @see #evaluate(org.omg.sysml.model.sysml.Element) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate EVALUATE_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.EXPRESSION___EVALUATE__ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList evaluate(Element target) { + try { + return (EList)EVALUATE_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{target})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #modelLevelEvaluable(org.eclipse.emf.common.util.EList) Model Level Evaluable}' operation. + * + * + * @see #modelLevelEvaluable(org.eclipse.emf.common.util.EList) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate MODEL_LEVEL_EVALUABLE_ELIST__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean modelLevelEvaluable(EList visited) { + try { + return (Boolean)MODEL_LEVEL_EVALUABLE_ELIST__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{visited})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + @SuppressWarnings("unchecked") + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.EXPRESSION___CHECK_CONDITION__ELEMENT: + return checkCondition((Element)arguments.get(0)); + case SysMLPackage.EXPRESSION___EVALUATE__ELEMENT: + return evaluate((Element)arguments.get(0)); + case SysMLPackage.EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST: + return modelLevelEvaluable((EList)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public EList getBehavior() { + var sourceValue = this.getFunction(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Behavior typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Behavior typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //ExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureChainExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureChainExpressionImpl.java new file mode 100644 index 000000000..a74e03d10 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureChainExpressionImpl.java @@ -0,0 +1,126 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChainExpression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Feature Chain Expression'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureChainExpressionImpl#getTargetFeature Target Feature}
  • + *
+ * + * @generated + */ +public class FeatureChainExpressionImpl extends OperatorExpressionImpl implements FeatureChainExpression { + /** + * + * + * @generated + */ + protected FeatureChainExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FEATURE_CHAIN_EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public Feature getTargetFeature() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_CHAIN_EXPRESSION__TARGET_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTargetFeature(Feature newTargetFeature) { + eSet(SysMLPackage.Literals.FEATURE_CHAIN_EXPRESSION__TARGET_FEATURE, newTargetFeature); + } + + /** + * The cached invocation delegate for the '{@link #sourceTargetFeature() Source Target Feature}' operation. + * + * + * @see #sourceTargetFeature() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate SOURCE_TARGET_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE_CHAIN_EXPRESSION___SOURCE_TARGET_FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Feature sourceTargetFeature() { + try { + return (Feature)SOURCE_TARGET_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.FEATURE_CHAIN_EXPRESSION___SOURCE_TARGET_FEATURE: + return sourceTargetFeature(); + } + return super.eInvoke(operationID, arguments); + } + +} //FeatureChainExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureChainingImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureChainingImpl.java new file mode 100644 index 000000000..f3758ffe5 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureChainingImpl.java @@ -0,0 +1,150 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChaining; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Feature Chaining'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureChainingImpl#getChainingFeature Chaining Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureChainingImpl#getFeatureChained Feature Chained}
  • + *
+ * + * @generated + */ +public class FeatureChainingImpl extends RelationshipImpl implements FeatureChaining { + /** + * + * + * @generated + */ + protected FeatureChainingImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FEATURE_CHAINING; + } + + /** + * + * + * @generated + */ + @Override + public Feature getChainingFeature() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_CHAINING__CHAINING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setChainingFeature(Feature newChainingFeature) { + eSet(SysMLPackage.Literals.FEATURE_CHAINING__CHAINING_FEATURE, newChainingFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getFeatureChained() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_CHAINING__FEATURE_CHAINED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setFeatureChained(Feature newFeatureChained) { + eSet(SysMLPackage.Literals.FEATURE_CHAINING__FEATURE_CHAINED, newFeatureChained); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getChainingFeature(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getFeatureChained(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //FeatureChainingImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureImpl.java new file mode 100644 index 000000000..b77e6c86d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureImpl.java @@ -0,0 +1,935 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.CrossSubsetting; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChaining; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.FeatureInverting; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.FeatureTyping; +import org.omg.sysml.model.sysml.Redefinition; +import org.omg.sysml.model.sysml.ReferenceSubsetting; +import org.omg.sysml.model.sysml.Subsetting; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.TypeFeaturing; + +/** + * + * An implementation of the model object 'Feature'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getDirection Direction}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#isIsComposite Is Composite}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#isIsConstant Is Constant}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#isIsDerived Is Derived}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#isIsEnd Is End}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#isIsNonunique Is Nonunique}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#isIsOrdered Is Ordered}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#isIsPortion Is Portion}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#isIsUnique Is Unique}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#isIsVariable Is Variable}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getChainingFeature Chaining Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getCrossFeature Cross Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getEndOwningType End Owning Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getFeatureTarget Feature Target}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getFeaturingType Featuring Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getOwnedCrossSubsetting Owned Cross Subsetting}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getOwnedFeatureChaining Owned Feature Chaining}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getOwnedFeatureInverting Owned Feature Inverting}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getOwnedRedefinition Owned Redefinition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getOwnedReferenceSubsetting Owned Reference Subsetting}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getOwnedSubsetting Owned Subsetting}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getOwnedTypeFeaturing Owned Type Featuring}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getOwnedTyping Owned Typing}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getOwningFeatureMembership Owning Feature Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getOwningType Owning Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureImpl#getType Type}
  • + *
+ * + * @generated + */ +public class FeatureImpl extends TypeImpl implements Feature { + /** + * + * + * @generated + */ + protected FeatureImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FEATURE; + } + + /** + * + * + * @generated + */ + @Override + public FeatureDirectionKind getDirection() { + return (FeatureDirectionKind)eGet(SysMLPackage.Literals.FEATURE__DIRECTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setDirection(FeatureDirectionKind newDirection) { + eSet(SysMLPackage.Literals.FEATURE__DIRECTION, newDirection); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsComposite() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE__IS_COMPOSITE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsComposite(boolean newIsComposite) { + eSet(SysMLPackage.Literals.FEATURE__IS_COMPOSITE, newIsComposite); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsConstant() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE__IS_CONSTANT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsConstant(boolean newIsConstant) { + eSet(SysMLPackage.Literals.FEATURE__IS_CONSTANT, newIsConstant); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsDerived() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE__IS_DERIVED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsDerived(boolean newIsDerived) { + eSet(SysMLPackage.Literals.FEATURE__IS_DERIVED, newIsDerived); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsEnd() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE__IS_END, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsEnd(boolean newIsEnd) { + eSet(SysMLPackage.Literals.FEATURE__IS_END, newIsEnd); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsNonunique() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE__IS_NONUNIQUE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsNonunique(boolean newIsNonunique) { + eSet(SysMLPackage.Literals.FEATURE__IS_NONUNIQUE, newIsNonunique); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsOrdered() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE__IS_ORDERED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsOrdered(boolean newIsOrdered) { + eSet(SysMLPackage.Literals.FEATURE__IS_ORDERED, newIsOrdered); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsPortion() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE__IS_PORTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsPortion(boolean newIsPortion) { + eSet(SysMLPackage.Literals.FEATURE__IS_PORTION, newIsPortion); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsUnique() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE__IS_UNIQUE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsUnique(boolean newIsUnique) { + eSet(SysMLPackage.Literals.FEATURE__IS_UNIQUE, newIsUnique); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsVariable() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE__IS_VARIABLE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsVariable(boolean newIsVariable) { + eSet(SysMLPackage.Literals.FEATURE__IS_VARIABLE, newIsVariable); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getChainingFeature() { + return (EList)eGet(SysMLPackage.Literals.FEATURE__CHAINING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public Feature getCrossFeature() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE__CROSS_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setCrossFeature(Feature newCrossFeature) { + eSet(SysMLPackage.Literals.FEATURE__CROSS_FEATURE, newCrossFeature); + } + + /** + * + * + * @generated + */ + @Override + public Type getEndOwningType() { + return (Type)eGet(SysMLPackage.Literals.FEATURE__END_OWNING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setEndOwningType(Type newEndOwningType) { + eSet(SysMLPackage.Literals.FEATURE__END_OWNING_TYPE, newEndOwningType); + } + + /** + * + * + * @generated + */ + @Override + public Feature getFeatureTarget() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE__FEATURE_TARGET, true); + } + + /** + * + * + * @generated + */ + @Override + public void setFeatureTarget(Feature newFeatureTarget) { + eSet(SysMLPackage.Literals.FEATURE__FEATURE_TARGET, newFeatureTarget); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getFeaturingType() { + return (EList)eGet(SysMLPackage.Literals.FEATURE__FEATURING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public CrossSubsetting getOwnedCrossSubsetting() { + return (CrossSubsetting)eGet(SysMLPackage.Literals.FEATURE__OWNED_CROSS_SUBSETTING, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedCrossSubsetting(CrossSubsetting newOwnedCrossSubsetting) { + eSet(SysMLPackage.Literals.FEATURE__OWNED_CROSS_SUBSETTING, newOwnedCrossSubsetting); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedFeatureChaining() { + return (EList)eGet(SysMLPackage.Literals.FEATURE__OWNED_FEATURE_CHAINING, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedFeatureInverting() { + return (EList)eGet(SysMLPackage.Literals.FEATURE__OWNED_FEATURE_INVERTING, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedRedefinition() { + return (EList)eGet(SysMLPackage.Literals.FEATURE__OWNED_REDEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public ReferenceSubsetting getOwnedReferenceSubsetting() { + return (ReferenceSubsetting)eGet(SysMLPackage.Literals.FEATURE__OWNED_REFERENCE_SUBSETTING, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedReferenceSubsetting(ReferenceSubsetting newOwnedReferenceSubsetting) { + eSet(SysMLPackage.Literals.FEATURE__OWNED_REFERENCE_SUBSETTING, newOwnedReferenceSubsetting); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedSubsetting() { + return (EList)eGet(SysMLPackage.Literals.FEATURE__OWNED_SUBSETTING, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedTypeFeaturing() { + return (EList)eGet(SysMLPackage.Literals.FEATURE__OWNED_TYPE_FEATURING, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedTyping() { + return (EList)eGet(SysMLPackage.Literals.FEATURE__OWNED_TYPING, true); + } + + /** + * + * + * @generated + */ + @Override + public FeatureMembership getOwningFeatureMembership() { + return (FeatureMembership)eGet(SysMLPackage.Literals.FEATURE__OWNING_FEATURE_MEMBERSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningFeatureMembership(FeatureMembership newOwningFeatureMembership) { + eSet(SysMLPackage.Literals.FEATURE__OWNING_FEATURE_MEMBERSHIP, newOwningFeatureMembership); + } + + /** + * + * + * @generated + */ + @Override + public Type getOwningType() { + return (Type)eGet(SysMLPackage.Literals.FEATURE__OWNING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningType(Type newOwningType) { + eSet(SysMLPackage.Literals.FEATURE__OWNING_TYPE, newOwningType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getType() { + return (EList)eGet(SysMLPackage.Literals.FEATURE__TYPE, true); + } + + /** + * The cached invocation delegate for the '{@link #allRedefinedFeatures() All Redefined Features}' operation. + * + * + * @see #allRedefinedFeatures() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_REDEFINED_FEATURES__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___ALL_REDEFINED_FEATURES).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allRedefinedFeatures() { + try { + return (EList)ALL_REDEFINED_FEATURES__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #asCartesianProduct() As Cartesian Product}' operation. + * + * + * @see #asCartesianProduct() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate AS_CARTESIAN_PRODUCT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___AS_CARTESIAN_PRODUCT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList asCartesianProduct() { + try { + return (EList)AS_CARTESIAN_PRODUCT__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #canAccess(org.omg.sysml.model.sysml.Feature) Can Access}' operation. + * + * + * @see #canAccess(org.omg.sysml.model.sysml.Feature) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate CAN_ACCESS_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___CAN_ACCESS__FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean canAccess(Feature feature) { + try { + return (Boolean)CAN_ACCESS_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{feature})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #directionFor(org.omg.sysml.model.sysml.Type) Direction For}' operation. + * + * + * @see #directionFor(org.omg.sysml.model.sysml.Type) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate DIRECTION_FOR_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___DIRECTION_FOR__TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public FeatureDirectionKind directionFor(Type type) { + try { + return (FeatureDirectionKind)DIRECTION_FOR_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{type})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isCartesianProduct() Is Cartesian Product}' operation. + * + * + * @see #isCartesianProduct() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_CARTESIAN_PRODUCT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___IS_CARTESIAN_PRODUCT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isCartesianProduct() { + try { + return (Boolean)IS_CARTESIAN_PRODUCT__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isFeaturedWithin(org.omg.sysml.model.sysml.Type) Is Featured Within}' operation. + * + * + * @see #isFeaturedWithin(org.omg.sysml.model.sysml.Type) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_FEATURED_WITHIN_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___IS_FEATURED_WITHIN__TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isFeaturedWithin(Type type) { + try { + return (Boolean)IS_FEATURED_WITHIN_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{type})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isFeaturingType(org.omg.sysml.model.sysml.Type) Is Featuring Type}' operation. + * + * + * @see #isFeaturingType(org.omg.sysml.model.sysml.Type) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_FEATURING_TYPE_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___IS_FEATURING_TYPE__TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isFeaturingType(Type type) { + try { + return (Boolean)IS_FEATURING_TYPE_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{type})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isOwnedCrossFeature() Is Owned Cross Feature}' operation. + * + * + * @see #isOwnedCrossFeature() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_OWNED_CROSS_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___IS_OWNED_CROSS_FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isOwnedCrossFeature() { + try { + return (Boolean)IS_OWNED_CROSS_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #namingFeature() Naming Feature}' operation. + * + * + * @see #namingFeature() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate NAMING_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___NAMING_FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Feature namingFeature() { + try { + return (Feature)NAMING_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #ownedCrossFeature() Owned Cross Feature}' operation. + * + * + * @see #ownedCrossFeature() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate OWNED_CROSS_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___OWNED_CROSS_FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Feature ownedCrossFeature() { + try { + return (Feature)OWNED_CROSS_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #redefines(org.omg.sysml.model.sysml.Feature) Redefines}' operation. + * + * + * @see #redefines(org.omg.sysml.model.sysml.Feature) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate REDEFINES_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___REDEFINES__FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean redefines(Feature redefinedFeature) { + try { + return (Boolean)REDEFINES_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{redefinedFeature})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #redefinesFromLibrary(java.lang.String) Redefines From Library}' operation. + * + * + * @see #redefinesFromLibrary(java.lang.String) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate REDEFINES_FROM_LIBRARY_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___REDEFINES_FROM_LIBRARY__STRING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean redefinesFromLibrary(String libraryFeatureName) { + try { + return (Boolean)REDEFINES_FROM_LIBRARY_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{libraryFeatureName})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #subsetsChain(org.omg.sysml.model.sysml.Feature, org.omg.sysml.model.sysml.Feature) Subsets Chain}' operation. + * + * + * @see #subsetsChain(org.omg.sysml.model.sysml.Feature, org.omg.sysml.model.sysml.Feature) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate SUBSETS_CHAIN_FEATURE_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean subsetsChain(Feature first, Feature second) { + try { + return (Boolean)SUBSETS_CHAIN_FEATURE_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(2, new Object[]{first, second})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #typingFeatures() Typing Features}' operation. + * + * + * @see #typingFeatures() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate TYPING_FEATURES__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.FEATURE___TYPING_FEATURES).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList typingFeatures() { + try { + return (EList)TYPING_FEATURES__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.FEATURE___ALL_REDEFINED_FEATURES: + return allRedefinedFeatures(); + case SysMLPackage.FEATURE___AS_CARTESIAN_PRODUCT: + return asCartesianProduct(); + case SysMLPackage.FEATURE___CAN_ACCESS__FEATURE: + return canAccess((Feature)arguments.get(0)); + case SysMLPackage.FEATURE___DIRECTION_FOR__TYPE: + return directionFor((Type)arguments.get(0)); + case SysMLPackage.FEATURE___IS_CARTESIAN_PRODUCT: + return isCartesianProduct(); + case SysMLPackage.FEATURE___IS_FEATURED_WITHIN__TYPE: + return isFeaturedWithin((Type)arguments.get(0)); + case SysMLPackage.FEATURE___IS_FEATURING_TYPE__TYPE: + return isFeaturingType((Type)arguments.get(0)); + case SysMLPackage.FEATURE___IS_OWNED_CROSS_FEATURE: + return isOwnedCrossFeature(); + case SysMLPackage.FEATURE___NAMING_FEATURE: + return namingFeature(); + case SysMLPackage.FEATURE___OWNED_CROSS_FEATURE: + return ownedCrossFeature(); + case SysMLPackage.FEATURE___REDEFINES__FEATURE: + return redefines((Feature)arguments.get(0)); + case SysMLPackage.FEATURE___REDEFINES_FROM_LIBRARY__STRING: + return redefinesFromLibrary((String)arguments.get(0)); + case SysMLPackage.FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE: + return subsetsChain((Feature)arguments.get(0), (Feature)arguments.get(1)); + case SysMLPackage.FEATURE___TYPING_FEATURES: + return typingFeatures(); + } + return super.eInvoke(operationID, arguments); + } + +} //FeatureImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureInvertingImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureInvertingImpl.java new file mode 100644 index 000000000..412f18539 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureInvertingImpl.java @@ -0,0 +1,171 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureInverting; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Feature Inverting'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureInvertingImpl#getFeatureInverted Feature Inverted}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureInvertingImpl#getInvertingFeature Inverting Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureInvertingImpl#getOwningFeature Owning Feature}
  • + *
+ * + * @generated + */ +public class FeatureInvertingImpl extends RelationshipImpl implements FeatureInverting { + /** + * + * + * @generated + */ + protected FeatureInvertingImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FEATURE_INVERTING; + } + + /** + * + * + * @generated + */ + @Override + public Feature getFeatureInverted() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_INVERTING__FEATURE_INVERTED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setFeatureInverted(Feature newFeatureInverted) { + eSet(SysMLPackage.Literals.FEATURE_INVERTING__FEATURE_INVERTED, newFeatureInverted); + } + + /** + * + * + * @generated + */ + @Override + public Feature getInvertingFeature() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_INVERTING__INVERTING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setInvertingFeature(Feature newInvertingFeature) { + eSet(SysMLPackage.Literals.FEATURE_INVERTING__INVERTING_FEATURE, newInvertingFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwningFeature() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_INVERTING__OWNING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningFeature(Feature newOwningFeature) { + eSet(SysMLPackage.Literals.FEATURE_INVERTING__OWNING_FEATURE, newOwningFeature); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getFeatureInverted(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getInvertingFeature(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //FeatureInvertingImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureMembershipImpl.java new file mode 100644 index 000000000..d1405e872 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureMembershipImpl.java @@ -0,0 +1,151 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Feature Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureMembershipImpl#getOwnedMemberFeature Owned Member Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureMembershipImpl#getOwningType Owning Type}
  • + *
+ * + * @generated + */ +public class FeatureMembershipImpl extends OwningMembershipImpl implements FeatureMembership { + /** + * + * + * @generated + */ + protected FeatureMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FEATURE_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberFeature() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedMemberFeature(Feature newOwnedMemberFeature) { + eSet(SysMLPackage.Literals.FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE, newOwnedMemberFeature); + } + + /** + * + * + * @generated + */ + @Override + public Type getOwningType() { + return (Type)eGet(SysMLPackage.Literals.FEATURE_MEMBERSHIP__OWNING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningType(Type newOwningType) { + eSet(SysMLPackage.Literals.FEATURE_MEMBERSHIP__OWNING_TYPE, newOwningType); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwnedMemberElement() { + var sourceValue = this.getOwnedMemberFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Element typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Namespace getMembershipOwningNamespace() { + var sourceValue = this.getOwningType(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Namespace typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Namespace typedValue) { + return typedValue; + } + return null; + } + +} //FeatureMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureReferenceExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureReferenceExpressionImpl.java new file mode 100644 index 000000000..f30d6aa72 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureReferenceExpressionImpl.java @@ -0,0 +1,139 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureReferenceExpression; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Feature Reference Expression'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureReferenceExpressionImpl#getReferent Referent}
  • + *
+ * + * @generated + */ +public class FeatureReferenceExpressionImpl extends ExpressionImpl implements FeatureReferenceExpression { + /** + * + * + * @generated + */ + protected FeatureReferenceExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FEATURE_REFERENCE_EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public Feature getReferent() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_REFERENCE_EXPRESSION__REFERENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReferent(Feature newReferent) { + eSet(SysMLPackage.Literals.FEATURE_REFERENCE_EXPRESSION__REFERENT, newReferent); + } + + /** + * + * + * @generated + */ + @Override + public boolean modelLevelEvaluable(EList visited) { + var safeVisited = visited == null ? new BasicEList() : visited; + var referent = this.getReferent(); + if (referent == null) { + return false; + } + var anythingSelfMembership = this.resolveGlobal("Anything::self"); + var isAnythingSelf = anythingSelfMembership != null && anythingSelfMembership.getMemberElement() == referent; + if (isAnythingSelf) { + return true; + } + if (safeVisited.contains(referent)) { + return false; + } + if (referent instanceof Expression expression) { + var nextVisited = new BasicEList(); + nextVisited.addAll(safeVisited); + nextVisited.add(referent); + if (expression.modelLevelEvaluable(nextVisited)) { + return true; + } + } + var owningType = referent.getOwningType(); + if (owningType instanceof Metaclass || owningType instanceof MetadataFeature) { + return true; + } + if (!referent.getFeaturingType().isEmpty()) { + return false; + } + Expression valuation = null; + for (Membership membership : referent.getOwnedMembership()) { + if (membership instanceof FeatureValue featureValue) { + valuation = featureValue.getValue(); + break; + } + } + if (valuation == null) { + return true; + } + var nextVisited = new BasicEList(); + nextVisited.addAll(safeVisited); + nextVisited.add(referent); + return valuation.modelLevelEvaluable(nextVisited); + } + +} //FeatureReferenceExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureTypingImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureTypingImpl.java new file mode 100644 index 000000000..abd7b8fb2 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureTypingImpl.java @@ -0,0 +1,193 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureTyping; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Feature Typing'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureTypingImpl#getOwningFeature Owning Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureTypingImpl#getType Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureTypingImpl#getTypedFeature Typed Feature}
  • + *
+ * + * @generated + */ +public class FeatureTypingImpl extends SpecializationImpl implements FeatureTyping { + /** + * + * + * @generated + */ + protected FeatureTypingImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FEATURE_TYPING; + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwningFeature() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_TYPING__OWNING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningFeature(Feature newOwningFeature) { + eSet(SysMLPackage.Literals.FEATURE_TYPING__OWNING_FEATURE, newOwningFeature); + } + + /** + * + * + * @generated + */ + @Override + public Type getType() { + return (Type)eGet(SysMLPackage.Literals.FEATURE_TYPING__TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setType(Type newType) { + eSet(SysMLPackage.Literals.FEATURE_TYPING__TYPE, newType); + } + + /** + * + * + * @generated + */ + @Override + public Feature getTypedFeature() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_TYPING__TYPED_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTypedFeature(Feature newTypedFeature) { + eSet(SysMLPackage.Literals.FEATURE_TYPING__TYPED_FEATURE, newTypedFeature); + } + + /** + * + * + * @generated + */ + @Override + public Type getOwningType() { + var sourceValue = this.getOwningFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Type getGeneral() { + var sourceValue = this.getType(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Type getSpecific() { + var sourceValue = this.getTypedFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + +} //FeatureTypingImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureValueImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureValueImpl.java new file mode 100644 index 000000000..2af71dc4b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FeatureValueImpl.java @@ -0,0 +1,169 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Feature Value'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureValueImpl#isIsDefault Is Default}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureValueImpl#isIsInitial Is Initial}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureValueImpl#getFeatureWithValue Feature With Value}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FeatureValueImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class FeatureValueImpl extends OwningMembershipImpl implements FeatureValue { + /** + * + * + * @generated + */ + protected FeatureValueImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FEATURE_VALUE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsDefault() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE_VALUE__IS_DEFAULT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsDefault(boolean newIsDefault) { + eSet(SysMLPackage.Literals.FEATURE_VALUE__IS_DEFAULT, newIsDefault); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsInitial() { + return (Boolean)eGet(SysMLPackage.Literals.FEATURE_VALUE__IS_INITIAL, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsInitial(boolean newIsInitial) { + eSet(SysMLPackage.Literals.FEATURE_VALUE__IS_INITIAL, newIsInitial); + } + + /** + * + * + * @generated + */ + @Override + public Feature getFeatureWithValue() { + return (Feature)eGet(SysMLPackage.Literals.FEATURE_VALUE__FEATURE_WITH_VALUE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setFeatureWithValue(Feature newFeatureWithValue) { + eSet(SysMLPackage.Literals.FEATURE_VALUE__FEATURE_WITH_VALUE, newFeatureWithValue); + } + + /** + * + * + * @generated + */ + @Override + public Expression getValue() { + return (Expression)eGet(SysMLPackage.Literals.FEATURE_VALUE__VALUE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setValue(Expression newValue) { + eSet(SysMLPackage.Literals.FEATURE_VALUE__VALUE, newValue); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwnedMemberElement() { + var sourceValue = this.getValue(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Element typedValue) { + return typedValue; + } + return null; + } + +} //FeatureValueImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowDefinitionImpl.java new file mode 100644 index 000000000..272ce0931 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowDefinitionImpl.java @@ -0,0 +1,309 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FlowDefinition; +import org.omg.sysml.model.sysml.Interaction; +import org.omg.sysml.model.sysml.Relationship; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.Usage; + +/** + * + * An implementation of the model object 'Flow Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#isIsImplied Is Implied}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#getOwnedRelatedElement Owned Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#getOwningRelatedElement Owning Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#getRelatedElement Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#getSource Source}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#getTarget Target}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#getAssociationEnd Association End}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#getRelatedType Related Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#getSourceType Source Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#getTargetType Target Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowDefinitionImpl#getFlowEnd Flow End}
  • + *
+ * + * @generated + */ +public class FlowDefinitionImpl extends ActionDefinitionImpl implements FlowDefinition { + /** + * + * + * @generated + */ + protected FlowDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FLOW_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsImplied() { + return (Boolean)eGet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsImplied(boolean newIsImplied) { + eSet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, newIsImplied); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedRelatedElement() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNED_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwningRelatedElement() { + return (Element)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningRelatedElement(Element newOwningRelatedElement) { + eSet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, newOwningRelatedElement); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRelatedElement() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getSource() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__SOURCE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTarget() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__TARGET, true); + } + + + /** + * + * + * @generated + */ + @Override + public EList getAssociationEnd() { + var sourceValue = this.getFlowEnd(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Feature typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRelatedType() { + return (EList)eGet(SysMLPackage.Literals.ASSOCIATION__RELATED_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public Type getSourceType() { + return (Type)eGet(SysMLPackage.Literals.ASSOCIATION__SOURCE_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSourceType(Type newSourceType) { + eSet(SysMLPackage.Literals.ASSOCIATION__SOURCE_TYPE, newSourceType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTargetType() { + return (EList)eGet(SysMLPackage.Literals.ASSOCIATION__TARGET_TYPE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getFlowEnd() { + return (EList)eGet(SysMLPackage.Literals.FLOW_DEFINITION__FLOW_END, true); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (derivedFeatureID) { + case SysMLPackage.FLOW_DEFINITION__IS_IMPLIED: return SysMLPackage.RELATIONSHIP__IS_IMPLIED; + case SysMLPackage.FLOW_DEFINITION__OWNED_RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__OWNED_RELATED_ELEMENT; + case SysMLPackage.FLOW_DEFINITION__OWNING_RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__OWNING_RELATED_ELEMENT; + case SysMLPackage.FLOW_DEFINITION__RELATED_ELEMENT: return SysMLPackage.RELATIONSHIP__RELATED_ELEMENT; + case SysMLPackage.FLOW_DEFINITION__SOURCE: return SysMLPackage.RELATIONSHIP__SOURCE; + case SysMLPackage.FLOW_DEFINITION__TARGET: return SysMLPackage.RELATIONSHIP__TARGET; + default: return -1; + } + } + if (baseClass == Association.class) { + switch (derivedFeatureID) { + case SysMLPackage.FLOW_DEFINITION__ASSOCIATION_END: return SysMLPackage.ASSOCIATION__ASSOCIATION_END; + case SysMLPackage.FLOW_DEFINITION__RELATED_TYPE: return SysMLPackage.ASSOCIATION__RELATED_TYPE; + case SysMLPackage.FLOW_DEFINITION__SOURCE_TYPE: return SysMLPackage.ASSOCIATION__SOURCE_TYPE; + case SysMLPackage.FLOW_DEFINITION__TARGET_TYPE: return SysMLPackage.ASSOCIATION__TARGET_TYPE; + default: return -1; + } + } + if (baseClass == Interaction.class) { + switch (derivedFeatureID) { + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Relationship.class) { + switch (baseFeatureID) { + case SysMLPackage.RELATIONSHIP__IS_IMPLIED: return SysMLPackage.FLOW_DEFINITION__IS_IMPLIED; + case SysMLPackage.RELATIONSHIP__OWNED_RELATED_ELEMENT: return SysMLPackage.FLOW_DEFINITION__OWNED_RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__OWNING_RELATED_ELEMENT: return SysMLPackage.FLOW_DEFINITION__OWNING_RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__RELATED_ELEMENT: return SysMLPackage.FLOW_DEFINITION__RELATED_ELEMENT; + case SysMLPackage.RELATIONSHIP__SOURCE: return SysMLPackage.FLOW_DEFINITION__SOURCE; + case SysMLPackage.RELATIONSHIP__TARGET: return SysMLPackage.FLOW_DEFINITION__TARGET; + default: return -1; + } + } + if (baseClass == Association.class) { + switch (baseFeatureID) { + case SysMLPackage.ASSOCIATION__ASSOCIATION_END: return SysMLPackage.FLOW_DEFINITION__ASSOCIATION_END; + case SysMLPackage.ASSOCIATION__RELATED_TYPE: return SysMLPackage.FLOW_DEFINITION__RELATED_TYPE; + case SysMLPackage.ASSOCIATION__SOURCE_TYPE: return SysMLPackage.FLOW_DEFINITION__SOURCE_TYPE; + case SysMLPackage.ASSOCIATION__TARGET_TYPE: return SysMLPackage.FLOW_DEFINITION__TARGET_TYPE; + default: return -1; + } + } + if (baseClass == Interaction.class) { + switch (baseFeatureID) { + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //FlowDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowEndImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowEndImpl.java new file mode 100644 index 000000000..633078f0d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowEndImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.FlowEnd; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Flow End'. + * + * + * @generated + */ +public class FlowEndImpl extends FeatureImpl implements FlowEnd { + /** + * + * + * @generated + */ + protected FlowEndImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FLOW_END; + } + +} //FlowEndImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowImpl.java new file mode 100644 index 000000000..12dddb4ea --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowImpl.java @@ -0,0 +1,260 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Flow; +import org.omg.sysml.model.sysml.FlowEnd; +import org.omg.sysml.model.sysml.Interaction; +import org.omg.sysml.model.sysml.PayloadFeature; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Flow'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FlowImpl#getBehavior Behavior}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowImpl#getParameter Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowImpl#getFlowEnd Flow End}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowImpl#getInteraction Interaction}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowImpl#getPayloadFeature Payload Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowImpl#getPayloadType Payload Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowImpl#getSourceOutputFeature Source Output Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowImpl#getTargetInputFeature Target Input Feature}
  • + *
+ * + * @generated + */ +public class FlowImpl extends ConnectorImpl implements Flow { + /** + * + * + * @generated + */ + protected FlowImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FLOW; + } + + + /** + * + * + * @generated + */ + @Override + public EList getBehavior() { + var sourceValue = this.getInteraction(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Behavior typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Behavior typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParameter() { + return (EList)eGet(SysMLPackage.Literals.STEP__PARAMETER, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getFlowEnd() { + return (EList)eGet(SysMLPackage.Literals.FLOW__FLOW_END, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getInteraction() { + return (EList)eGet(SysMLPackage.Literals.FLOW__INTERACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public PayloadFeature getPayloadFeature() { + return (PayloadFeature)eGet(SysMLPackage.Literals.FLOW__PAYLOAD_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPayloadFeature(PayloadFeature newPayloadFeature) { + eSet(SysMLPackage.Literals.FLOW__PAYLOAD_FEATURE, newPayloadFeature); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getPayloadType() { + return (EList)eGet(SysMLPackage.Literals.FLOW__PAYLOAD_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public Feature getSourceOutputFeature() { + return (Feature)eGet(SysMLPackage.Literals.FLOW__SOURCE_OUTPUT_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSourceOutputFeature(Feature newSourceOutputFeature) { + eSet(SysMLPackage.Literals.FLOW__SOURCE_OUTPUT_FEATURE, newSourceOutputFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getTargetInputFeature() { + return (Feature)eGet(SysMLPackage.Literals.FLOW__TARGET_INPUT_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTargetInputFeature(Feature newTargetInputFeature) { + eSet(SysMLPackage.Literals.FLOW__TARGET_INPUT_FEATURE, newTargetInputFeature); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Step.class) { + switch (derivedFeatureID) { + case SysMLPackage.FLOW__BEHAVIOR: return SysMLPackage.STEP__BEHAVIOR; + case SysMLPackage.FLOW__PARAMETER: return SysMLPackage.STEP__PARAMETER; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Step.class) { + switch (baseFeatureID) { + case SysMLPackage.STEP__BEHAVIOR: return SysMLPackage.FLOW__BEHAVIOR; + case SysMLPackage.STEP__PARAMETER: return SysMLPackage.FLOW__PARAMETER; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public EList getAssociation() { + var sourceValue = this.getInteraction(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Association typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Association typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //FlowImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowUsageImpl.java new file mode 100644 index 000000000..e5f2b4c6c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FlowUsageImpl.java @@ -0,0 +1,564 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Flow; +import org.omg.sysml.model.sysml.FlowEnd; +import org.omg.sysml.model.sysml.FlowUsage; +import org.omg.sysml.model.sysml.Interaction; +import org.omg.sysml.model.sysml.OccurrenceDefinition; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.PayloadFeature; +import org.omg.sysml.model.sysml.PortionKind; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Flow Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#isIsIndividual Is Individual}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getPortionKind Portion Kind}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getIndividualDefinition Individual Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getOccurrenceDefinition Occurrence Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getBehavior Behavior}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getParameter Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getActionDefinition Action Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getFlowEnd Flow End}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getInteraction Interaction}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getPayloadFeature Payload Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getPayloadType Payload Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getSourceOutputFeature Source Output Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getTargetInputFeature Target Input Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FlowUsageImpl#getFlowDefinition Flow Definition}
  • + *
+ * + * @generated + */ +public class FlowUsageImpl extends ConnectorAsUsageImpl implements FlowUsage { + /** + * + * + * @generated + */ + protected FlowUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FLOW_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsIndividual() { + return (Boolean)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__IS_INDIVIDUAL, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsIndividual(boolean newIsIndividual) { + eSet(SysMLPackage.Literals.OCCURRENCE_USAGE__IS_INDIVIDUAL, newIsIndividual); + } + + /** + * + * + * @generated + */ + @Override + public PortionKind getPortionKind() { + return (PortionKind)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__PORTION_KIND, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPortionKind(PortionKind newPortionKind) { + eSet(SysMLPackage.Literals.OCCURRENCE_USAGE__PORTION_KIND, newPortionKind); + } + + /** + * + * + * @generated + */ + @Override + public OccurrenceDefinition getIndividualDefinition() { + return (OccurrenceDefinition)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIndividualDefinition(OccurrenceDefinition newIndividualDefinition) { + eSet(SysMLPackage.Literals.OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION, newIndividualDefinition); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOccurrenceDefinition() { + return (EList)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__OCCURRENCE_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getBehavior() { + return (EList)eGet(SysMLPackage.Literals.STEP__BEHAVIOR, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParameter() { + return (EList)eGet(SysMLPackage.Literals.STEP__PARAMETER, true); + } + + + /** + * + * + * @generated + */ + @Override + public EList getActionDefinition() { + var sourceValue = this.getFlowDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Behavior typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Behavior typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getFlowEnd() { + return (EList)eGet(SysMLPackage.Literals.FLOW__FLOW_END, true); + } + + + /** + * + * + * @generated + */ + @Override + public EList getInteraction() { + var sourceValue = this.getFlowDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Interaction typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Interaction typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + /** + * + * + * @generated + */ + @Override + public PayloadFeature getPayloadFeature() { + return (PayloadFeature)eGet(SysMLPackage.Literals.FLOW__PAYLOAD_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPayloadFeature(PayloadFeature newPayloadFeature) { + eSet(SysMLPackage.Literals.FLOW__PAYLOAD_FEATURE, newPayloadFeature); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getPayloadType() { + return (EList)eGet(SysMLPackage.Literals.FLOW__PAYLOAD_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public Feature getSourceOutputFeature() { + return (Feature)eGet(SysMLPackage.Literals.FLOW__SOURCE_OUTPUT_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSourceOutputFeature(Feature newSourceOutputFeature) { + eSet(SysMLPackage.Literals.FLOW__SOURCE_OUTPUT_FEATURE, newSourceOutputFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getTargetInputFeature() { + return (Feature)eGet(SysMLPackage.Literals.FLOW__TARGET_INPUT_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTargetInputFeature(Feature newTargetInputFeature) { + eSet(SysMLPackage.Literals.FLOW__TARGET_INPUT_FEATURE, newTargetInputFeature); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getFlowDefinition() { + return (EList)eGet(SysMLPackage.Literals.FLOW_USAGE__FLOW_DEFINITION, true); + } + + /** + * The cached invocation delegate for the '{@link #argument(int) Argument}' operation. + * + * + * @see #argument(int) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ARGUMENT_INT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ACTION_USAGE___ARGUMENT__INT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Expression argument(int i) { + try { + return (Expression)ARGUMENT_INT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{i})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #inputParameter(int) Input Parameter}' operation. + * + * + * @see #inputParameter(int) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate INPUT_PARAMETER_INT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ACTION_USAGE___INPUT_PARAMETER__INT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Feature inputParameter(int i) { + try { + return (Feature)INPUT_PARAMETER_INT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{i})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #inputParameters() Input Parameters}' operation. + * + * + * @see #inputParameters() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate INPUT_PARAMETERS__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ACTION_USAGE___INPUT_PARAMETERS).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList inputParameters() { + try { + return (EList)INPUT_PARAMETERS__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isSubactionUsage() Is Subaction Usage}' operation. + * + * + * @see #isSubactionUsage() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_SUBACTION_USAGE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.ACTION_USAGE___IS_SUBACTION_USAGE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isSubactionUsage() { + try { + return (Boolean)IS_SUBACTION_USAGE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == OccurrenceUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.FLOW_USAGE__IS_INDIVIDUAL: return SysMLPackage.OCCURRENCE_USAGE__IS_INDIVIDUAL; + case SysMLPackage.FLOW_USAGE__PORTION_KIND: return SysMLPackage.OCCURRENCE_USAGE__PORTION_KIND; + case SysMLPackage.FLOW_USAGE__INDIVIDUAL_DEFINITION: return SysMLPackage.OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION; + case SysMLPackage.FLOW_USAGE__OCCURRENCE_DEFINITION: return SysMLPackage.OCCURRENCE_USAGE__OCCURRENCE_DEFINITION; + default: return -1; + } + } + if (baseClass == Step.class) { + switch (derivedFeatureID) { + case SysMLPackage.FLOW_USAGE__BEHAVIOR: return SysMLPackage.STEP__BEHAVIOR; + case SysMLPackage.FLOW_USAGE__PARAMETER: return SysMLPackage.STEP__PARAMETER; + default: return -1; + } + } + if (baseClass == ActionUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.FLOW_USAGE__ACTION_DEFINITION: return SysMLPackage.ACTION_USAGE__ACTION_DEFINITION; + default: return -1; + } + } + if (baseClass == Flow.class) { + switch (derivedFeatureID) { + case SysMLPackage.FLOW_USAGE__FLOW_END: return SysMLPackage.FLOW__FLOW_END; + case SysMLPackage.FLOW_USAGE__INTERACTION: return SysMLPackage.FLOW__INTERACTION; + case SysMLPackage.FLOW_USAGE__PAYLOAD_FEATURE: return SysMLPackage.FLOW__PAYLOAD_FEATURE; + case SysMLPackage.FLOW_USAGE__PAYLOAD_TYPE: return SysMLPackage.FLOW__PAYLOAD_TYPE; + case SysMLPackage.FLOW_USAGE__SOURCE_OUTPUT_FEATURE: return SysMLPackage.FLOW__SOURCE_OUTPUT_FEATURE; + case SysMLPackage.FLOW_USAGE__TARGET_INPUT_FEATURE: return SysMLPackage.FLOW__TARGET_INPUT_FEATURE; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == OccurrenceUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.OCCURRENCE_USAGE__IS_INDIVIDUAL: return SysMLPackage.FLOW_USAGE__IS_INDIVIDUAL; + case SysMLPackage.OCCURRENCE_USAGE__PORTION_KIND: return SysMLPackage.FLOW_USAGE__PORTION_KIND; + case SysMLPackage.OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION: return SysMLPackage.FLOW_USAGE__INDIVIDUAL_DEFINITION; + case SysMLPackage.OCCURRENCE_USAGE__OCCURRENCE_DEFINITION: return SysMLPackage.FLOW_USAGE__OCCURRENCE_DEFINITION; + default: return -1; + } + } + if (baseClass == Step.class) { + switch (baseFeatureID) { + case SysMLPackage.STEP__BEHAVIOR: return SysMLPackage.FLOW_USAGE__BEHAVIOR; + case SysMLPackage.STEP__PARAMETER: return SysMLPackage.FLOW_USAGE__PARAMETER; + default: return -1; + } + } + if (baseClass == ActionUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.ACTION_USAGE__ACTION_DEFINITION: return SysMLPackage.FLOW_USAGE__ACTION_DEFINITION; + default: return -1; + } + } + if (baseClass == Flow.class) { + switch (baseFeatureID) { + case SysMLPackage.FLOW__FLOW_END: return SysMLPackage.FLOW_USAGE__FLOW_END; + case SysMLPackage.FLOW__INTERACTION: return SysMLPackage.FLOW_USAGE__INTERACTION; + case SysMLPackage.FLOW__PAYLOAD_FEATURE: return SysMLPackage.FLOW_USAGE__PAYLOAD_FEATURE; + case SysMLPackage.FLOW__PAYLOAD_TYPE: return SysMLPackage.FLOW_USAGE__PAYLOAD_TYPE; + case SysMLPackage.FLOW__SOURCE_OUTPUT_FEATURE: return SysMLPackage.FLOW_USAGE__SOURCE_OUTPUT_FEATURE; + case SysMLPackage.FLOW__TARGET_INPUT_FEATURE: return SysMLPackage.FLOW_USAGE__TARGET_INPUT_FEATURE; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) { + if (baseClass == OccurrenceUsage.class) { + switch (baseOperationID) { + default: return -1; + } + } + if (baseClass == Step.class) { + switch (baseOperationID) { + default: return -1; + } + } + if (baseClass == ActionUsage.class) { + switch (baseOperationID) { + case SysMLPackage.ACTION_USAGE___ARGUMENT__INT: return SysMLPackage.FLOW_USAGE___ARGUMENT__INT; + case SysMLPackage.ACTION_USAGE___INPUT_PARAMETER__INT: return SysMLPackage.FLOW_USAGE___INPUT_PARAMETER__INT; + case SysMLPackage.ACTION_USAGE___INPUT_PARAMETERS: return SysMLPackage.FLOW_USAGE___INPUT_PARAMETERS; + case SysMLPackage.ACTION_USAGE___IS_SUBACTION_USAGE: return SysMLPackage.FLOW_USAGE___IS_SUBACTION_USAGE; + default: return -1; + } + } + if (baseClass == Flow.class) { + switch (baseOperationID) { + default: return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.FLOW_USAGE___ARGUMENT__INT: + return argument((Integer)arguments.get(0)); + case SysMLPackage.FLOW_USAGE___INPUT_PARAMETER__INT: + return inputParameter((Integer)arguments.get(0)); + case SysMLPackage.FLOW_USAGE___INPUT_PARAMETERS: + return inputParameters(); + case SysMLPackage.FLOW_USAGE___IS_SUBACTION_USAGE: + return isSubactionUsage(); + } + return super.eInvoke(operationID, arguments); + } + +} //FlowUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ForLoopActionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ForLoopActionUsageImpl.java new file mode 100644 index 000000000..8439e940a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ForLoopActionUsageImpl.java @@ -0,0 +1,103 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.ForLoopActionUsage; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'For Loop Action Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ForLoopActionUsageImpl#getLoopVariable Loop Variable}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ForLoopActionUsageImpl#getSeqArgument Seq Argument}
  • + *
+ * + * @generated + */ +public class ForLoopActionUsageImpl extends LoopActionUsageImpl implements ForLoopActionUsage { + /** + * + * + * @generated + */ + protected ForLoopActionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FOR_LOOP_ACTION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public ReferenceUsage getLoopVariable() { + return (ReferenceUsage)eGet(SysMLPackage.Literals.FOR_LOOP_ACTION_USAGE__LOOP_VARIABLE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setLoopVariable(ReferenceUsage newLoopVariable) { + eSet(SysMLPackage.Literals.FOR_LOOP_ACTION_USAGE__LOOP_VARIABLE, newLoopVariable); + } + + /** + * + * + * @generated + */ + @Override + public Expression getSeqArgument() { + return (Expression)eGet(SysMLPackage.Literals.FOR_LOOP_ACTION_USAGE__SEQ_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSeqArgument(Expression newSeqArgument) { + eSet(SysMLPackage.Literals.FOR_LOOP_ACTION_USAGE__SEQ_ARGUMENT, newSeqArgument); + } + +} //ForLoopActionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ForkNodeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ForkNodeImpl.java new file mode 100644 index 000000000..04315cc78 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ForkNodeImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ForkNode; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Fork Node'. + * + * + * @generated + */ +public class ForkNodeImpl extends ControlNodeImpl implements ForkNode { + /** + * + * + * @generated + */ + protected ForkNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FORK_NODE; + } + +} //ForkNodeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FramedConcernMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FramedConcernMembershipImpl.java new file mode 100644 index 000000000..ea97747ee --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FramedConcernMembershipImpl.java @@ -0,0 +1,149 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.FramedConcernMembership; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Framed Concern Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FramedConcernMembershipImpl#getOwnedConcern Owned Concern}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FramedConcernMembershipImpl#getReferencedConcern Referenced Concern}
  • + *
+ * + * @generated + */ +public class FramedConcernMembershipImpl extends RequirementConstraintMembershipImpl implements FramedConcernMembership { + /** + * + * + * @generated + */ + protected FramedConcernMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FRAMED_CONCERN_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public ConcernUsage getOwnedConcern() { + return (ConcernUsage)eGet(SysMLPackage.Literals.FRAMED_CONCERN_MEMBERSHIP__OWNED_CONCERN, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedConcern(ConcernUsage newOwnedConcern) { + eSet(SysMLPackage.Literals.FRAMED_CONCERN_MEMBERSHIP__OWNED_CONCERN, newOwnedConcern); + } + + /** + * + * + * @generated + */ + @Override + public ConcernUsage getReferencedConcern() { + return (ConcernUsage)eGet(SysMLPackage.Literals.FRAMED_CONCERN_MEMBERSHIP__REFERENCED_CONCERN, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReferencedConcern(ConcernUsage newReferencedConcern) { + eSet(SysMLPackage.Literals.FRAMED_CONCERN_MEMBERSHIP__REFERENCED_CONCERN, newReferencedConcern); + } + + /** + * + * + * @generated + */ + @Override + public ConstraintUsage getOwnedConstraint() { + var sourceValue = this.getOwnedConcern(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof ConstraintUsage typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof ConstraintUsage typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public ConstraintUsage getReferencedConstraint() { + var sourceValue = this.getReferencedConcern(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof ConstraintUsage typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof ConstraintUsage typedValue) { + return typedValue; + } + return null; + } + +} //FramedConcernMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FunctionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FunctionImpl.java new file mode 100644 index 000000000..4d7563aba --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/FunctionImpl.java @@ -0,0 +1,117 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Function'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.FunctionImpl#isIsModelLevelEvaluable Is Model Level Evaluable}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FunctionImpl#getExpression Expression}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.FunctionImpl#getResult Result}
  • + *
+ * + * @generated + */ +public class FunctionImpl extends BehaviorImpl implements Function { + /** + * + * + * @generated + */ + protected FunctionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.FUNCTION; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsModelLevelEvaluable() { + return (Boolean)eGet(SysMLPackage.Literals.FUNCTION__IS_MODEL_LEVEL_EVALUABLE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsModelLevelEvaluable(boolean newIsModelLevelEvaluable) { + eSet(SysMLPackage.Literals.FUNCTION__IS_MODEL_LEVEL_EVALUABLE, newIsModelLevelEvaluable); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getExpression() { + return (EList)eGet(SysMLPackage.Literals.FUNCTION__EXPRESSION, true); + } + + /** + * + * + * @generated + */ + @Override + public Feature getResult() { + return (Feature)eGet(SysMLPackage.Literals.FUNCTION__RESULT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setResult(Feature newResult) { + eSet(SysMLPackage.Literals.FUNCTION__RESULT, newResult); + } + +} //FunctionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IfActionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IfActionUsageImpl.java new file mode 100644 index 000000000..33c27ca80 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IfActionUsageImpl.java @@ -0,0 +1,124 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.IfActionUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'If Action Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.IfActionUsageImpl#getElseAction Else Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.IfActionUsageImpl#getIfArgument If Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.IfActionUsageImpl#getThenAction Then Action}
  • + *
+ * + * @generated + */ +public class IfActionUsageImpl extends ActionUsageImpl implements IfActionUsage { + /** + * + * + * @generated + */ + protected IfActionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.IF_ACTION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getElseAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.IF_ACTION_USAGE__ELSE_ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setElseAction(ActionUsage newElseAction) { + eSet(SysMLPackage.Literals.IF_ACTION_USAGE__ELSE_ACTION, newElseAction); + } + + /** + * + * + * @generated + */ + @Override + public Expression getIfArgument() { + return (Expression)eGet(SysMLPackage.Literals.IF_ACTION_USAGE__IF_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIfArgument(Expression newIfArgument) { + eSet(SysMLPackage.Literals.IF_ACTION_USAGE__IF_ARGUMENT, newIfArgument); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getThenAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.IF_ACTION_USAGE__THEN_ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setThenAction(ActionUsage newThenAction) { + eSet(SysMLPackage.Literals.IF_ACTION_USAGE__THEN_ACTION, newThenAction); + } + +} //IfActionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ImportImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ImportImpl.java new file mode 100644 index 000000000..1d6b294af --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ImportImpl.java @@ -0,0 +1,238 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Import; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.VisibilityKind; + +/** + * + * An implementation of the model object 'Import'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ImportImpl#isIsImportAll Is Import All}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ImportImpl#isIsRecursive Is Recursive}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ImportImpl#getVisibility Visibility}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ImportImpl#getImportedElement Imported Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ImportImpl#getImportOwningNamespace Import Owning Namespace}
  • + *
+ * + * @generated + */ +public abstract class ImportImpl extends RelationshipImpl implements Import { + /** + * + * + * @generated + */ + protected ImportImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.IMPORT; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsImportAll() { + return (Boolean)eGet(SysMLPackage.Literals.IMPORT__IS_IMPORT_ALL, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsImportAll(boolean newIsImportAll) { + eSet(SysMLPackage.Literals.IMPORT__IS_IMPORT_ALL, newIsImportAll); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsRecursive() { + return (Boolean)eGet(SysMLPackage.Literals.IMPORT__IS_RECURSIVE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsRecursive(boolean newIsRecursive) { + eSet(SysMLPackage.Literals.IMPORT__IS_RECURSIVE, newIsRecursive); + } + + /** + * + * + * @generated + */ + @Override + public VisibilityKind getVisibility() { + return (VisibilityKind)eGet(SysMLPackage.Literals.IMPORT__VISIBILITY, true); + } + + /** + * + * + * @generated + */ + @Override + public void setVisibility(VisibilityKind newVisibility) { + eSet(SysMLPackage.Literals.IMPORT__VISIBILITY, newVisibility); + } + + /** + * + * + * @generated + */ + @Override + public Element getImportedElement() { + return (Element)eGet(SysMLPackage.Literals.IMPORT__IMPORTED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setImportedElement(Element newImportedElement) { + eSet(SysMLPackage.Literals.IMPORT__IMPORTED_ELEMENT, newImportedElement); + } + + /** + * + * + * @generated + */ + @Override + public Namespace getImportOwningNamespace() { + return (Namespace)eGet(SysMLPackage.Literals.IMPORT__IMPORT_OWNING_NAMESPACE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setImportOwningNamespace(Namespace newImportOwningNamespace) { + eSet(SysMLPackage.Literals.IMPORT__IMPORT_OWNING_NAMESPACE, newImportOwningNamespace); + } + + /** + * The cached invocation delegate for the '{@link #importedMemberships(org.eclipse.emf.common.util.EList) Imported Memberships}' operation. + * + * + * @see #importedMemberships(org.eclipse.emf.common.util.EList) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IMPORTED_MEMBERSHIPS_ELIST__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.IMPORT___IMPORTED_MEMBERSHIPS__ELIST).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList importedMemberships(EList excluded) { + try { + return (EList)IMPORTED_MEMBERSHIPS_ELIST__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{excluded})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + @SuppressWarnings("unchecked") + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.IMPORT___IMPORTED_MEMBERSHIPS__ELIST: + return importedMemberships((EList)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getImportOwningNamespace(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //ImportImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IncludeUseCaseUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IncludeUseCaseUsageImpl.java new file mode 100644 index 000000000..1f6deaaba --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IncludeUseCaseUsageImpl.java @@ -0,0 +1,184 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.EventOccurrenceUsage; +import org.omg.sysml.model.sysml.IncludeUseCaseUsage; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.PerformActionUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.UseCaseUsage; + +/** + * + * An implementation of the model object 'Include Use Case Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.IncludeUseCaseUsageImpl#getEventOccurrence Event Occurrence}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.IncludeUseCaseUsageImpl#getPerformedAction Performed Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.IncludeUseCaseUsageImpl#getUseCaseIncluded Use Case Included}
  • + *
+ * + * @generated + */ +public class IncludeUseCaseUsageImpl extends UseCaseUsageImpl implements IncludeUseCaseUsage { + /** + * + * + * @generated + */ + protected IncludeUseCaseUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.INCLUDE_USE_CASE_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public OccurrenceUsage getEventOccurrence() { + return (OccurrenceUsage)eGet(SysMLPackage.Literals.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setEventOccurrence(OccurrenceUsage newEventOccurrence) { + eSet(SysMLPackage.Literals.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE, newEventOccurrence); + } + + + /** + * + * + * @generated + */ + @Override + public ActionUsage getPerformedAction() { + var sourceValue = this.getUseCaseIncluded(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof ActionUsage typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof ActionUsage typedValue) { + return typedValue; + } + return null; + } + /** + * + * + * @generated + */ + @Override + public void setPerformedAction(ActionUsage newPerformedAction) { + eSet(SysMLPackage.Literals.PERFORM_ACTION_USAGE__PERFORMED_ACTION, newPerformedAction); + } + + /** + * + * + * @generated + */ + @Override + public UseCaseUsage getUseCaseIncluded() { + return (UseCaseUsage)eGet(SysMLPackage.Literals.INCLUDE_USE_CASE_USAGE__USE_CASE_INCLUDED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setUseCaseIncluded(UseCaseUsage newUseCaseIncluded) { + eSet(SysMLPackage.Literals.INCLUDE_USE_CASE_USAGE__USE_CASE_INCLUDED, newUseCaseIncluded); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == EventOccurrenceUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.INCLUDE_USE_CASE_USAGE__EVENT_OCCURRENCE: return SysMLPackage.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE; + default: return -1; + } + } + if (baseClass == PerformActionUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.INCLUDE_USE_CASE_USAGE__PERFORMED_ACTION: return SysMLPackage.PERFORM_ACTION_USAGE__PERFORMED_ACTION; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == EventOccurrenceUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE: return SysMLPackage.INCLUDE_USE_CASE_USAGE__EVENT_OCCURRENCE; + default: return -1; + } + } + if (baseClass == PerformActionUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.PERFORM_ACTION_USAGE__PERFORMED_ACTION: return SysMLPackage.INCLUDE_USE_CASE_USAGE__PERFORMED_ACTION; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //IncludeUseCaseUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IndexExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IndexExpressionImpl.java new file mode 100644 index 000000000..0a14fda5b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IndexExpressionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.IndexExpression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Index Expression'. + * + * + * @generated + */ +public class IndexExpressionImpl extends OperatorExpressionImpl implements IndexExpression { + /** + * + * + * @generated + */ + protected IndexExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.INDEX_EXPRESSION; + } + +} //IndexExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InstantiationExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InstantiationExpressionImpl.java new file mode 100644 index 000000000..0309ee5b4 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InstantiationExpressionImpl.java @@ -0,0 +1,139 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.InstantiationExpression; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Instantiation Expression'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.InstantiationExpressionImpl#getArgument Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.InstantiationExpressionImpl#getInstantiatedType Instantiated Type}
  • + *
+ * + * @generated + */ +public abstract class InstantiationExpressionImpl extends ExpressionImpl implements InstantiationExpression { + /** + * + * + * @generated + */ + protected InstantiationExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.INSTANTIATION_EXPRESSION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getArgument() { + return (EList)eGet(SysMLPackage.Literals.INSTANTIATION_EXPRESSION__ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public Type getInstantiatedType() { + return (Type)eGet(SysMLPackage.Literals.INSTANTIATION_EXPRESSION__INSTANTIATED_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setInstantiatedType(Type newInstantiatedType) { + eSet(SysMLPackage.Literals.INSTANTIATION_EXPRESSION__INSTANTIATED_TYPE, newInstantiatedType); + } + + /** + * The cached invocation delegate for the '{@link #instantiatedType() Instantiated Type}' operation. + * + * + * @see #instantiatedType() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate INSTANTIATED_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.INSTANTIATION_EXPRESSION___INSTANTIATED_TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Type instantiatedType() { + try { + return (Type)INSTANTIATED_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.INSTANTIATION_EXPRESSION___INSTANTIATED_TYPE: + return instantiatedType(); + } + return super.eInvoke(operationID, arguments); + } + +} //InstantiationExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InteractionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InteractionImpl.java new file mode 100644 index 000000000..ba32ca7e8 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InteractionImpl.java @@ -0,0 +1,132 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Interaction; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Interaction'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.InteractionImpl#getParameter Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.InteractionImpl#getStep Step}
  • + *
+ * + * @generated + */ +public class InteractionImpl extends AssociationImpl implements Interaction { + /** + * + * + * @generated + */ + protected InteractionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.INTERACTION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParameter() { + return (EList)eGet(SysMLPackage.Literals.BEHAVIOR__PARAMETER, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getStep() { + return (EList)eGet(SysMLPackage.Literals.BEHAVIOR__STEP, true); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == org.omg.sysml.model.sysml.Class.class) { + switch (derivedFeatureID) { + default: return -1; + } + } + if (baseClass == Behavior.class) { + switch (derivedFeatureID) { + case SysMLPackage.INTERACTION__PARAMETER: return SysMLPackage.BEHAVIOR__PARAMETER; + case SysMLPackage.INTERACTION__STEP: return SysMLPackage.BEHAVIOR__STEP; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == org.omg.sysml.model.sysml.Class.class) { + switch (baseFeatureID) { + default: return -1; + } + } + if (baseClass == Behavior.class) { + switch (baseFeatureID) { + case SysMLPackage.BEHAVIOR__PARAMETER: return SysMLPackage.INTERACTION__PARAMETER; + case SysMLPackage.BEHAVIOR__STEP: return SysMLPackage.INTERACTION__STEP; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //InteractionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InterfaceDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InterfaceDefinitionImpl.java new file mode 100644 index 000000000..f83954064 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InterfaceDefinitionImpl.java @@ -0,0 +1,98 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.InterfaceDefinition; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; + +/** + * + * An implementation of the model object 'Interface Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.InterfaceDefinitionImpl#getInterfaceEnd Interface End}
  • + *
+ * + * @generated + */ +public class InterfaceDefinitionImpl extends ConnectionDefinitionImpl implements InterfaceDefinition { + /** + * + * + * @generated + */ + protected InterfaceDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.INTERFACE_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getInterfaceEnd() { + return (EList)eGet(SysMLPackage.Literals.INTERFACE_DEFINITION__INTERFACE_END, true); + } + + /** + * + * + * @generated + */ + @Override + public EList getConnectionEnd() { + var sourceValue = this.getInterfaceEnd(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Usage typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Usage typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //InterfaceDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InterfaceUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InterfaceUsageImpl.java new file mode 100644 index 000000000..822004693 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InterfaceUsageImpl.java @@ -0,0 +1,98 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AssociationStructure; +import org.omg.sysml.model.sysml.InterfaceDefinition; +import org.omg.sysml.model.sysml.InterfaceUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Interface Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.InterfaceUsageImpl#getInterfaceDefinition Interface Definition}
  • + *
+ * + * @generated + */ +public class InterfaceUsageImpl extends ConnectionUsageImpl implements InterfaceUsage { + /** + * + * + * @generated + */ + protected InterfaceUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.INTERFACE_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getInterfaceDefinition() { + return (EList)eGet(SysMLPackage.Literals.INTERFACE_USAGE__INTERFACE_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public EList getConnectionDefinition() { + var sourceValue = this.getInterfaceDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof AssociationStructure typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof AssociationStructure typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //InterfaceUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IntersectingImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IntersectingImpl.java new file mode 100644 index 000000000..58d454907 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/IntersectingImpl.java @@ -0,0 +1,150 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Intersecting; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Intersecting'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.IntersectingImpl#getIntersectingType Intersecting Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.IntersectingImpl#getTypeIntersected Type Intersected}
  • + *
+ * + * @generated + */ +public class IntersectingImpl extends RelationshipImpl implements Intersecting { + /** + * + * + * @generated + */ + protected IntersectingImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.INTERSECTING; + } + + /** + * + * + * @generated + */ + @Override + public Type getIntersectingType() { + return (Type)eGet(SysMLPackage.Literals.INTERSECTING__INTERSECTING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIntersectingType(Type newIntersectingType) { + eSet(SysMLPackage.Literals.INTERSECTING__INTERSECTING_TYPE, newIntersectingType); + } + + /** + * + * + * @generated + */ + @Override + public Type getTypeIntersected() { + return (Type)eGet(SysMLPackage.Literals.INTERSECTING__TYPE_INTERSECTED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTypeIntersected(Type newTypeIntersected) { + eSet(SysMLPackage.Literals.INTERSECTING__TYPE_INTERSECTED, newTypeIntersected); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getIntersectingType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getTypeIntersected(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //IntersectingImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InvariantImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InvariantImpl.java new file mode 100644 index 000000000..f5af931dc --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InvariantImpl.java @@ -0,0 +1,80 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Invariant; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Invariant'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.InvariantImpl#isIsNegated Is Negated}
  • + *
+ * + * @generated + */ +public class InvariantImpl extends BooleanExpressionImpl implements Invariant { + /** + * + * + * @generated + */ + protected InvariantImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.INVARIANT; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsNegated() { + return (Boolean)eGet(SysMLPackage.Literals.INVARIANT__IS_NEGATED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsNegated(boolean newIsNegated) { + eSet(SysMLPackage.Literals.INVARIANT__IS_NEGATED, newIsNegated); + } + +} //InvariantImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InvocationExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InvocationExpressionImpl.java new file mode 100644 index 000000000..9af538a71 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/InvocationExpressionImpl.java @@ -0,0 +1,92 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.InvocationExpression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Invocation Expression'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.InvocationExpressionImpl#getOperand Operand}
  • + *
+ * + * @generated + */ +public class InvocationExpressionImpl extends InstantiationExpressionImpl implements InvocationExpression { + /** + * + * + * @generated + */ + protected InvocationExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.INVOCATION_EXPRESSION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOperand() { + return (EList)eGet(SysMLPackage.Literals.INVOCATION_EXPRESSION__OPERAND, true); + } + + /** + * + * + * @generated + */ + @Override + public boolean modelLevelEvaluable(EList visited) { + var safeVisited = visited == null ? new BasicEList() : visited; + for (var argument : this.getArgument()) { + if (argument == null || !argument.modelLevelEvaluable(safeVisited)) { + return false; + } + } + var function = this.getFunction(); + return function != null && function.isIsModelLevelEvaluable(); + } + +} //InvocationExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ItemDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ItemDefinitionImpl.java new file mode 100644 index 000000000..23c3ccaa7 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ItemDefinitionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ItemDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Item Definition'. + * + * + * @generated + */ +public class ItemDefinitionImpl extends OccurrenceDefinitionImpl implements ItemDefinition { + /** + * + * + * @generated + */ + protected ItemDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ITEM_DEFINITION; + } + +} //ItemDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ItemUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ItemUsageImpl.java new file mode 100644 index 000000000..c20bfef97 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ItemUsageImpl.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.Structure; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Item Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ItemUsageImpl#getItemDefinition Item Definition}
  • + *
+ * + * @generated + */ +public class ItemUsageImpl extends OccurrenceUsageImpl implements ItemUsage { + /** + * + * + * @generated + */ + protected ItemUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.ITEM_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getItemDefinition() { + return (EList)eGet(SysMLPackage.Literals.ITEM_USAGE__ITEM_DEFINITION, true); + } + +} //ItemUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/JoinNodeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/JoinNodeImpl.java new file mode 100644 index 000000000..fad59cb10 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/JoinNodeImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.JoinNode; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Join Node'. + * + * + * @generated + */ +public class JoinNodeImpl extends ControlNodeImpl implements JoinNode { + /** + * + * + * @generated + */ + protected JoinNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.JOIN_NODE; + } + +} //JoinNodeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LibraryPackageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LibraryPackageImpl.java new file mode 100644 index 000000000..0b2c58cce --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LibraryPackageImpl.java @@ -0,0 +1,91 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.LibraryPackage; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Library Package'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.LibraryPackageImpl#isIsStandard Is Standard}
  • + *
+ * + * @generated + */ +public class LibraryPackageImpl extends PackageImpl implements LibraryPackage { + /** + * + * + * @generated + */ + protected LibraryPackageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.LIBRARY_PACKAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsStandard() { + return (Boolean)eGet(SysMLPackage.Literals.LIBRARY_PACKAGE__IS_STANDARD, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsStandard(boolean newIsStandard) { + eSet(SysMLPackage.Literals.LIBRARY_PACKAGE__IS_STANDARD, newIsStandard); + } + + /** + * + * + * @generated + */ + @Override + public Namespace libraryNamespace() { + return this; + } + +} //LibraryPackageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralBooleanImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralBooleanImpl.java new file mode 100644 index 000000000..572ee0077 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralBooleanImpl.java @@ -0,0 +1,80 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.LiteralBoolean; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Literal Boolean'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.LiteralBooleanImpl#isValue Value}
  • + *
+ * + * @generated + */ +public class LiteralBooleanImpl extends LiteralExpressionImpl implements LiteralBoolean { + /** + * + * + * @generated + */ + protected LiteralBooleanImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.LITERAL_BOOLEAN; + } + + /** + * + * + * @generated + */ + @Override + public boolean isValue() { + return (Boolean)eGet(SysMLPackage.Literals.LITERAL_BOOLEAN__VALUE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setValue(boolean newValue) { + eSet(SysMLPackage.Literals.LITERAL_BOOLEAN__VALUE, newValue); + } + +} //LiteralBooleanImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralExpressionImpl.java new file mode 100644 index 000000000..bfb7fbc8d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralExpressionImpl.java @@ -0,0 +1,69 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.LiteralExpression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Literal Expression'. + * + * + * @generated + */ +public class LiteralExpressionImpl extends ExpressionImpl implements LiteralExpression { + /** + * + * + * @generated + */ + protected LiteralExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.LITERAL_EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public EList evaluate(Element target) { + var result = new BasicEList(); + result.add(this); + return result; + } + +} //LiteralExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralInfinityImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralInfinityImpl.java new file mode 100644 index 000000000..3aeff2cca --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralInfinityImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.LiteralInfinity; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Literal Infinity'. + * + * + * @generated + */ +public class LiteralInfinityImpl extends LiteralExpressionImpl implements LiteralInfinity { + /** + * + * + * @generated + */ + protected LiteralInfinityImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.LITERAL_INFINITY; + } + +} //LiteralInfinityImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralIntegerImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralIntegerImpl.java new file mode 100644 index 000000000..7e0eddcd6 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralIntegerImpl.java @@ -0,0 +1,80 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.LiteralInteger; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Literal Integer'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.LiteralIntegerImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class LiteralIntegerImpl extends LiteralExpressionImpl implements LiteralInteger { + /** + * + * + * @generated + */ + protected LiteralIntegerImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.LITERAL_INTEGER; + } + + /** + * + * + * @generated + */ + @Override + public int getValue() { + return (Integer)eGet(SysMLPackage.Literals.LITERAL_INTEGER__VALUE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setValue(int newValue) { + eSet(SysMLPackage.Literals.LITERAL_INTEGER__VALUE, newValue); + } + +} //LiteralIntegerImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralRationalImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralRationalImpl.java new file mode 100644 index 000000000..72f7e50ed --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralRationalImpl.java @@ -0,0 +1,80 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.LiteralRational; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Literal Rational'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.LiteralRationalImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class LiteralRationalImpl extends LiteralExpressionImpl implements LiteralRational { + /** + * + * + * @generated + */ + protected LiteralRationalImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.LITERAL_RATIONAL; + } + + /** + * + * + * @generated + */ + @Override + public double getValue() { + return (Double)eGet(SysMLPackage.Literals.LITERAL_RATIONAL__VALUE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setValue(double newValue) { + eSet(SysMLPackage.Literals.LITERAL_RATIONAL__VALUE, newValue); + } + +} //LiteralRationalImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralStringImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralStringImpl.java new file mode 100644 index 000000000..55efcfd96 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LiteralStringImpl.java @@ -0,0 +1,80 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.LiteralString; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Literal String'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.LiteralStringImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class LiteralStringImpl extends LiteralExpressionImpl implements LiteralString { + /** + * + * + * @generated + */ + protected LiteralStringImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.LITERAL_STRING; + } + + /** + * + * + * @generated + */ + @Override + public String getValue() { + return (String)eGet(SysMLPackage.Literals.LITERAL_STRING__VALUE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setValue(String newValue) { + eSet(SysMLPackage.Literals.LITERAL_STRING__VALUE, newValue); + } + +} //LiteralStringImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LoopActionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LoopActionUsageImpl.java new file mode 100644 index 000000000..d541b2fb6 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/LoopActionUsageImpl.java @@ -0,0 +1,81 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.LoopActionUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Loop Action Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.LoopActionUsageImpl#getBodyAction Body Action}
  • + *
+ * + * @generated + */ +public abstract class LoopActionUsageImpl extends ActionUsageImpl implements LoopActionUsage { + /** + * + * + * @generated + */ + protected LoopActionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.LOOP_ACTION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getBodyAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.LOOP_ACTION_USAGE__BODY_ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setBodyAction(ActionUsage newBodyAction) { + eSet(SysMLPackage.Literals.LOOP_ACTION_USAGE__BODY_ACTION, newBodyAction); + } + +} //LoopActionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MembershipExposeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MembershipExposeImpl.java new file mode 100644 index 000000000..4d1e34a25 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MembershipExposeImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.MembershipExpose; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Membership Expose'. + * + * + * @generated + */ +public class MembershipExposeImpl extends MembershipImportImpl implements MembershipExpose { + /** + * + * + * @generated + */ + protected MembershipExposeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.MEMBERSHIP_EXPOSE; + } + +} //MembershipExposeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MembershipImpl.java new file mode 100644 index 000000000..d19f16006 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MembershipImpl.java @@ -0,0 +1,278 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.VisibilityKind; + +/** + * + * An implementation of the model object 'Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.MembershipImpl#getMemberElementId Member Element Id}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MembershipImpl#getMemberName Member Name}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MembershipImpl#getMemberShortName Member Short Name}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MembershipImpl#getVisibility Visibility}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MembershipImpl#getMemberElement Member Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MembershipImpl#getMembershipOwningNamespace Membership Owning Namespace}
  • + *
+ * + * @generated + */ +public class MembershipImpl extends RelationshipImpl implements Membership { + /** + * + * + * @generated + */ + protected MembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public String getMemberElementId() { + return (String)eGet(SysMLPackage.Literals.MEMBERSHIP__MEMBER_ELEMENT_ID, true); + } + + /** + * + * + * @generated + */ + @Override + public void setMemberElementId(String newMemberElementId) { + eSet(SysMLPackage.Literals.MEMBERSHIP__MEMBER_ELEMENT_ID, newMemberElementId); + } + + /** + * + * + * @generated + */ + @Override + public String getMemberName() { + return (String)eGet(SysMLPackage.Literals.MEMBERSHIP__MEMBER_NAME, true); + } + + /** + * + * + * @generated + */ + @Override + public void setMemberName(String newMemberName) { + eSet(SysMLPackage.Literals.MEMBERSHIP__MEMBER_NAME, newMemberName); + } + + /** + * + * + * @generated + */ + @Override + public String getMemberShortName() { + return (String)eGet(SysMLPackage.Literals.MEMBERSHIP__MEMBER_SHORT_NAME, true); + } + + /** + * + * + * @generated + */ + @Override + public void setMemberShortName(String newMemberShortName) { + eSet(SysMLPackage.Literals.MEMBERSHIP__MEMBER_SHORT_NAME, newMemberShortName); + } + + /** + * + * + * @generated + */ + @Override + public VisibilityKind getVisibility() { + return (VisibilityKind)eGet(SysMLPackage.Literals.MEMBERSHIP__VISIBILITY, true); + } + + /** + * + * + * @generated + */ + @Override + public void setVisibility(VisibilityKind newVisibility) { + eSet(SysMLPackage.Literals.MEMBERSHIP__VISIBILITY, newVisibility); + } + + /** + * + * + * @generated + */ + @Override + public Element getMemberElement() { + return (Element)eGet(SysMLPackage.Literals.MEMBERSHIP__MEMBER_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setMemberElement(Element newMemberElement) { + eSet(SysMLPackage.Literals.MEMBERSHIP__MEMBER_ELEMENT, newMemberElement); + } + + /** + * + * + * @generated + */ + @Override + public Namespace getMembershipOwningNamespace() { + return (Namespace)eGet(SysMLPackage.Literals.MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setMembershipOwningNamespace(Namespace newMembershipOwningNamespace) { + eSet(SysMLPackage.Literals.MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE, newMembershipOwningNamespace); + } + + /** + * The cached invocation delegate for the '{@link #isDistinguishableFrom(org.omg.sysml.model.sysml.Membership) Is Distinguishable From}' operation. + * + * + * @see #isDistinguishableFrom(org.omg.sysml.model.sysml.Membership) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_DISTINGUISHABLE_FROM_MEMBERSHIP__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isDistinguishableFrom(Membership other) { + try { + return (Boolean)IS_DISTINGUISHABLE_FROM_MEMBERSHIP__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{other})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP: + return isDistinguishableFrom((Membership)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getMemberElement(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getMembershipOwningNamespace(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //MembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MembershipImportImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MembershipImportImpl.java new file mode 100644 index 000000000..a08d58a0c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MembershipImportImpl.java @@ -0,0 +1,107 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.MembershipImport; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Membership Import'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.MembershipImportImpl#getImportedMembership Imported Membership}
  • + *
+ * + * @generated + */ +public class MembershipImportImpl extends ImportImpl implements MembershipImport { + /** + * + * + * @generated + */ + protected MembershipImportImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.MEMBERSHIP_IMPORT; + } + + /** + * + * + * @generated + */ + @Override + public Membership getImportedMembership() { + return (Membership)eGet(SysMLPackage.Literals.MEMBERSHIP_IMPORT__IMPORTED_MEMBERSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public void setImportedMembership(Membership newImportedMembership) { + eSet(SysMLPackage.Literals.MEMBERSHIP_IMPORT__IMPORTED_MEMBERSHIP, newImportedMembership); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getImportedMembership(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //MembershipImportImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MergeNodeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MergeNodeImpl.java new file mode 100644 index 000000000..9c27abbdb --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MergeNodeImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.MergeNode; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Merge Node'. + * + * + * @generated + */ +public class MergeNodeImpl extends ControlNodeImpl implements MergeNode { + /** + * + * + * @generated + */ + protected MergeNodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.MERGE_NODE; + } + +} //MergeNodeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetaclassImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetaclassImpl.java new file mode 100644 index 000000000..334f88f95 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetaclassImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Metaclass'. + * + * + * @generated + */ +public class MetaclassImpl extends StructureImpl implements Metaclass { + /** + * + * + * @generated + */ + protected MetaclassImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.METACLASS; + } + +} //MetaclassImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataAccessExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataAccessExpressionImpl.java new file mode 100644 index 000000000..4d3b184dc --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataAccessExpressionImpl.java @@ -0,0 +1,127 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.MetadataAccessExpression; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Metadata Access Expression'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataAccessExpressionImpl#getReferencedElement Referenced Element}
  • + *
+ * + * @generated + */ +public class MetadataAccessExpressionImpl extends ExpressionImpl implements MetadataAccessExpression { + /** + * + * + * @generated + */ + protected MetadataAccessExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.METADATA_ACCESS_EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public Element getReferencedElement() { + return (Element)eGet(SysMLPackage.Literals.METADATA_ACCESS_EXPRESSION__REFERENCED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReferencedElement(Element newReferencedElement) { + eSet(SysMLPackage.Literals.METADATA_ACCESS_EXPRESSION__REFERENCED_ELEMENT, newReferencedElement); + } + + /** + * The cached invocation delegate for the '{@link #metaclassFeature() Metaclass Feature}' operation. + * + * + * @see #metaclassFeature() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate METACLASS_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.METADATA_ACCESS_EXPRESSION___METACLASS_FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public MetadataFeature metaclassFeature() { + try { + return (MetadataFeature)METACLASS_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.METADATA_ACCESS_EXPRESSION___METACLASS_FEATURE: + return metaclassFeature(); + } + return super.eInvoke(operationID, arguments); + } + +} //MetadataAccessExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataDefinitionImpl.java new file mode 100644 index 000000000..265f40ff6 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataDefinitionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.MetadataDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Metadata Definition'. + * + * + * @generated + */ +public class MetadataDefinitionImpl extends ItemDefinitionImpl implements MetadataDefinition { + /** + * + * + * @generated + */ + protected MetadataDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.METADATA_DEFINITION; + } + +} //MetadataDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataFeatureImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataFeatureImpl.java new file mode 100644 index 000000000..568579aa8 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataFeatureImpl.java @@ -0,0 +1,308 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Metadata Feature'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataFeatureImpl#getAnnotatedElement Annotated Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataFeatureImpl#getAnnotation Annotation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataFeatureImpl#getOwnedAnnotatingRelationship Owned Annotating Relationship}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataFeatureImpl#getOwningAnnotatingRelationship Owning Annotating Relationship}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataFeatureImpl#getMetaclass Metaclass}
  • + *
+ * + * @generated + */ +public class MetadataFeatureImpl extends FeatureImpl implements MetadataFeature { + /** + * + * + * @generated + */ + protected MetadataFeatureImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.METADATA_FEATURE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAnnotatedElement() { + return (EList)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__ANNOTATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAnnotation() { + return (EList)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__ANNOTATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedAnnotatingRelationship() { + return (EList)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public Annotation getOwningAnnotatingRelationship() { + return (Annotation)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningAnnotatingRelationship(Annotation newOwningAnnotatingRelationship) { + eSet(SysMLPackage.Literals.ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP, newOwningAnnotatingRelationship); + } + + /** + * + * + * @generated + */ + @Override + public Metaclass getMetaclass() { + return (Metaclass)eGet(SysMLPackage.Literals.METADATA_FEATURE__METACLASS, true); + } + + /** + * + * + * @generated + */ + @Override + public void setMetaclass(Metaclass newMetaclass) { + eSet(SysMLPackage.Literals.METADATA_FEATURE__METACLASS, newMetaclass); + } + + /** + * The cached invocation delegate for the '{@link #evaluateFeature(org.omg.sysml.model.sysml.Feature) Evaluate Feature}' operation. + * + * + * @see #evaluateFeature(org.omg.sysml.model.sysml.Feature) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate EVALUATE_FEATURE_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.METADATA_FEATURE___EVALUATE_FEATURE__FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList evaluateFeature(Feature baseFeature) { + try { + return (EList)EVALUATE_FEATURE_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{baseFeature})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isSemantic() Is Semantic}' operation. + * + * + * @see #isSemantic() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_SEMANTIC__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.METADATA_FEATURE___IS_SEMANTIC).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isSemantic() { + try { + return (Boolean)IS_SEMANTIC__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isSyntactic() Is Syntactic}' operation. + * + * + * @see #isSyntactic() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_SYNTACTIC__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.METADATA_FEATURE___IS_SYNTACTIC).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isSyntactic() { + try { + return (Boolean)IS_SYNTACTIC__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #syntaxElement() Syntax Element}' operation. + * + * + * @see #syntaxElement() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate SYNTAX_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.METADATA_FEATURE___SYNTAX_ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Element syntaxElement() { + try { + return (Element)SYNTAX_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == AnnotatingElement.class) { + switch (derivedFeatureID) { + case SysMLPackage.METADATA_FEATURE__ANNOTATED_ELEMENT: return SysMLPackage.ANNOTATING_ELEMENT__ANNOTATED_ELEMENT; + case SysMLPackage.METADATA_FEATURE__ANNOTATION: return SysMLPackage.ANNOTATING_ELEMENT__ANNOTATION; + case SysMLPackage.METADATA_FEATURE__OWNED_ANNOTATING_RELATIONSHIP: return SysMLPackage.ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP; + case SysMLPackage.METADATA_FEATURE__OWNING_ANNOTATING_RELATIONSHIP: return SysMLPackage.ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == AnnotatingElement.class) { + switch (baseFeatureID) { + case SysMLPackage.ANNOTATING_ELEMENT__ANNOTATED_ELEMENT: return SysMLPackage.METADATA_FEATURE__ANNOTATED_ELEMENT; + case SysMLPackage.ANNOTATING_ELEMENT__ANNOTATION: return SysMLPackage.METADATA_FEATURE__ANNOTATION; + case SysMLPackage.ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP: return SysMLPackage.METADATA_FEATURE__OWNED_ANNOTATING_RELATIONSHIP; + case SysMLPackage.ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP: return SysMLPackage.METADATA_FEATURE__OWNING_ANNOTATING_RELATIONSHIP; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.METADATA_FEATURE___EVALUATE_FEATURE__FEATURE: + return evaluateFeature((Feature)arguments.get(0)); + case SysMLPackage.METADATA_FEATURE___IS_SEMANTIC: + return isSemantic(); + case SysMLPackage.METADATA_FEATURE___IS_SYNTACTIC: + return isSyntactic(); + case SysMLPackage.METADATA_FEATURE___SYNTAX_ELEMENT: + return syntaxElement(); + } + return super.eInvoke(operationID, arguments); + } + +} //MetadataFeatureImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataUsageImpl.java new file mode 100644 index 000000000..64a3d0112 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MetadataUsageImpl.java @@ -0,0 +1,402 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.MetadataUsage; +import org.omg.sysml.model.sysml.Structure; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Metadata Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataUsageImpl#getAnnotatedElement Annotated Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataUsageImpl#getAnnotation Annotation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataUsageImpl#getOwnedAnnotatingRelationship Owned Annotating Relationship}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataUsageImpl#getOwningAnnotatingRelationship Owning Annotating Relationship}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataUsageImpl#getMetaclass Metaclass}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MetadataUsageImpl#getMetadataDefinition Metadata Definition}
  • + *
+ * + * @generated + */ +public class MetadataUsageImpl extends ItemUsageImpl implements MetadataUsage { + /** + * + * + * @generated + */ + protected MetadataUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.METADATA_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAnnotatedElement() { + return (EList)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__ANNOTATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAnnotation() { + return (EList)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__ANNOTATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedAnnotatingRelationship() { + return (EList)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public Annotation getOwningAnnotatingRelationship() { + return (Annotation)eGet(SysMLPackage.Literals.ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningAnnotatingRelationship(Annotation newOwningAnnotatingRelationship) { + eSet(SysMLPackage.Literals.ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP, newOwningAnnotatingRelationship); + } + + + /** + * + * + * @generated + */ + @Override + public Metaclass getMetaclass() { + var sourceValue = this.getMetadataDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Metaclass typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Metaclass typedValue) { + return typedValue; + } + return null; + } + /** + * + * + * @generated + */ + @Override + public void setMetaclass(Metaclass newMetaclass) { + eSet(SysMLPackage.Literals.METADATA_FEATURE__METACLASS, newMetaclass); + } + + /** + * + * + * @generated + */ + @Override + public Metaclass getMetadataDefinition() { + return (Metaclass)eGet(SysMLPackage.Literals.METADATA_USAGE__METADATA_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setMetadataDefinition(Metaclass newMetadataDefinition) { + eSet(SysMLPackage.Literals.METADATA_USAGE__METADATA_DEFINITION, newMetadataDefinition); + } + + /** + * The cached invocation delegate for the '{@link #evaluateFeature(org.omg.sysml.model.sysml.Feature) Evaluate Feature}' operation. + * + * + * @see #evaluateFeature(org.omg.sysml.model.sysml.Feature) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate EVALUATE_FEATURE_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.METADATA_FEATURE___EVALUATE_FEATURE__FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList evaluateFeature(Feature baseFeature) { + try { + return (EList)EVALUATE_FEATURE_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{baseFeature})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isSemantic() Is Semantic}' operation. + * + * + * @see #isSemantic() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_SEMANTIC__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.METADATA_FEATURE___IS_SEMANTIC).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isSemantic() { + try { + return (Boolean)IS_SEMANTIC__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isSyntactic() Is Syntactic}' operation. + * + * + * @see #isSyntactic() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_SYNTACTIC__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.METADATA_FEATURE___IS_SYNTACTIC).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isSyntactic() { + try { + return (Boolean)IS_SYNTACTIC__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #syntaxElement() Syntax Element}' operation. + * + * + * @see #syntaxElement() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate SYNTAX_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.METADATA_FEATURE___SYNTAX_ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Element syntaxElement() { + try { + return (Element)SYNTAX_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == AnnotatingElement.class) { + switch (derivedFeatureID) { + case SysMLPackage.METADATA_USAGE__ANNOTATED_ELEMENT: return SysMLPackage.ANNOTATING_ELEMENT__ANNOTATED_ELEMENT; + case SysMLPackage.METADATA_USAGE__ANNOTATION: return SysMLPackage.ANNOTATING_ELEMENT__ANNOTATION; + case SysMLPackage.METADATA_USAGE__OWNED_ANNOTATING_RELATIONSHIP: return SysMLPackage.ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP; + case SysMLPackage.METADATA_USAGE__OWNING_ANNOTATING_RELATIONSHIP: return SysMLPackage.ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP; + default: return -1; + } + } + if (baseClass == MetadataFeature.class) { + switch (derivedFeatureID) { + case SysMLPackage.METADATA_USAGE__METACLASS: return SysMLPackage.METADATA_FEATURE__METACLASS; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == AnnotatingElement.class) { + switch (baseFeatureID) { + case SysMLPackage.ANNOTATING_ELEMENT__ANNOTATED_ELEMENT: return SysMLPackage.METADATA_USAGE__ANNOTATED_ELEMENT; + case SysMLPackage.ANNOTATING_ELEMENT__ANNOTATION: return SysMLPackage.METADATA_USAGE__ANNOTATION; + case SysMLPackage.ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP: return SysMLPackage.METADATA_USAGE__OWNED_ANNOTATING_RELATIONSHIP; + case SysMLPackage.ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP: return SysMLPackage.METADATA_USAGE__OWNING_ANNOTATING_RELATIONSHIP; + default: return -1; + } + } + if (baseClass == MetadataFeature.class) { + switch (baseFeatureID) { + case SysMLPackage.METADATA_FEATURE__METACLASS: return SysMLPackage.METADATA_USAGE__METACLASS; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedOperationID(int baseOperationID, Class baseClass) { + if (baseClass == AnnotatingElement.class) { + switch (baseOperationID) { + default: return -1; + } + } + if (baseClass == MetadataFeature.class) { + switch (baseOperationID) { + case SysMLPackage.METADATA_FEATURE___EVALUATE_FEATURE__FEATURE: return SysMLPackage.METADATA_USAGE___EVALUATE_FEATURE__FEATURE; + case SysMLPackage.METADATA_FEATURE___IS_SEMANTIC: return SysMLPackage.METADATA_USAGE___IS_SEMANTIC; + case SysMLPackage.METADATA_FEATURE___IS_SYNTACTIC: return SysMLPackage.METADATA_USAGE___IS_SYNTACTIC; + case SysMLPackage.METADATA_FEATURE___SYNTAX_ELEMENT: return SysMLPackage.METADATA_USAGE___SYNTAX_ELEMENT; + default: return -1; + } + } + return super.eDerivedOperationID(baseOperationID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.METADATA_USAGE___EVALUATE_FEATURE__FEATURE: + return evaluateFeature((Feature)arguments.get(0)); + case SysMLPackage.METADATA_USAGE___IS_SEMANTIC: + return isSemantic(); + case SysMLPackage.METADATA_USAGE___IS_SYNTACTIC: + return isSyntactic(); + case SysMLPackage.METADATA_USAGE___SYNTAX_ELEMENT: + return syntaxElement(); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public EList getItemDefinition() { + var sourceValue = this.getMetadataDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Structure typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Structure typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //MetadataUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MultiplicityImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MultiplicityImpl.java new file mode 100644 index 000000000..b947baac3 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MultiplicityImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Multiplicity'. + * + * + * @generated + */ +public class MultiplicityImpl extends FeatureImpl implements Multiplicity { + /** + * + * + * @generated + */ + protected MultiplicityImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.MULTIPLICITY; + } + +} //MultiplicityImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MultiplicityRangeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MultiplicityRangeImpl.java new file mode 100644 index 000000000..f424d5def --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/MultiplicityRangeImpl.java @@ -0,0 +1,187 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.MultiplicityRange; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Multiplicity Range'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.MultiplicityRangeImpl#getBound Bound}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MultiplicityRangeImpl#getLowerBound Lower Bound}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.MultiplicityRangeImpl#getUpperBound Upper Bound}
  • + *
+ * + * @generated + */ +public class MultiplicityRangeImpl extends MultiplicityImpl implements MultiplicityRange { + /** + * + * + * @generated + */ + protected MultiplicityRangeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.MULTIPLICITY_RANGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getBound() { + return (EList)eGet(SysMLPackage.Literals.MULTIPLICITY_RANGE__BOUND, true); + } + + /** + * + * + * @generated + */ + @Override + public Expression getLowerBound() { + return (Expression)eGet(SysMLPackage.Literals.MULTIPLICITY_RANGE__LOWER_BOUND, true); + } + + /** + * + * + * @generated + */ + @Override + public void setLowerBound(Expression newLowerBound) { + eSet(SysMLPackage.Literals.MULTIPLICITY_RANGE__LOWER_BOUND, newLowerBound); + } + + /** + * + * + * @generated + */ + @Override + public Expression getUpperBound() { + return (Expression)eGet(SysMLPackage.Literals.MULTIPLICITY_RANGE__UPPER_BOUND, true); + } + + /** + * + * + * @generated + */ + @Override + public void setUpperBound(Expression newUpperBound) { + eSet(SysMLPackage.Literals.MULTIPLICITY_RANGE__UPPER_BOUND, newUpperBound); + } + + /** + * The cached invocation delegate for the '{@link #hasBounds(int, int) Has Bounds}' operation. + * + * + * @see #hasBounds(int, int) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate HAS_BOUNDS_INT_INT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.MULTIPLICITY_RANGE___HAS_BOUNDS__INT_INT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean hasBounds(int lower, int upper) { + try { + return (Boolean)HAS_BOUNDS_INT_INT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(2, new Object[]{lower, upper})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #valueOf(org.omg.sysml.model.sysml.Expression) Value Of}' operation. + * + * + * @see #valueOf(org.omg.sysml.model.sysml.Expression) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate VALUE_OF_EXPRESSION__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.MULTIPLICITY_RANGE___VALUE_OF__EXPRESSION).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public int valueOf(Expression bound) { + try { + return (Integer)VALUE_OF_EXPRESSION__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{bound})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.MULTIPLICITY_RANGE___HAS_BOUNDS__INT_INT: + return hasBounds((Integer)arguments.get(0), (Integer)arguments.get(1)); + case SysMLPackage.MULTIPLICITY_RANGE___VALUE_OF__EXPRESSION: + return valueOf((Expression)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + +} //MultiplicityRangeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NamespaceExposeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NamespaceExposeImpl.java new file mode 100644 index 000000000..29a8be175 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NamespaceExposeImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.NamespaceExpose; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Namespace Expose'. + * + * + * @generated + */ +public class NamespaceExposeImpl extends NamespaceImportImpl implements NamespaceExpose { + /** + * + * + * @generated + */ + protected NamespaceExposeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.NAMESPACE_EXPOSE; + } + +} //NamespaceExposeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NamespaceImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NamespaceImpl.java new file mode 100644 index 000000000..f17cd662d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NamespaceImpl.java @@ -0,0 +1,456 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Import; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.VisibilityKind; + +/** + * + * An implementation of the model object 'Namespace'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.NamespaceImpl#getImportedMembership Imported Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.NamespaceImpl#getMember Member}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.NamespaceImpl#getMembership Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.NamespaceImpl#getOwnedImport Owned Import}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.NamespaceImpl#getOwnedMember Owned Member}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.NamespaceImpl#getOwnedMembership Owned Membership}
  • + *
+ * + * @generated + */ +public class NamespaceImpl extends ElementImpl implements Namespace { + /** + * + * + * @generated + */ + protected NamespaceImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.NAMESPACE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getImportedMembership() { + return (EList)eGet(SysMLPackage.Literals.NAMESPACE__IMPORTED_MEMBERSHIP, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getMember() { + return (EList)eGet(SysMLPackage.Literals.NAMESPACE__MEMBER, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getMembership() { + return (EList)eGet(SysMLPackage.Literals.NAMESPACE__MEMBERSHIP, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedImport() { + return (EList)eGet(SysMLPackage.Literals.NAMESPACE__OWNED_IMPORT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedMember() { + return (EList)eGet(SysMLPackage.Literals.NAMESPACE__OWNED_MEMBER, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedMembership() { + return (EList)eGet(SysMLPackage.Literals.NAMESPACE__OWNED_MEMBERSHIP, true); + } + + /** + * The cached invocation delegate for the '{@link #importedMemberships(org.eclipse.emf.common.util.EList) Imported Memberships}' operation. + * + * + * @see #importedMemberships(org.eclipse.emf.common.util.EList) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IMPORTED_MEMBERSHIPS_ELIST__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___IMPORTED_MEMBERSHIPS__ELIST).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList importedMemberships(EList excluded) { + try { + return (EList)IMPORTED_MEMBERSHIPS_ELIST__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{excluded})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #membershipsOfVisibility(org.omg.sysml.model.sysml.VisibilityKind, org.eclipse.emf.common.util.EList) Memberships Of Visibility}' operation. + * + * + * @see #membershipsOfVisibility(org.omg.sysml.model.sysml.VisibilityKind, org.eclipse.emf.common.util.EList) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate MEMBERSHIPS_OF_VISIBILITY_VISIBILITY_KIND_ELIST__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList membershipsOfVisibility(VisibilityKind visibility, EList excluded) { + try { + return (EList)MEMBERSHIPS_OF_VISIBILITY_VISIBILITY_KIND_ELIST__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(2, new Object[]{visibility, excluded})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #namesOf(org.omg.sysml.model.sysml.Element) Names Of}' operation. + * + * + * @see #namesOf(org.omg.sysml.model.sysml.Element) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate NAMES_OF_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___NAMES_OF__ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList namesOf(Element element) { + try { + return (EList)NAMES_OF_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{element})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #qualificationOf(java.lang.String) Qualification Of}' operation. + * + * + * @see #qualificationOf(java.lang.String) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate QUALIFICATION_OF_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___QUALIFICATION_OF__STRING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public String qualificationOf(String qualifiedName) { + try { + return (String)QUALIFICATION_OF_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{qualifiedName})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #resolve(java.lang.String) Resolve}' operation. + * + * + * @see #resolve(java.lang.String) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___RESOLVE__STRING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Membership resolve(String qualifiedName) { + try { + return (Membership)RESOLVE_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{qualifiedName})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #resolveGlobal(java.lang.String) Resolve Global}' operation. + * + * + * @see #resolveGlobal(java.lang.String) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_GLOBAL_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___RESOLVE_GLOBAL__STRING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Membership resolveGlobal(String qualifiedName) { + try { + return (Membership)RESOLVE_GLOBAL_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{qualifiedName})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #resolveLocal(java.lang.String) Resolve Local}' operation. + * + * + * @see #resolveLocal(java.lang.String) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_LOCAL_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___RESOLVE_LOCAL__STRING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Membership resolveLocal(String name) { + try { + return (Membership)RESOLVE_LOCAL_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{name})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #resolveVisible(java.lang.String) Resolve Visible}' operation. + * + * + * @see #resolveVisible(java.lang.String) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate RESOLVE_VISIBLE_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___RESOLVE_VISIBLE__STRING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Membership resolveVisible(String name) { + try { + return (Membership)RESOLVE_VISIBLE_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{name})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #unqualifiedNameOf(java.lang.String) Unqualified Name Of}' operation. + * + * + * @see #unqualifiedNameOf(java.lang.String) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate UNQUALIFIED_NAME_OF_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___UNQUALIFIED_NAME_OF__STRING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public String unqualifiedNameOf(String qualifiedName) { + try { + return (String)UNQUALIFIED_NAME_OF_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{qualifiedName})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #visibilityOf(org.omg.sysml.model.sysml.Membership) Visibility Of}' operation. + * + * + * @see #visibilityOf(org.omg.sysml.model.sysml.Membership) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate VISIBILITY_OF_MEMBERSHIP__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___VISIBILITY_OF__MEMBERSHIP).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public VisibilityKind visibilityOf(Membership mem) { + try { + return (VisibilityKind)VISIBILITY_OF_MEMBERSHIP__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{mem})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #visibleMemberships(org.eclipse.emf.common.util.EList, boolean, boolean) Visible Memberships}' operation. + * + * + * @see #visibleMemberships(org.eclipse.emf.common.util.EList, boolean, boolean) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate VISIBLE_MEMBERSHIPS_ELIST_BOOLEAN_BOOLEAN__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.NAMESPACE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList visibleMemberships(EList excluded, boolean isRecursive, boolean includeAll) { + try { + return (EList)VISIBLE_MEMBERSHIPS_ELIST_BOOLEAN_BOOLEAN__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(3, new Object[]{excluded, isRecursive, includeAll})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + @SuppressWarnings("unchecked") + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.NAMESPACE___IMPORTED_MEMBERSHIPS__ELIST: + return importedMemberships((EList)arguments.get(0)); + case SysMLPackage.NAMESPACE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST: + return membershipsOfVisibility((VisibilityKind)arguments.get(0), (EList)arguments.get(1)); + case SysMLPackage.NAMESPACE___NAMES_OF__ELEMENT: + return namesOf((Element)arguments.get(0)); + case SysMLPackage.NAMESPACE___QUALIFICATION_OF__STRING: + return qualificationOf((String)arguments.get(0)); + case SysMLPackage.NAMESPACE___RESOLVE__STRING: + return resolve((String)arguments.get(0)); + case SysMLPackage.NAMESPACE___RESOLVE_GLOBAL__STRING: + return resolveGlobal((String)arguments.get(0)); + case SysMLPackage.NAMESPACE___RESOLVE_LOCAL__STRING: + return resolveLocal((String)arguments.get(0)); + case SysMLPackage.NAMESPACE___RESOLVE_VISIBLE__STRING: + return resolveVisible((String)arguments.get(0)); + case SysMLPackage.NAMESPACE___UNQUALIFIED_NAME_OF__STRING: + return unqualifiedNameOf((String)arguments.get(0)); + case SysMLPackage.NAMESPACE___VISIBILITY_OF__MEMBERSHIP: + return visibilityOf((Membership)arguments.get(0)); + case SysMLPackage.NAMESPACE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN: + return visibleMemberships((EList)arguments.get(0), (Boolean)arguments.get(1), (Boolean)arguments.get(2)); + } + return super.eInvoke(operationID, arguments); + } + +} //NamespaceImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NamespaceImportImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NamespaceImportImpl.java new file mode 100644 index 000000000..d9c32568c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NamespaceImportImpl.java @@ -0,0 +1,107 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.NamespaceImport; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Namespace Import'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.NamespaceImportImpl#getImportedNamespace Imported Namespace}
  • + *
+ * + * @generated + */ +public class NamespaceImportImpl extends ImportImpl implements NamespaceImport { + /** + * + * + * @generated + */ + protected NamespaceImportImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.NAMESPACE_IMPORT; + } + + /** + * + * + * @generated + */ + @Override + public Namespace getImportedNamespace() { + return (Namespace)eGet(SysMLPackage.Literals.NAMESPACE_IMPORT__IMPORTED_NAMESPACE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setImportedNamespace(Namespace newImportedNamespace) { + eSet(SysMLPackage.Literals.NAMESPACE_IMPORT__IMPORTED_NAMESPACE, newImportedNamespace); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getImportedNamespace(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //NamespaceImportImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NullExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NullExpressionImpl.java new file mode 100644 index 000000000..dbe7185d1 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/NullExpressionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.NullExpression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Null Expression'. + * + * + * @generated + */ +public class NullExpressionImpl extends ExpressionImpl implements NullExpression { + /** + * + * + * @generated + */ + protected NullExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.NULL_EXPRESSION; + } + +} //NullExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ObjectiveMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ObjectiveMembershipImpl.java new file mode 100644 index 000000000..61e512a91 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ObjectiveMembershipImpl.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.ObjectiveMembership; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Objective Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ObjectiveMembershipImpl#getOwnedObjectiveRequirement Owned Objective Requirement}
  • + *
+ * + * @generated + */ +public class ObjectiveMembershipImpl extends FeatureMembershipImpl implements ObjectiveMembership { + /** + * + * + * @generated + */ + protected ObjectiveMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.OBJECTIVE_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public RequirementUsage getOwnedObjectiveRequirement() { + return (RequirementUsage)eGet(SysMLPackage.Literals.OBJECTIVE_MEMBERSHIP__OWNED_OBJECTIVE_REQUIREMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedObjectiveRequirement(RequirementUsage newOwnedObjectiveRequirement) { + eSet(SysMLPackage.Literals.OBJECTIVE_MEMBERSHIP__OWNED_OBJECTIVE_REQUIREMENT, newOwnedObjectiveRequirement); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberFeature() { + var sourceValue = this.getOwnedObjectiveRequirement(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //ObjectiveMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OccurrenceDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OccurrenceDefinitionImpl.java new file mode 100644 index 000000000..3aef0158a --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OccurrenceDefinitionImpl.java @@ -0,0 +1,80 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.OccurrenceDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Occurrence Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.OccurrenceDefinitionImpl#isIsIndividual Is Individual}
  • + *
+ * + * @generated + */ +public class OccurrenceDefinitionImpl extends DefinitionImpl implements OccurrenceDefinition { + /** + * + * + * @generated + */ + protected OccurrenceDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.OCCURRENCE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsIndividual() { + return (Boolean)eGet(SysMLPackage.Literals.OCCURRENCE_DEFINITION__IS_INDIVIDUAL, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsIndividual(boolean newIsIndividual) { + eSet(SysMLPackage.Literals.OCCURRENCE_DEFINITION__IS_INDIVIDUAL, newIsIndividual); + } + +} //OccurrenceDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OccurrenceUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OccurrenceUsageImpl.java new file mode 100644 index 000000000..6eb0a90d7 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OccurrenceUsageImpl.java @@ -0,0 +1,162 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.OccurrenceDefinition; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.PortionKind; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Occurrence Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.OccurrenceUsageImpl#isIsIndividual Is Individual}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.OccurrenceUsageImpl#getPortionKind Portion Kind}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.OccurrenceUsageImpl#getIndividualDefinition Individual Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.OccurrenceUsageImpl#getOccurrenceDefinition Occurrence Definition}
  • + *
+ * + * @generated + */ +public class OccurrenceUsageImpl extends UsageImpl implements OccurrenceUsage { + /** + * + * + * @generated + */ + protected OccurrenceUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.OCCURRENCE_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsIndividual() { + return (Boolean)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__IS_INDIVIDUAL, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsIndividual(boolean newIsIndividual) { + eSet(SysMLPackage.Literals.OCCURRENCE_USAGE__IS_INDIVIDUAL, newIsIndividual); + } + + /** + * + * + * @generated + */ + @Override + public PortionKind getPortionKind() { + return (PortionKind)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__PORTION_KIND, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPortionKind(PortionKind newPortionKind) { + eSet(SysMLPackage.Literals.OCCURRENCE_USAGE__PORTION_KIND, newPortionKind); + } + + /** + * + * + * @generated + */ + @Override + public OccurrenceDefinition getIndividualDefinition() { + return (OccurrenceDefinition)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIndividualDefinition(OccurrenceDefinition newIndividualDefinition) { + eSet(SysMLPackage.Literals.OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION, newIndividualDefinition); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOccurrenceDefinition() { + return (EList)eGet(SysMLPackage.Literals.OCCURRENCE_USAGE__OCCURRENCE_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public EList getDefinition() { + var sourceValue = this.getOccurrenceDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Classifier typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Classifier typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //OccurrenceUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OperatorExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OperatorExpressionImpl.java new file mode 100644 index 000000000..b68cddd92 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OperatorExpressionImpl.java @@ -0,0 +1,80 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.OperatorExpression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Operator Expression'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.OperatorExpressionImpl#getOperator Operator}
  • + *
+ * + * @generated + */ +public class OperatorExpressionImpl extends InvocationExpressionImpl implements OperatorExpression { + /** + * + * + * @generated + */ + protected OperatorExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.OPERATOR_EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public String getOperator() { + return (String)eGet(SysMLPackage.Literals.OPERATOR_EXPRESSION__OPERATOR, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOperator(String newOperator) { + eSet(SysMLPackage.Literals.OPERATOR_EXPRESSION__OPERATOR, newOperator); + } + +} //OperatorExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OwningMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OwningMembershipImpl.java new file mode 100644 index 000000000..137a36054 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/OwningMembershipImpl.java @@ -0,0 +1,265 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.OwningMembership; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Owning Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.OwningMembershipImpl#getOwnedMemberElementId Owned Member Element Id}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.OwningMembershipImpl#getOwnedMemberName Owned Member Name}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.OwningMembershipImpl#getOwnedMemberShortName Owned Member Short Name}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.OwningMembershipImpl#getOwnedMemberElement Owned Member Element}
  • + *
+ * + * @generated + */ +public class OwningMembershipImpl extends MembershipImpl implements OwningMembership { + /** + * + * + * @generated + */ + protected OwningMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.OWNING_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public String getOwnedMemberElementId() { + return (String)eGet(SysMLPackage.Literals.OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedMemberElementId(String newOwnedMemberElementId) { + eSet(SysMLPackage.Literals.OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID, newOwnedMemberElementId); + } + + /** + * + * + * @generated + */ + @Override + public String getOwnedMemberName() { + return (String)eGet(SysMLPackage.Literals.OWNING_MEMBERSHIP__OWNED_MEMBER_NAME, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedMemberName(String newOwnedMemberName) { + eSet(SysMLPackage.Literals.OWNING_MEMBERSHIP__OWNED_MEMBER_NAME, newOwnedMemberName); + } + + /** + * + * + * @generated + */ + @Override + public String getOwnedMemberShortName() { + return (String)eGet(SysMLPackage.Literals.OWNING_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedMemberShortName(String newOwnedMemberShortName) { + eSet(SysMLPackage.Literals.OWNING_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME, newOwnedMemberShortName); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwnedMemberElement() { + return (Element)eGet(SysMLPackage.Literals.OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedMemberElement(Element newOwnedMemberElement) { + eSet(SysMLPackage.Literals.OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT, newOwnedMemberElement); + } + + /** + * + * + * @generated + */ + @Override + public Element getMemberElement() { + var sourceValue = this.getOwnedMemberElement(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Element typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public java.lang.String getMemberElementId() { + var sourceValue = this.getOwnedMemberElementId(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof java.lang.String typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof java.lang.String typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public java.lang.String getMemberName() { + var sourceValue = this.getOwnedMemberName(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof java.lang.String typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof java.lang.String typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public java.lang.String getMemberShortName() { + var sourceValue = this.getOwnedMemberShortName(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof java.lang.String typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof java.lang.String typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public String path() { + var ownedElement = this.getOwnedMemberElement(); + var qualifiedName = ownedElement == null ? null : ownedElement.getQualifiedName(); + if (qualifiedName != null) { + return qualifiedName + "/owningMembership"; + } + var owningRelationship = this.getOwningRelationship(); + var owningRelatedElement = this.getOwningRelatedElement(); + if (owningRelationship == null && owningRelatedElement != null) { + var index = owningRelatedElement.getOwnedRelationship().indexOf(this) + 1; + return owningRelatedElement.path() + "/" + Integer.toString(index); + } + var relationshipQualifiedName = this.getQualifiedName(); + if (relationshipQualifiedName != null) { + return relationshipQualifiedName; + } + if (owningRelationship != null) { + var index = owningRelationship.getOwnedRelatedElement().indexOf(this) + 1; + return owningRelationship.path() + "/" + Integer.toString(index); + } + return ""; + } + +} //OwningMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PackageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PackageImpl.java new file mode 100644 index 000000000..551c8ed0b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PackageImpl.java @@ -0,0 +1,118 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Package'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.PackageImpl#getFilterCondition Filter Condition}
  • + *
+ * + * @generated + */ +public class PackageImpl extends NamespaceImpl implements org.omg.sysml.model.sysml.Package { + /** + * + * + * @generated + */ + protected PackageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.PACKAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getFilterCondition() { + return (EList)eGet(SysMLPackage.Literals.PACKAGE__FILTER_CONDITION, true); + } + + /** + * The cached invocation delegate for the '{@link #includeAsMember(org.omg.sysml.model.sysml.Element) Include As Member}' operation. + * + * + * @see #includeAsMember(org.omg.sysml.model.sysml.Element) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate INCLUDE_AS_MEMBER_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.PACKAGE___INCLUDE_AS_MEMBER__ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean includeAsMember(Element element) { + try { + return (Boolean)INCLUDE_AS_MEMBER_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{element})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.PACKAGE___INCLUDE_AS_MEMBER__ELEMENT: + return includeAsMember((Element)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + +} //PackageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ParameterMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ParameterMembershipImpl.java new file mode 100644 index 000000000..3658113e6 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ParameterMembershipImpl.java @@ -0,0 +1,149 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.ParameterMembership; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Parameter Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ParameterMembershipImpl#getOwnedMemberParameter Owned Member Parameter}
  • + *
+ * + * @generated + */ +public class ParameterMembershipImpl extends FeatureMembershipImpl implements ParameterMembership { + /** + * + * + * @generated + */ + protected ParameterMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.PARAMETER_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberParameter() { + return (Feature)eGet(SysMLPackage.Literals.PARAMETER_MEMBERSHIP__OWNED_MEMBER_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedMemberParameter(Feature newOwnedMemberParameter) { + eSet(SysMLPackage.Literals.PARAMETER_MEMBERSHIP__OWNED_MEMBER_PARAMETER, newOwnedMemberParameter); + } + + /** + * The cached invocation delegate for the '{@link #parameterDirection() Parameter Direction}' operation. + * + * + * @see #parameterDirection() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate PARAMETER_DIRECTION__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.PARAMETER_MEMBERSHIP___PARAMETER_DIRECTION).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public FeatureDirectionKind parameterDirection() { + try { + return (FeatureDirectionKind)PARAMETER_DIRECTION__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.PARAMETER_MEMBERSHIP___PARAMETER_DIRECTION: + return parameterDirection(); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberFeature() { + var sourceValue = this.getOwnedMemberParameter(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //ParameterMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PartDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PartDefinitionImpl.java new file mode 100644 index 000000000..307c7bcb2 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PartDefinitionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.PartDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Part Definition'. + * + * + * @generated + */ +public class PartDefinitionImpl extends ItemDefinitionImpl implements PartDefinition { + /** + * + * + * @generated + */ + protected PartDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.PART_DEFINITION; + } + +} //PartDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PartUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PartUsageImpl.java new file mode 100644 index 000000000..9c95f01ee --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PartUsageImpl.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.PartDefinition; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Part Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.PartUsageImpl#getPartDefinition Part Definition}
  • + *
+ * + * @generated + */ +public class PartUsageImpl extends ItemUsageImpl implements PartUsage { + /** + * + * + * @generated + */ + protected PartUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.PART_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getPartDefinition() { + return (EList)eGet(SysMLPackage.Literals.PART_USAGE__PART_DEFINITION, true); + } + +} //PartUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PayloadFeatureImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PayloadFeatureImpl.java new file mode 100644 index 000000000..e7dfaabbf --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PayloadFeatureImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.PayloadFeature; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Payload Feature'. + * + * + * @generated + */ +public class PayloadFeatureImpl extends FeatureImpl implements PayloadFeature { + /** + * + * + * @generated + */ + protected PayloadFeatureImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.PAYLOAD_FEATURE; + } + +} //PayloadFeatureImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PerformActionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PerformActionUsageImpl.java new file mode 100644 index 000000000..14ad9ba56 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PerformActionUsageImpl.java @@ -0,0 +1,149 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.EventOccurrenceUsage; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.PerformActionUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Perform Action Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.PerformActionUsageImpl#getEventOccurrence Event Occurrence}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.PerformActionUsageImpl#getPerformedAction Performed Action}
  • + *
+ * + * @generated + */ +public class PerformActionUsageImpl extends ActionUsageImpl implements PerformActionUsage { + /** + * + * + * @generated + */ + protected PerformActionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.PERFORM_ACTION_USAGE; + } + + + /** + * + * + * @generated + */ + @Override + public OccurrenceUsage getEventOccurrence() { + var sourceValue = this.getPerformedAction(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof OccurrenceUsage typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof OccurrenceUsage typedValue) { + return typedValue; + } + return null; + } + /** + * + * + * @generated + */ + @Override + public void setEventOccurrence(OccurrenceUsage newEventOccurrence) { + eSet(SysMLPackage.Literals.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE, newEventOccurrence); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getPerformedAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.PERFORM_ACTION_USAGE__PERFORMED_ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPerformedAction(ActionUsage newPerformedAction) { + eSet(SysMLPackage.Literals.PERFORM_ACTION_USAGE__PERFORMED_ACTION, newPerformedAction); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == EventOccurrenceUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.PERFORM_ACTION_USAGE__EVENT_OCCURRENCE: return SysMLPackage.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == EventOccurrenceUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE: return SysMLPackage.PERFORM_ACTION_USAGE__EVENT_OCCURRENCE; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //PerformActionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PortConjugationImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PortConjugationImpl.java new file mode 100644 index 000000000..759b4d255 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PortConjugationImpl.java @@ -0,0 +1,150 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.model.sysml.PortConjugation; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Port Conjugation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.PortConjugationImpl#getConjugatedPortDefinition Conjugated Port Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.PortConjugationImpl#getOriginalPortDefinition Original Port Definition}
  • + *
+ * + * @generated + */ +public class PortConjugationImpl extends ConjugationImpl implements PortConjugation { + /** + * + * + * @generated + */ + protected PortConjugationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.PORT_CONJUGATION; + } + + /** + * + * + * @generated + */ + @Override + public ConjugatedPortDefinition getConjugatedPortDefinition() { + return (ConjugatedPortDefinition)eGet(SysMLPackage.Literals.PORT_CONJUGATION__CONJUGATED_PORT_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setConjugatedPortDefinition(ConjugatedPortDefinition newConjugatedPortDefinition) { + eSet(SysMLPackage.Literals.PORT_CONJUGATION__CONJUGATED_PORT_DEFINITION, newConjugatedPortDefinition); + } + + /** + * + * + * @generated + */ + @Override + public PortDefinition getOriginalPortDefinition() { + return (PortDefinition)eGet(SysMLPackage.Literals.PORT_CONJUGATION__ORIGINAL_PORT_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOriginalPortDefinition(PortDefinition newOriginalPortDefinition) { + eSet(SysMLPackage.Literals.PORT_CONJUGATION__ORIGINAL_PORT_DEFINITION, newOriginalPortDefinition); + } + + /** + * + * + * @generated + */ + @Override + public Type getOwningType() { + var sourceValue = this.getConjugatedPortDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Type getOriginalType() { + var sourceValue = this.getOriginalPortDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + +} //PortConjugationImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PortDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PortDefinitionImpl.java new file mode 100644 index 000000000..8769da4b3 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PortDefinitionImpl.java @@ -0,0 +1,81 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Port Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.PortDefinitionImpl#getConjugatedPortDefinition Conjugated Port Definition}
  • + *
+ * + * @generated + */ +public class PortDefinitionImpl extends OccurrenceDefinitionImpl implements PortDefinition { + /** + * + * + * @generated + */ + protected PortDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.PORT_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public ConjugatedPortDefinition getConjugatedPortDefinition() { + return (ConjugatedPortDefinition)eGet(SysMLPackage.Literals.PORT_DEFINITION__CONJUGATED_PORT_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setConjugatedPortDefinition(ConjugatedPortDefinition newConjugatedPortDefinition) { + eSet(SysMLPackage.Literals.PORT_DEFINITION__CONJUGATED_PORT_DEFINITION, newConjugatedPortDefinition); + } + +} //PortDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PortUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PortUsageImpl.java new file mode 100644 index 000000000..762f08d28 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PortUsageImpl.java @@ -0,0 +1,97 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Port Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.PortUsageImpl#getPortDefinition Port Definition}
  • + *
+ * + * @generated + */ +public class PortUsageImpl extends OccurrenceUsageImpl implements PortUsage { + /** + * + * + * @generated + */ + protected PortUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.PORT_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getPortDefinition() { + return (EList)eGet(SysMLPackage.Literals.PORT_USAGE__PORT_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public EList getOccurrenceDefinition() { + var sourceValue = this.getPortDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof org.omg.sysml.model.sysml.Class typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof org.omg.sysml.model.sysml.Class typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //PortUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PredicateImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PredicateImpl.java new file mode 100644 index 000000000..696c2e5eb --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/PredicateImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Predicate'. + * + * + * @generated + */ +public class PredicateImpl extends FunctionImpl implements Predicate { + /** + * + * + * @generated + */ + protected PredicateImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.PREDICATE; + } + +} //PredicateImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RedefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RedefinitionImpl.java new file mode 100644 index 000000000..080a170f6 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RedefinitionImpl.java @@ -0,0 +1,148 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Redefinition; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Redefinition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.RedefinitionImpl#getRedefinedFeature Redefined Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RedefinitionImpl#getRedefiningFeature Redefining Feature}
  • + *
+ * + * @generated + */ +public class RedefinitionImpl extends SubsettingImpl implements Redefinition { + /** + * + * + * @generated + */ + protected RedefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.REDEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public Feature getRedefinedFeature() { + return (Feature)eGet(SysMLPackage.Literals.REDEFINITION__REDEFINED_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setRedefinedFeature(Feature newRedefinedFeature) { + eSet(SysMLPackage.Literals.REDEFINITION__REDEFINED_FEATURE, newRedefinedFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getRedefiningFeature() { + return (Feature)eGet(SysMLPackage.Literals.REDEFINITION__REDEFINING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setRedefiningFeature(Feature newRedefiningFeature) { + eSet(SysMLPackage.Literals.REDEFINITION__REDEFINING_FEATURE, newRedefiningFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getSubsettedFeature() { + var sourceValue = this.getRedefinedFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Feature getSubsettingFeature() { + var sourceValue = this.getRedefiningFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //RedefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ReferenceSubsettingImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ReferenceSubsettingImpl.java new file mode 100644 index 000000000..87b815186 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ReferenceSubsettingImpl.java @@ -0,0 +1,171 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.ReferenceSubsetting; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Reference Subsetting'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ReferenceSubsettingImpl#getReferencedFeature Referenced Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ReferenceSubsettingImpl#getReferencingFeature Referencing Feature}
  • + *
+ * + * @generated + */ +public class ReferenceSubsettingImpl extends SubsettingImpl implements ReferenceSubsetting { + /** + * + * + * @generated + */ + protected ReferenceSubsettingImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.REFERENCE_SUBSETTING; + } + + /** + * + * + * @generated + */ + @Override + public Feature getReferencedFeature() { + return (Feature)eGet(SysMLPackage.Literals.REFERENCE_SUBSETTING__REFERENCED_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReferencedFeature(Feature newReferencedFeature) { + eSet(SysMLPackage.Literals.REFERENCE_SUBSETTING__REFERENCED_FEATURE, newReferencedFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getReferencingFeature() { + return (Feature)eGet(SysMLPackage.Literals.REFERENCE_SUBSETTING__REFERENCING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReferencingFeature(Feature newReferencingFeature) { + eSet(SysMLPackage.Literals.REFERENCE_SUBSETTING__REFERENCING_FEATURE, newReferencingFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getSubsettedFeature() { + var sourceValue = this.getReferencedFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwningFeature() { + var sourceValue = this.getReferencingFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Feature getSubsettingFeature() { + var sourceValue = this.getReferencingFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //ReferenceSubsettingImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ReferenceUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ReferenceUsageImpl.java new file mode 100644 index 000000000..c7b41bc0c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ReferenceUsageImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Reference Usage'. + * + * + * @generated + */ +public class ReferenceUsageImpl extends UsageImpl implements ReferenceUsage { + /** + * + * + * @generated + */ + protected ReferenceUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.REFERENCE_USAGE; + } + +} //ReferenceUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RelationshipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RelationshipImpl.java new file mode 100644 index 000000000..fc811b657 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RelationshipImpl.java @@ -0,0 +1,175 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Relationship; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Relationship'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.RelationshipImpl#isIsImplied Is Implied}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RelationshipImpl#getOwnedRelatedElement Owned Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RelationshipImpl#getOwningRelatedElement Owning Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RelationshipImpl#getRelatedElement Related Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RelationshipImpl#getSource Source}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RelationshipImpl#getTarget Target}
  • + *
+ * + * @generated + */ +public abstract class RelationshipImpl extends ElementImpl implements Relationship { + /** + * + * + * @generated + */ + protected RelationshipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.RELATIONSHIP; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsImplied() { + return (Boolean)eGet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsImplied(boolean newIsImplied) { + eSet(SysMLPackage.Literals.RELATIONSHIP__IS_IMPLIED, newIsImplied); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedRelatedElement() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNED_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwningRelatedElement() { + return (Element)eGet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningRelatedElement(Element newOwningRelatedElement) { + eSet(SysMLPackage.Literals.RELATIONSHIP__OWNING_RELATED_ELEMENT, newOwningRelatedElement); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRelatedElement() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__RELATED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getSource() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__SOURCE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTarget() { + return (EList)eGet(SysMLPackage.Literals.RELATIONSHIP__TARGET, true); + } + + /** + * + * + * @generated + */ + @Override + public String path() { + var owningRelationship = this.getOwningRelationship(); + var owningRelatedElement = this.getOwningRelatedElement(); + if (owningRelationship == null && owningRelatedElement != null) { + var index = owningRelatedElement.getOwnedRelationship().indexOf(this) + 1; + return owningRelatedElement.path() + "/" + Integer.toString(index); + } + var qualifiedName = this.getQualifiedName(); + if (qualifiedName != null) { + return qualifiedName; + } + if (owningRelationship != null) { + var index = owningRelationship.getOwnedRelatedElement().indexOf(this) + 1; + return owningRelationship.path() + "/" + Integer.toString(index); + } + return ""; + } + +} //RelationshipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RenderingDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RenderingDefinitionImpl.java new file mode 100644 index 000000000..0ee8a52cd --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RenderingDefinitionImpl.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.RenderingDefinition; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Rendering Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.RenderingDefinitionImpl#getRendering Rendering}
  • + *
+ * + * @generated + */ +public class RenderingDefinitionImpl extends PartDefinitionImpl implements RenderingDefinition { + /** + * + * + * @generated + */ + protected RenderingDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.RENDERING_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRendering() { + return (EList)eGet(SysMLPackage.Literals.RENDERING_DEFINITION__RENDERING, true); + } + +} //RenderingDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RenderingUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RenderingUsageImpl.java new file mode 100644 index 000000000..a148aa77c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RenderingUsageImpl.java @@ -0,0 +1,107 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.PartDefinition; +import org.omg.sysml.model.sysml.RenderingDefinition; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Rendering Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.RenderingUsageImpl#getRenderingDefinition Rendering Definition}
  • + *
+ * + * @generated + */ +public class RenderingUsageImpl extends PartUsageImpl implements RenderingUsage { + /** + * + * + * @generated + */ + protected RenderingUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.RENDERING_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public RenderingDefinition getRenderingDefinition() { + return (RenderingDefinition)eGet(SysMLPackage.Literals.RENDERING_USAGE__RENDERING_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setRenderingDefinition(RenderingDefinition newRenderingDefinition) { + eSet(SysMLPackage.Literals.RENDERING_USAGE__RENDERING_DEFINITION, newRenderingDefinition); + } + + /** + * + * + * @generated + */ + @Override + public EList getPartDefinition() { + var sourceValue = this.getRenderingDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof PartDefinition typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof PartDefinition typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //RenderingUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementConstraintMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementConstraintMembershipImpl.java new file mode 100644 index 000000000..79c3cb038 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementConstraintMembershipImpl.java @@ -0,0 +1,148 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.RequirementConstraintKind; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Requirement Constraint Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementConstraintMembershipImpl#getKind Kind}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementConstraintMembershipImpl#getOwnedConstraint Owned Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementConstraintMembershipImpl#getReferencedConstraint Referenced Constraint}
  • + *
+ * + * @generated + */ +public class RequirementConstraintMembershipImpl extends FeatureMembershipImpl implements RequirementConstraintMembership { + /** + * + * + * @generated + */ + protected RequirementConstraintMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.REQUIREMENT_CONSTRAINT_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public RequirementConstraintKind getKind() { + return (RequirementConstraintKind)eGet(SysMLPackage.Literals.REQUIREMENT_CONSTRAINT_MEMBERSHIP__KIND, true); + } + + /** + * + * + * @generated + */ + @Override + public void setKind(RequirementConstraintKind newKind) { + eSet(SysMLPackage.Literals.REQUIREMENT_CONSTRAINT_MEMBERSHIP__KIND, newKind); + } + + /** + * + * + * @generated + */ + @Override + public ConstraintUsage getOwnedConstraint() { + return (ConstraintUsage)eGet(SysMLPackage.Literals.REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_CONSTRAINT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedConstraint(ConstraintUsage newOwnedConstraint) { + eSet(SysMLPackage.Literals.REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_CONSTRAINT, newOwnedConstraint); + } + + /** + * + * + * @generated + */ + @Override + public ConstraintUsage getReferencedConstraint() { + return (ConstraintUsage)eGet(SysMLPackage.Literals.REQUIREMENT_CONSTRAINT_MEMBERSHIP__REFERENCED_CONSTRAINT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReferencedConstraint(ConstraintUsage newReferencedConstraint) { + eSet(SysMLPackage.Literals.REQUIREMENT_CONSTRAINT_MEMBERSHIP__REFERENCED_CONSTRAINT, newReferencedConstraint); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberFeature() { + var sourceValue = this.getOwnedConstraint(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //RequirementConstraintMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementDefinitionImpl.java new file mode 100644 index 000000000..2f297067f --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementDefinitionImpl.java @@ -0,0 +1,201 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; + +/** + * + * An implementation of the model object 'Requirement Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl#getReqId Req Id}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl#getText Text}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl#getActorParameter Actor Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl#getAssumedConstraint Assumed Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl#getFramedConcern Framed Concern}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl#getRequiredConstraint Required Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl#getStakeholderParameter Stakeholder Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementDefinitionImpl#getSubjectParameter Subject Parameter}
  • + *
+ * + * @generated + */ +public class RequirementDefinitionImpl extends ConstraintDefinitionImpl implements RequirementDefinition { + /** + * + * + * @generated + */ + protected RequirementDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.REQUIREMENT_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public String getReqId() { + return (String)eGet(SysMLPackage.Literals.REQUIREMENT_DEFINITION__REQ_ID, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReqId(String newReqId) { + eSet(SysMLPackage.Literals.REQUIREMENT_DEFINITION__REQ_ID, newReqId); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getText() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_DEFINITION__TEXT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getActorParameter() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_DEFINITION__ACTOR_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAssumedConstraint() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_DEFINITION__ASSUMED_CONSTRAINT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getFramedConcern() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_DEFINITION__FRAMED_CONCERN, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRequiredConstraint() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_DEFINITION__REQUIRED_CONSTRAINT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getStakeholderParameter() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_DEFINITION__STAKEHOLDER_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public Usage getSubjectParameter() { + return (Usage)eGet(SysMLPackage.Literals.REQUIREMENT_DEFINITION__SUBJECT_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSubjectParameter(Usage newSubjectParameter) { + eSet(SysMLPackage.Literals.REQUIREMENT_DEFINITION__SUBJECT_PARAMETER, newSubjectParameter); + } + + /** + * + * + * @generated + */ + @Override + public java.lang.String getDeclaredShortName() { + var sourceValue = this.getReqId(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof java.lang.String typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof java.lang.String typedValue) { + return typedValue; + } + return null; + } + +} //RequirementDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementUsageImpl.java new file mode 100644 index 000000000..640b8f3d4 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementUsageImpl.java @@ -0,0 +1,247 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; + +/** + * + * An implementation of the model object 'Requirement Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl#getReqId Req Id}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl#getText Text}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl#getActorParameter Actor Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl#getAssumedConstraint Assumed Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl#getFramedConcern Framed Concern}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl#getRequiredConstraint Required Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl#getRequirementDefinition Requirement Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl#getStakeholderParameter Stakeholder Parameter}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementUsageImpl#getSubjectParameter Subject Parameter}
  • + *
+ * + * @generated + */ +public class RequirementUsageImpl extends ConstraintUsageImpl implements RequirementUsage { + /** + * + * + * @generated + */ + protected RequirementUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.REQUIREMENT_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public String getReqId() { + return (String)eGet(SysMLPackage.Literals.REQUIREMENT_USAGE__REQ_ID, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReqId(String newReqId) { + eSet(SysMLPackage.Literals.REQUIREMENT_USAGE__REQ_ID, newReqId); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getText() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_USAGE__TEXT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getActorParameter() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_USAGE__ACTOR_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getAssumedConstraint() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_USAGE__ASSUMED_CONSTRAINT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getFramedConcern() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_USAGE__FRAMED_CONCERN, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getRequiredConstraint() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_USAGE__REQUIRED_CONSTRAINT, true); + } + + /** + * + * + * @generated + */ + @Override + public RequirementDefinition getRequirementDefinition() { + return (RequirementDefinition)eGet(SysMLPackage.Literals.REQUIREMENT_USAGE__REQUIREMENT_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setRequirementDefinition(RequirementDefinition newRequirementDefinition) { + eSet(SysMLPackage.Literals.REQUIREMENT_USAGE__REQUIREMENT_DEFINITION, newRequirementDefinition); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getStakeholderParameter() { + return (EList)eGet(SysMLPackage.Literals.REQUIREMENT_USAGE__STAKEHOLDER_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public Usage getSubjectParameter() { + return (Usage)eGet(SysMLPackage.Literals.REQUIREMENT_USAGE__SUBJECT_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSubjectParameter(Usage newSubjectParameter) { + eSet(SysMLPackage.Literals.REQUIREMENT_USAGE__SUBJECT_PARAMETER, newSubjectParameter); + } + + /** + * + * + * @generated + */ + @Override + public java.lang.String getDeclaredShortName() { + var sourceValue = this.getReqId(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof java.lang.String typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof java.lang.String typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Predicate getConstraintDefinition() { + var sourceValue = this.getRequirementDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Predicate typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Predicate typedValue) { + return typedValue; + } + return null; + } + +} //RequirementUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementVerificationMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementVerificationMembershipImpl.java new file mode 100644 index 000000000..52b371e87 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/RequirementVerificationMembershipImpl.java @@ -0,0 +1,149 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.RequirementVerificationMembership; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Requirement Verification Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementVerificationMembershipImpl#getOwnedRequirement Owned Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.RequirementVerificationMembershipImpl#getVerifiedRequirement Verified Requirement}
  • + *
+ * + * @generated + */ +public class RequirementVerificationMembershipImpl extends RequirementConstraintMembershipImpl implements RequirementVerificationMembership { + /** + * + * + * @generated + */ + protected RequirementVerificationMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.REQUIREMENT_VERIFICATION_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public RequirementUsage getOwnedRequirement() { + return (RequirementUsage)eGet(SysMLPackage.Literals.REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_REQUIREMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedRequirement(RequirementUsage newOwnedRequirement) { + eSet(SysMLPackage.Literals.REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_REQUIREMENT, newOwnedRequirement); + } + + /** + * + * + * @generated + */ + @Override + public RequirementUsage getVerifiedRequirement() { + return (RequirementUsage)eGet(SysMLPackage.Literals.REQUIREMENT_VERIFICATION_MEMBERSHIP__VERIFIED_REQUIREMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setVerifiedRequirement(RequirementUsage newVerifiedRequirement) { + eSet(SysMLPackage.Literals.REQUIREMENT_VERIFICATION_MEMBERSHIP__VERIFIED_REQUIREMENT, newVerifiedRequirement); + } + + /** + * + * + * @generated + */ + @Override + public ConstraintUsage getOwnedConstraint() { + var sourceValue = this.getOwnedRequirement(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof ConstraintUsage typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof ConstraintUsage typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public ConstraintUsage getReferencedConstraint() { + var sourceValue = this.getVerifiedRequirement(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof ConstraintUsage typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof ConstraintUsage typedValue) { + return typedValue; + } + return null; + } + +} //RequirementVerificationMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ResultExpressionMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ResultExpressionMembershipImpl.java new file mode 100644 index 000000000..55b8bb69f --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ResultExpressionMembershipImpl.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.ResultExpressionMembership; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Result Expression Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ResultExpressionMembershipImpl#getOwnedResultExpression Owned Result Expression}
  • + *
+ * + * @generated + */ +public class ResultExpressionMembershipImpl extends FeatureMembershipImpl implements ResultExpressionMembership { + /** + * + * + * @generated + */ + protected ResultExpressionMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.RESULT_EXPRESSION_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public Expression getOwnedResultExpression() { + return (Expression)eGet(SysMLPackage.Literals.RESULT_EXPRESSION_MEMBERSHIP__OWNED_RESULT_EXPRESSION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedResultExpression(Expression newOwnedResultExpression) { + eSet(SysMLPackage.Literals.RESULT_EXPRESSION_MEMBERSHIP__OWNED_RESULT_EXPRESSION, newOwnedResultExpression); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberFeature() { + var sourceValue = this.getOwnedResultExpression(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //ResultExpressionMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ReturnParameterMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ReturnParameterMembershipImpl.java new file mode 100644 index 000000000..66a7f6d25 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ReturnParameterMembershipImpl.java @@ -0,0 +1,65 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.ReturnParameterMembership; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Return Parameter Membership'. + * + * + * @generated + */ +public class ReturnParameterMembershipImpl extends ParameterMembershipImpl implements ReturnParameterMembership { + /** + * + * + * @generated + */ + protected ReturnParameterMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.RETURN_PARAMETER_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public FeatureDirectionKind parameterDirection() { + return FeatureDirectionKind.OUT; + } + +} //ReturnParameterMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SatisfyRequirementUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SatisfyRequirementUsageImpl.java new file mode 100644 index 000000000..9a5566e04 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SatisfyRequirementUsageImpl.java @@ -0,0 +1,205 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.AssertConstraintUsage; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Invariant; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SatisfyRequirementUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Satisfy Requirement Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.SatisfyRequirementUsageImpl#isIsNegated Is Negated}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SatisfyRequirementUsageImpl#getAssertedConstraint Asserted Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SatisfyRequirementUsageImpl#getSatisfiedRequirement Satisfied Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SatisfyRequirementUsageImpl#getSatisfyingFeature Satisfying Feature}
  • + *
+ * + * @generated + */ +public class SatisfyRequirementUsageImpl extends RequirementUsageImpl implements SatisfyRequirementUsage { + /** + * + * + * @generated + */ + protected SatisfyRequirementUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SATISFY_REQUIREMENT_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsNegated() { + return (Boolean)eGet(SysMLPackage.Literals.INVARIANT__IS_NEGATED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsNegated(boolean newIsNegated) { + eSet(SysMLPackage.Literals.INVARIANT__IS_NEGATED, newIsNegated); + } + + + /** + * + * + * @generated + */ + @Override + public ConstraintUsage getAssertedConstraint() { + var sourceValue = this.getSatisfiedRequirement(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof ConstraintUsage typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof ConstraintUsage typedValue) { + return typedValue; + } + return null; + } + /** + * + * + * @generated + */ + @Override + public void setAssertedConstraint(ConstraintUsage newAssertedConstraint) { + eSet(SysMLPackage.Literals.ASSERT_CONSTRAINT_USAGE__ASSERTED_CONSTRAINT, newAssertedConstraint); + } + + /** + * + * + * @generated + */ + @Override + public RequirementUsage getSatisfiedRequirement() { + return (RequirementUsage)eGet(SysMLPackage.Literals.SATISFY_REQUIREMENT_USAGE__SATISFIED_REQUIREMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSatisfiedRequirement(RequirementUsage newSatisfiedRequirement) { + eSet(SysMLPackage.Literals.SATISFY_REQUIREMENT_USAGE__SATISFIED_REQUIREMENT, newSatisfiedRequirement); + } + + /** + * + * + * @generated + */ + @Override + public Feature getSatisfyingFeature() { + return (Feature)eGet(SysMLPackage.Literals.SATISFY_REQUIREMENT_USAGE__SATISFYING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSatisfyingFeature(Feature newSatisfyingFeature) { + eSet(SysMLPackage.Literals.SATISFY_REQUIREMENT_USAGE__SATISFYING_FEATURE, newSatisfyingFeature); + } + + /** + * + * + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) { + if (baseClass == Invariant.class) { + switch (derivedFeatureID) { + case SysMLPackage.SATISFY_REQUIREMENT_USAGE__IS_NEGATED: return SysMLPackage.INVARIANT__IS_NEGATED; + default: return -1; + } + } + if (baseClass == AssertConstraintUsage.class) { + switch (derivedFeatureID) { + case SysMLPackage.SATISFY_REQUIREMENT_USAGE__ASSERTED_CONSTRAINT: return SysMLPackage.ASSERT_CONSTRAINT_USAGE__ASSERTED_CONSTRAINT; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * + * + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) { + if (baseClass == Invariant.class) { + switch (baseFeatureID) { + case SysMLPackage.INVARIANT__IS_NEGATED: return SysMLPackage.SATISFY_REQUIREMENT_USAGE__IS_NEGATED; + default: return -1; + } + } + if (baseClass == AssertConstraintUsage.class) { + switch (baseFeatureID) { + case SysMLPackage.ASSERT_CONSTRAINT_USAGE__ASSERTED_CONSTRAINT: return SysMLPackage.SATISFY_REQUIREMENT_USAGE__ASSERTED_CONSTRAINT; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + +} //SatisfyRequirementUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SelectExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SelectExpressionImpl.java new file mode 100644 index 000000000..91915ffce --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SelectExpressionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.SelectExpression; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Select Expression'. + * + * + * @generated + */ +public class SelectExpressionImpl extends OperatorExpressionImpl implements SelectExpression { + /** + * + * + * @generated + */ + protected SelectExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SELECT_EXPRESSION; + } + +} //SelectExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SendActionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SendActionUsageImpl.java new file mode 100644 index 000000000..2e9681b07 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SendActionUsageImpl.java @@ -0,0 +1,123 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.SendActionUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Send Action Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.SendActionUsageImpl#getPayloadArgument Payload Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SendActionUsageImpl#getReceiverArgument Receiver Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SendActionUsageImpl#getSenderArgument Sender Argument}
  • + *
+ * + * @generated + */ +public class SendActionUsageImpl extends ActionUsageImpl implements SendActionUsage { + /** + * + * + * @generated + */ + protected SendActionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SEND_ACTION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public Expression getPayloadArgument() { + return (Expression)eGet(SysMLPackage.Literals.SEND_ACTION_USAGE__PAYLOAD_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setPayloadArgument(Expression newPayloadArgument) { + eSet(SysMLPackage.Literals.SEND_ACTION_USAGE__PAYLOAD_ARGUMENT, newPayloadArgument); + } + + /** + * + * + * @generated + */ + @Override + public Expression getReceiverArgument() { + return (Expression)eGet(SysMLPackage.Literals.SEND_ACTION_USAGE__RECEIVER_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReceiverArgument(Expression newReceiverArgument) { + eSet(SysMLPackage.Literals.SEND_ACTION_USAGE__RECEIVER_ARGUMENT, newReceiverArgument); + } + + /** + * + * + * @generated + */ + @Override + public Expression getSenderArgument() { + return (Expression)eGet(SysMLPackage.Literals.SEND_ACTION_USAGE__SENDER_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSenderArgument(Expression newSenderArgument) { + eSet(SysMLPackage.Literals.SEND_ACTION_USAGE__SENDER_ARGUMENT, newSenderArgument); + } + +} //SendActionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SpecializationImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SpecializationImpl.java new file mode 100644 index 000000000..bb9772344 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SpecializationImpl.java @@ -0,0 +1,171 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Specialization; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Specialization'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.SpecializationImpl#getGeneral General}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SpecializationImpl#getOwningType Owning Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SpecializationImpl#getSpecific Specific}
  • + *
+ * + * @generated + */ +public class SpecializationImpl extends RelationshipImpl implements Specialization { + /** + * + * + * @generated + */ + protected SpecializationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SPECIALIZATION; + } + + /** + * + * + * @generated + */ + @Override + public Type getGeneral() { + return (Type)eGet(SysMLPackage.Literals.SPECIALIZATION__GENERAL, true); + } + + /** + * + * + * @generated + */ + @Override + public void setGeneral(Type newGeneral) { + eSet(SysMLPackage.Literals.SPECIALIZATION__GENERAL, newGeneral); + } + + /** + * + * + * @generated + */ + @Override + public Type getOwningType() { + return (Type)eGet(SysMLPackage.Literals.SPECIALIZATION__OWNING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningType(Type newOwningType) { + eSet(SysMLPackage.Literals.SPECIALIZATION__OWNING_TYPE, newOwningType); + } + + /** + * + * + * @generated + */ + @Override + public Type getSpecific() { + return (Type)eGet(SysMLPackage.Literals.SPECIALIZATION__SPECIFIC, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSpecific(Type newSpecific) { + eSet(SysMLPackage.Literals.SPECIALIZATION__SPECIFIC, newSpecific); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getGeneral(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getSpecific(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //SpecializationImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StakeholderMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StakeholderMembershipImpl.java new file mode 100644 index 000000000..4240def50 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StakeholderMembershipImpl.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.StakeholderMembership; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Stakeholder Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.StakeholderMembershipImpl#getOwnedStakeholderParameter Owned Stakeholder Parameter}
  • + *
+ * + * @generated + */ +public class StakeholderMembershipImpl extends ParameterMembershipImpl implements StakeholderMembership { + /** + * + * + * @generated + */ + protected StakeholderMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.STAKEHOLDER_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public PartUsage getOwnedStakeholderParameter() { + return (PartUsage)eGet(SysMLPackage.Literals.STAKEHOLDER_MEMBERSHIP__OWNED_STAKEHOLDER_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedStakeholderParameter(PartUsage newOwnedStakeholderParameter) { + eSet(SysMLPackage.Literals.STAKEHOLDER_MEMBERSHIP__OWNED_STAKEHOLDER_PARAMETER, newOwnedStakeholderParameter); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberParameter() { + var sourceValue = this.getOwnedStakeholderParameter(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //StakeholderMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StateDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StateDefinitionImpl.java new file mode 100644 index 000000000..3b593d881 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StateDefinitionImpl.java @@ -0,0 +1,159 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.StateDefinition; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'State Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.StateDefinitionImpl#isIsParallel Is Parallel}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.StateDefinitionImpl#getDoAction Do Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.StateDefinitionImpl#getEntryAction Entry Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.StateDefinitionImpl#getExitAction Exit Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.StateDefinitionImpl#getState State}
  • + *
+ * + * @generated + */ +public class StateDefinitionImpl extends ActionDefinitionImpl implements StateDefinition { + /** + * + * + * @generated + */ + protected StateDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.STATE_DEFINITION; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsParallel() { + return (Boolean)eGet(SysMLPackage.Literals.STATE_DEFINITION__IS_PARALLEL, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsParallel(boolean newIsParallel) { + eSet(SysMLPackage.Literals.STATE_DEFINITION__IS_PARALLEL, newIsParallel); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getDoAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.STATE_DEFINITION__DO_ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setDoAction(ActionUsage newDoAction) { + eSet(SysMLPackage.Literals.STATE_DEFINITION__DO_ACTION, newDoAction); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getEntryAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.STATE_DEFINITION__ENTRY_ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setEntryAction(ActionUsage newEntryAction) { + eSet(SysMLPackage.Literals.STATE_DEFINITION__ENTRY_ACTION, newEntryAction); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getExitAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.STATE_DEFINITION__EXIT_ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setExitAction(ActionUsage newExitAction) { + eSet(SysMLPackage.Literals.STATE_DEFINITION__EXIT_ACTION, newExitAction); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getState() { + return (EList)eGet(SysMLPackage.Literals.STATE_DEFINITION__STATE, true); + } + +} //StateDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StateSubactionMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StateSubactionMembershipImpl.java new file mode 100644 index 000000000..a26c1e765 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StateSubactionMembershipImpl.java @@ -0,0 +1,127 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.StateSubactionKind; +import org.omg.sysml.model.sysml.StateSubactionMembership; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'State Subaction Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.StateSubactionMembershipImpl#getKind Kind}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.StateSubactionMembershipImpl#getAction Action}
  • + *
+ * + * @generated + */ +public class StateSubactionMembershipImpl extends FeatureMembershipImpl implements StateSubactionMembership { + /** + * + * + * @generated + */ + protected StateSubactionMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.STATE_SUBACTION_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public StateSubactionKind getKind() { + return (StateSubactionKind)eGet(SysMLPackage.Literals.STATE_SUBACTION_MEMBERSHIP__KIND, true); + } + + /** + * + * + * @generated + */ + @Override + public void setKind(StateSubactionKind newKind) { + eSet(SysMLPackage.Literals.STATE_SUBACTION_MEMBERSHIP__KIND, newKind); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.STATE_SUBACTION_MEMBERSHIP__ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setAction(ActionUsage newAction) { + eSet(SysMLPackage.Literals.STATE_SUBACTION_MEMBERSHIP__ACTION, newAction); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberFeature() { + var sourceValue = this.getAction(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //StateSubactionMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StateUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StateUsageImpl.java new file mode 100644 index 000000000..a4e436920 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StateUsageImpl.java @@ -0,0 +1,225 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'State Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.StateUsageImpl#isIsParallel Is Parallel}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.StateUsageImpl#getDoAction Do Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.StateUsageImpl#getEntryAction Entry Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.StateUsageImpl#getExitAction Exit Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.StateUsageImpl#getStateDefinition State Definition}
  • + *
+ * + * @generated + */ +public class StateUsageImpl extends ActionUsageImpl implements StateUsage { + /** + * + * + * @generated + */ + protected StateUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.STATE_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsParallel() { + return (Boolean)eGet(SysMLPackage.Literals.STATE_USAGE__IS_PARALLEL, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsParallel(boolean newIsParallel) { + eSet(SysMLPackage.Literals.STATE_USAGE__IS_PARALLEL, newIsParallel); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getDoAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.STATE_USAGE__DO_ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setDoAction(ActionUsage newDoAction) { + eSet(SysMLPackage.Literals.STATE_USAGE__DO_ACTION, newDoAction); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getEntryAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.STATE_USAGE__ENTRY_ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setEntryAction(ActionUsage newEntryAction) { + eSet(SysMLPackage.Literals.STATE_USAGE__ENTRY_ACTION, newEntryAction); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getExitAction() { + return (ActionUsage)eGet(SysMLPackage.Literals.STATE_USAGE__EXIT_ACTION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setExitAction(ActionUsage newExitAction) { + eSet(SysMLPackage.Literals.STATE_USAGE__EXIT_ACTION, newExitAction); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getStateDefinition() { + return (EList)eGet(SysMLPackage.Literals.STATE_USAGE__STATE_DEFINITION, true); + } + + /** + * The cached invocation delegate for the '{@link #isSubstateUsage(boolean) Is Substate Usage}' operation. + * + * + * @see #isSubstateUsage(boolean) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_SUBSTATE_USAGE_BOOLEAN__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.STATE_USAGE___IS_SUBSTATE_USAGE__BOOLEAN).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isSubstateUsage(boolean isParallel) { + try { + return (Boolean)IS_SUBSTATE_USAGE_BOOLEAN__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{isParallel})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.STATE_USAGE___IS_SUBSTATE_USAGE__BOOLEAN: + return isSubstateUsage((Boolean)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public EList getActionDefinition() { + var sourceValue = this.getStateDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Behavior typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Behavior typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //StateUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StepImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StepImpl.java new file mode 100644 index 000000000..59f52311d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StepImpl.java @@ -0,0 +1,110 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Step'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.StepImpl#getBehavior Behavior}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.StepImpl#getParameter Parameter}
  • + *
+ * + * @generated + */ +public class StepImpl extends FeatureImpl implements Step { + /** + * + * + * @generated + */ + protected StepImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.STEP; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getBehavior() { + return (EList)eGet(SysMLPackage.Literals.STEP__BEHAVIOR, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getParameter() { + return (EList)eGet(SysMLPackage.Literals.STEP__PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public EList getDirectedFeature() { + var sourceValue = this.getParameter(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Feature typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //StepImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StructureImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StructureImpl.java new file mode 100644 index 000000000..fd515c707 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/StructureImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Structure; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Structure'. + * + * + * @generated + */ +public class StructureImpl extends ClassImpl implements Structure { + /** + * + * + * @generated + */ + protected StructureImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.STRUCTURE; + } + +} //StructureImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SubclassificationImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SubclassificationImpl.java new file mode 100644 index 000000000..a5830733d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SubclassificationImpl.java @@ -0,0 +1,193 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.Subclassification; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Subclassification'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.SubclassificationImpl#getOwningClassifier Owning Classifier}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SubclassificationImpl#getSubclassifier Subclassifier}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SubclassificationImpl#getSuperclassifier Superclassifier}
  • + *
+ * + * @generated + */ +public class SubclassificationImpl extends SpecializationImpl implements Subclassification { + /** + * + * + * @generated + */ + protected SubclassificationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SUBCLASSIFICATION; + } + + /** + * + * + * @generated + */ + @Override + public Classifier getOwningClassifier() { + return (Classifier)eGet(SysMLPackage.Literals.SUBCLASSIFICATION__OWNING_CLASSIFIER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningClassifier(Classifier newOwningClassifier) { + eSet(SysMLPackage.Literals.SUBCLASSIFICATION__OWNING_CLASSIFIER, newOwningClassifier); + } + + /** + * + * + * @generated + */ + @Override + public Classifier getSubclassifier() { + return (Classifier)eGet(SysMLPackage.Literals.SUBCLASSIFICATION__SUBCLASSIFIER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSubclassifier(Classifier newSubclassifier) { + eSet(SysMLPackage.Literals.SUBCLASSIFICATION__SUBCLASSIFIER, newSubclassifier); + } + + /** + * + * + * @generated + */ + @Override + public Classifier getSuperclassifier() { + return (Classifier)eGet(SysMLPackage.Literals.SUBCLASSIFICATION__SUPERCLASSIFIER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSuperclassifier(Classifier newSuperclassifier) { + eSet(SysMLPackage.Literals.SUBCLASSIFICATION__SUPERCLASSIFIER, newSuperclassifier); + } + + /** + * + * + * @generated + */ + @Override + public Type getOwningType() { + var sourceValue = this.getOwningClassifier(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Type getSpecific() { + var sourceValue = this.getSubclassifier(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Type getGeneral() { + var sourceValue = this.getSuperclassifier(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + +} //SubclassificationImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SubjectMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SubjectMembershipImpl.java new file mode 100644 index 000000000..7dd766138 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SubjectMembershipImpl.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.SubjectMembership; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; + +/** + * + * An implementation of the model object 'Subject Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.SubjectMembershipImpl#getOwnedSubjectParameter Owned Subject Parameter}
  • + *
+ * + * @generated + */ +public class SubjectMembershipImpl extends ParameterMembershipImpl implements SubjectMembership { + /** + * + * + * @generated + */ + protected SubjectMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SUBJECT_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public Usage getOwnedSubjectParameter() { + return (Usage)eGet(SysMLPackage.Literals.SUBJECT_MEMBERSHIP__OWNED_SUBJECT_PARAMETER, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedSubjectParameter(Usage newOwnedSubjectParameter) { + eSet(SysMLPackage.Literals.SUBJECT_MEMBERSHIP__OWNED_SUBJECT_PARAMETER, newOwnedSubjectParameter); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberParameter() { + var sourceValue = this.getOwnedSubjectParameter(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //SubjectMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SubsettingImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SubsettingImpl.java new file mode 100644 index 000000000..b4e7091b8 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SubsettingImpl.java @@ -0,0 +1,193 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Subsetting; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; + +/** + * + * An implementation of the model object 'Subsetting'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.SubsettingImpl#getOwningFeature Owning Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SubsettingImpl#getSubsettedFeature Subsetted Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.SubsettingImpl#getSubsettingFeature Subsetting Feature}
  • + *
+ * + * @generated + */ +public class SubsettingImpl extends SpecializationImpl implements Subsetting { + /** + * + * + * @generated + */ + protected SubsettingImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SUBSETTING; + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwningFeature() { + return (Feature)eGet(SysMLPackage.Literals.SUBSETTING__OWNING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningFeature(Feature newOwningFeature) { + eSet(SysMLPackage.Literals.SUBSETTING__OWNING_FEATURE, newOwningFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getSubsettedFeature() { + return (Feature)eGet(SysMLPackage.Literals.SUBSETTING__SUBSETTED_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSubsettedFeature(Feature newSubsettedFeature) { + eSet(SysMLPackage.Literals.SUBSETTING__SUBSETTED_FEATURE, newSubsettedFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getSubsettingFeature() { + return (Feature)eGet(SysMLPackage.Literals.SUBSETTING__SUBSETTING_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSubsettingFeature(Feature newSubsettingFeature) { + eSet(SysMLPackage.Literals.SUBSETTING__SUBSETTING_FEATURE, newSubsettingFeature); + } + + /** + * + * + * @generated + */ + @Override + public Type getOwningType() { + var sourceValue = this.getOwningFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Type getGeneral() { + var sourceValue = this.getSubsettedFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + + /** + * + * + * @generated + */ + @Override + public Type getSpecific() { + var sourceValue = this.getSubsettingFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Type typedValue) { + return typedValue; + } + return null; + } + +} //SubsettingImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionAsUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionAsUsageImpl.java new file mode 100644 index 000000000..f55cd9226 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionAsUsageImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.SuccessionAsUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Succession As Usage'. + * + * + * @generated + */ +public class SuccessionAsUsageImpl extends ConnectorAsUsageImpl implements SuccessionAsUsage { + /** + * + * + * @generated + */ + protected SuccessionAsUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SUCCESSION_AS_USAGE; + } + +} //SuccessionAsUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionFlowImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionFlowImpl.java new file mode 100644 index 000000000..8049d408d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionFlowImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.SuccessionFlow; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Succession Flow'. + * + * + * @generated + */ +public class SuccessionFlowImpl extends FlowImpl implements SuccessionFlow { + /** + * + * + * @generated + */ + protected SuccessionFlowImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SUCCESSION_FLOW; + } + +} //SuccessionFlowImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionFlowUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionFlowUsageImpl.java new file mode 100644 index 000000000..c1b205894 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionFlowUsageImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.SuccessionFlowUsage; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Succession Flow Usage'. + * + * + * @generated + */ +public class SuccessionFlowUsageImpl extends FlowUsageImpl implements SuccessionFlowUsage { + /** + * + * + * @generated + */ + protected SuccessionFlowUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SUCCESSION_FLOW_USAGE; + } + +} //SuccessionFlowUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionImpl.java new file mode 100644 index 000000000..317ac1b34 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SuccessionImpl.java @@ -0,0 +1,54 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Succession; +import org.omg.sysml.model.sysml.SysMLPackage; + +/** + * + * An implementation of the model object 'Succession'. + * + * + * @generated + */ +public class SuccessionImpl extends ConnectorImpl implements Succession { + /** + * + * + * @generated + */ + protected SuccessionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.SUCCESSION; + } + +} //SuccessionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SysMLFactoryImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SysMLFactoryImpl.java new file mode 100644 index 000000000..8701ddd6c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SysMLFactoryImpl.java @@ -0,0 +1,2474 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.ActionDefinition; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.ActorMembership; +import org.omg.sysml.model.sysml.AllocationDefinition; +import org.omg.sysml.model.sysml.AllocationUsage; +import org.omg.sysml.model.sysml.AnalysisCaseDefinition; +import org.omg.sysml.model.sysml.AnalysisCaseUsage; +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.AssertConstraintUsage; +import org.omg.sysml.model.sysml.AssignmentActionUsage; +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.AssociationStructure; +import org.omg.sysml.model.sysml.AttributeDefinition; +import org.omg.sysml.model.sysml.AttributeUsage; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.BindingConnector; +import org.omg.sysml.model.sysml.BindingConnectorAsUsage; +import org.omg.sysml.model.sysml.BooleanExpression; +import org.omg.sysml.model.sysml.CalculationDefinition; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.CollectExpression; +import org.omg.sysml.model.sysml.Comment; +import org.omg.sysml.model.sysml.ConcernDefinition; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.model.sysml.ConjugatedPortTyping; +import org.omg.sysml.model.sysml.Conjugation; +import org.omg.sysml.model.sysml.ConnectionDefinition; +import org.omg.sysml.model.sysml.ConnectionUsage; +import org.omg.sysml.model.sysml.Connector; +import org.omg.sysml.model.sysml.ConstraintDefinition; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.ConstructorExpression; +import org.omg.sysml.model.sysml.CrossSubsetting; +import org.omg.sysml.model.sysml.DataType; +import org.omg.sysml.model.sysml.DecisionNode; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.Dependency; +import org.omg.sysml.model.sysml.Differencing; +import org.omg.sysml.model.sysml.Disjoining; +import org.omg.sysml.model.sysml.Documentation; +import org.omg.sysml.model.sysml.ElementFilterMembership; +import org.omg.sysml.model.sysml.EndFeatureMembership; +import org.omg.sysml.model.sysml.EnumerationDefinition; +import org.omg.sysml.model.sysml.EnumerationUsage; +import org.omg.sysml.model.sysml.EventOccurrenceUsage; +import org.omg.sysml.model.sysml.ExhibitStateUsage; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChainExpression; +import org.omg.sysml.model.sysml.FeatureChaining; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.FeatureInverting; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.FeatureReferenceExpression; +import org.omg.sysml.model.sysml.FeatureTyping; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.Flow; +import org.omg.sysml.model.sysml.FlowDefinition; +import org.omg.sysml.model.sysml.FlowEnd; +import org.omg.sysml.model.sysml.FlowUsage; +import org.omg.sysml.model.sysml.ForLoopActionUsage; +import org.omg.sysml.model.sysml.ForkNode; +import org.omg.sysml.model.sysml.FramedConcernMembership; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.IfActionUsage; +import org.omg.sysml.model.sysml.IncludeUseCaseUsage; +import org.omg.sysml.model.sysml.IndexExpression; +import org.omg.sysml.model.sysml.Interaction; +import org.omg.sysml.model.sysml.InterfaceDefinition; +import org.omg.sysml.model.sysml.InterfaceUsage; +import org.omg.sysml.model.sysml.Intersecting; +import org.omg.sysml.model.sysml.Invariant; +import org.omg.sysml.model.sysml.InvocationExpression; +import org.omg.sysml.model.sysml.ItemDefinition; +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.JoinNode; +import org.omg.sysml.model.sysml.LibraryPackage; +import org.omg.sysml.model.sysml.LiteralBoolean; +import org.omg.sysml.model.sysml.LiteralExpression; +import org.omg.sysml.model.sysml.LiteralInfinity; +import org.omg.sysml.model.sysml.LiteralInteger; +import org.omg.sysml.model.sysml.LiteralRational; +import org.omg.sysml.model.sysml.LiteralString; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.MembershipExpose; +import org.omg.sysml.model.sysml.MembershipImport; +import org.omg.sysml.model.sysml.MergeNode; +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.model.sysml.MetadataAccessExpression; +import org.omg.sysml.model.sysml.MetadataDefinition; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.MetadataUsage; +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.MultiplicityRange; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.NamespaceExpose; +import org.omg.sysml.model.sysml.NamespaceImport; +import org.omg.sysml.model.sysml.NullExpression; +import org.omg.sysml.model.sysml.ObjectiveMembership; +import org.omg.sysml.model.sysml.OccurrenceDefinition; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.OperatorExpression; +import org.omg.sysml.model.sysml.OwningMembership; +import org.omg.sysml.model.sysml.ParameterMembership; +import org.omg.sysml.model.sysml.PartDefinition; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.PayloadFeature; +import org.omg.sysml.model.sysml.PerformActionUsage; +import org.omg.sysml.model.sysml.PortConjugation; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.model.sysml.PortionKind; +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.model.sysml.Redefinition; +import org.omg.sysml.model.sysml.ReferenceSubsetting; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.RenderingDefinition; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.RequirementConstraintKind; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.RequirementVerificationMembership; +import org.omg.sysml.model.sysml.ResultExpressionMembership; +import org.omg.sysml.model.sysml.ReturnParameterMembership; +import org.omg.sysml.model.sysml.SatisfyRequirementUsage; +import org.omg.sysml.model.sysml.SelectExpression; +import org.omg.sysml.model.sysml.SendActionUsage; +import org.omg.sysml.model.sysml.Specialization; +import org.omg.sysml.model.sysml.StakeholderMembership; +import org.omg.sysml.model.sysml.StateDefinition; +import org.omg.sysml.model.sysml.StateSubactionKind; +import org.omg.sysml.model.sysml.StateSubactionMembership; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.Structure; +import org.omg.sysml.model.sysml.Subclassification; +import org.omg.sysml.model.sysml.SubjectMembership; +import org.omg.sysml.model.sysml.Subsetting; +import org.omg.sysml.model.sysml.Succession; +import org.omg.sysml.model.sysml.SuccessionAsUsage; +import org.omg.sysml.model.sysml.SuccessionFlow; +import org.omg.sysml.model.sysml.SuccessionFlowUsage; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TerminateActionUsage; +import org.omg.sysml.model.sysml.TextualRepresentation; +import org.omg.sysml.model.sysml.TransitionFeatureKind; +import org.omg.sysml.model.sysml.TransitionFeatureMembership; +import org.omg.sysml.model.sysml.TransitionUsage; +import org.omg.sysml.model.sysml.TriggerInvocationExpression; +import org.omg.sysml.model.sysml.TriggerKind; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.TypeFeaturing; +import org.omg.sysml.model.sysml.Unioning; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.UseCaseDefinition; +import org.omg.sysml.model.sysml.UseCaseUsage; +import org.omg.sysml.model.sysml.VariantMembership; +import org.omg.sysml.model.sysml.VerificationCaseDefinition; +import org.omg.sysml.model.sysml.VerificationCaseUsage; +import org.omg.sysml.model.sysml.ViewDefinition; +import org.omg.sysml.model.sysml.ViewRenderingMembership; +import org.omg.sysml.model.sysml.ViewUsage; +import org.omg.sysml.model.sysml.ViewpointDefinition; +import org.omg.sysml.model.sysml.ViewpointUsage; +import org.omg.sysml.model.sysml.VisibilityKind; +import org.omg.sysml.model.sysml.WhileLoopActionUsage; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class SysMLFactoryImpl extends EFactoryImpl implements SysMLFactory { + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static SysMLFactory init() { + try { + SysMLFactory theSysMLFactory = (SysMLFactory)EPackage.Registry.INSTANCE.getEFactory(SysMLPackage.eNS_URI); + if (theSysMLFactory != null) { + return theSysMLFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new SysMLFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public SysMLFactoryImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case SysMLPackage.ACCEPT_ACTION_USAGE: return createAcceptActionUsage(); + case SysMLPackage.ACTION_DEFINITION: return createActionDefinition(); + case SysMLPackage.ACTION_USAGE: return createActionUsage(); + case SysMLPackage.ACTOR_MEMBERSHIP: return createActorMembership(); + case SysMLPackage.ALLOCATION_DEFINITION: return createAllocationDefinition(); + case SysMLPackage.ALLOCATION_USAGE: return createAllocationUsage(); + case SysMLPackage.ANALYSIS_CASE_DEFINITION: return createAnalysisCaseDefinition(); + case SysMLPackage.ANALYSIS_CASE_USAGE: return createAnalysisCaseUsage(); + case SysMLPackage.ANNOTATING_ELEMENT: return createAnnotatingElement(); + case SysMLPackage.ANNOTATION: return createAnnotation(); + case SysMLPackage.ASSERT_CONSTRAINT_USAGE: return createAssertConstraintUsage(); + case SysMLPackage.ASSIGNMENT_ACTION_USAGE: return createAssignmentActionUsage(); + case SysMLPackage.ASSOCIATION: return createAssociation(); + case SysMLPackage.ASSOCIATION_STRUCTURE: return createAssociationStructure(); + case SysMLPackage.ATTRIBUTE_DEFINITION: return createAttributeDefinition(); + case SysMLPackage.ATTRIBUTE_USAGE: return createAttributeUsage(); + case SysMLPackage.BEHAVIOR: return createBehavior(); + case SysMLPackage.BINDING_CONNECTOR: return createBindingConnector(); + case SysMLPackage.BINDING_CONNECTOR_AS_USAGE: return createBindingConnectorAsUsage(); + case SysMLPackage.BOOLEAN_EXPRESSION: return createBooleanExpression(); + case SysMLPackage.CALCULATION_DEFINITION: return createCalculationDefinition(); + case SysMLPackage.CALCULATION_USAGE: return createCalculationUsage(); + case SysMLPackage.CASE_DEFINITION: return createCaseDefinition(); + case SysMLPackage.CASE_USAGE: return createCaseUsage(); + case SysMLPackage.CLASS: return createClass(); + case SysMLPackage.CLASSIFIER: return createClassifier(); + case SysMLPackage.COLLECT_EXPRESSION: return createCollectExpression(); + case SysMLPackage.COMMENT: return createComment(); + case SysMLPackage.CONCERN_DEFINITION: return createConcernDefinition(); + case SysMLPackage.CONCERN_USAGE: return createConcernUsage(); + case SysMLPackage.CONJUGATED_PORT_DEFINITION: return createConjugatedPortDefinition(); + case SysMLPackage.CONJUGATED_PORT_TYPING: return createConjugatedPortTyping(); + case SysMLPackage.CONJUGATION: return createConjugation(); + case SysMLPackage.CONNECTION_DEFINITION: return createConnectionDefinition(); + case SysMLPackage.CONNECTION_USAGE: return createConnectionUsage(); + case SysMLPackage.CONNECTOR: return createConnector(); + case SysMLPackage.CONSTRAINT_DEFINITION: return createConstraintDefinition(); + case SysMLPackage.CONSTRAINT_USAGE: return createConstraintUsage(); + case SysMLPackage.CONSTRUCTOR_EXPRESSION: return createConstructorExpression(); + case SysMLPackage.CROSS_SUBSETTING: return createCrossSubsetting(); + case SysMLPackage.DATA_TYPE: return createDataType(); + case SysMLPackage.DECISION_NODE: return createDecisionNode(); + case SysMLPackage.DEFINITION: return createDefinition(); + case SysMLPackage.DEPENDENCY: return createDependency(); + case SysMLPackage.DIFFERENCING: return createDifferencing(); + case SysMLPackage.DISJOINING: return createDisjoining(); + case SysMLPackage.DOCUMENTATION: return createDocumentation(); + case SysMLPackage.ELEMENT_FILTER_MEMBERSHIP: return createElementFilterMembership(); + case SysMLPackage.END_FEATURE_MEMBERSHIP: return createEndFeatureMembership(); + case SysMLPackage.ENUMERATION_DEFINITION: return createEnumerationDefinition(); + case SysMLPackage.ENUMERATION_USAGE: return createEnumerationUsage(); + case SysMLPackage.EVENT_OCCURRENCE_USAGE: return createEventOccurrenceUsage(); + case SysMLPackage.EXHIBIT_STATE_USAGE: return createExhibitStateUsage(); + case SysMLPackage.EXPRESSION: return createExpression(); + case SysMLPackage.FEATURE: return createFeature(); + case SysMLPackage.FEATURE_CHAIN_EXPRESSION: return createFeatureChainExpression(); + case SysMLPackage.FEATURE_CHAINING: return createFeatureChaining(); + case SysMLPackage.FEATURE_INVERTING: return createFeatureInverting(); + case SysMLPackage.FEATURE_MEMBERSHIP: return createFeatureMembership(); + case SysMLPackage.FEATURE_REFERENCE_EXPRESSION: return createFeatureReferenceExpression(); + case SysMLPackage.FEATURE_TYPING: return createFeatureTyping(); + case SysMLPackage.FEATURE_VALUE: return createFeatureValue(); + case SysMLPackage.FLOW: return createFlow(); + case SysMLPackage.FLOW_DEFINITION: return createFlowDefinition(); + case SysMLPackage.FLOW_END: return createFlowEnd(); + case SysMLPackage.FLOW_USAGE: return createFlowUsage(); + case SysMLPackage.FORK_NODE: return createForkNode(); + case SysMLPackage.FOR_LOOP_ACTION_USAGE: return createForLoopActionUsage(); + case SysMLPackage.FRAMED_CONCERN_MEMBERSHIP: return createFramedConcernMembership(); + case SysMLPackage.FUNCTION: return createFunction(); + case SysMLPackage.IF_ACTION_USAGE: return createIfActionUsage(); + case SysMLPackage.INCLUDE_USE_CASE_USAGE: return createIncludeUseCaseUsage(); + case SysMLPackage.INDEX_EXPRESSION: return createIndexExpression(); + case SysMLPackage.INTERACTION: return createInteraction(); + case SysMLPackage.INTERFACE_DEFINITION: return createInterfaceDefinition(); + case SysMLPackage.INTERFACE_USAGE: return createInterfaceUsage(); + case SysMLPackage.INTERSECTING: return createIntersecting(); + case SysMLPackage.INVARIANT: return createInvariant(); + case SysMLPackage.INVOCATION_EXPRESSION: return createInvocationExpression(); + case SysMLPackage.ITEM_DEFINITION: return createItemDefinition(); + case SysMLPackage.ITEM_USAGE: return createItemUsage(); + case SysMLPackage.JOIN_NODE: return createJoinNode(); + case SysMLPackage.LIBRARY_PACKAGE: return createLibraryPackage(); + case SysMLPackage.LITERAL_BOOLEAN: return createLiteralBoolean(); + case SysMLPackage.LITERAL_EXPRESSION: return createLiteralExpression(); + case SysMLPackage.LITERAL_INFINITY: return createLiteralInfinity(); + case SysMLPackage.LITERAL_INTEGER: return createLiteralInteger(); + case SysMLPackage.LITERAL_RATIONAL: return createLiteralRational(); + case SysMLPackage.LITERAL_STRING: return createLiteralString(); + case SysMLPackage.MEMBERSHIP: return createMembership(); + case SysMLPackage.MEMBERSHIP_EXPOSE: return createMembershipExpose(); + case SysMLPackage.MEMBERSHIP_IMPORT: return createMembershipImport(); + case SysMLPackage.MERGE_NODE: return createMergeNode(); + case SysMLPackage.METACLASS: return createMetaclass(); + case SysMLPackage.METADATA_ACCESS_EXPRESSION: return createMetadataAccessExpression(); + case SysMLPackage.METADATA_DEFINITION: return createMetadataDefinition(); + case SysMLPackage.METADATA_FEATURE: return createMetadataFeature(); + case SysMLPackage.METADATA_USAGE: return createMetadataUsage(); + case SysMLPackage.MULTIPLICITY: return createMultiplicity(); + case SysMLPackage.MULTIPLICITY_RANGE: return createMultiplicityRange(); + case SysMLPackage.NAMESPACE: return createNamespace(); + case SysMLPackage.NAMESPACE_EXPOSE: return createNamespaceExpose(); + case SysMLPackage.NAMESPACE_IMPORT: return createNamespaceImport(); + case SysMLPackage.NULL_EXPRESSION: return createNullExpression(); + case SysMLPackage.OBJECTIVE_MEMBERSHIP: return createObjectiveMembership(); + case SysMLPackage.OCCURRENCE_DEFINITION: return createOccurrenceDefinition(); + case SysMLPackage.OCCURRENCE_USAGE: return createOccurrenceUsage(); + case SysMLPackage.OPERATOR_EXPRESSION: return createOperatorExpression(); + case SysMLPackage.OWNING_MEMBERSHIP: return createOwningMembership(); + case SysMLPackage.PACKAGE: return createPackage(); + case SysMLPackage.PARAMETER_MEMBERSHIP: return createParameterMembership(); + case SysMLPackage.PART_DEFINITION: return createPartDefinition(); + case SysMLPackage.PART_USAGE: return createPartUsage(); + case SysMLPackage.PAYLOAD_FEATURE: return createPayloadFeature(); + case SysMLPackage.PERFORM_ACTION_USAGE: return createPerformActionUsage(); + case SysMLPackage.PORT_CONJUGATION: return createPortConjugation(); + case SysMLPackage.PORT_DEFINITION: return createPortDefinition(); + case SysMLPackage.PORT_USAGE: return createPortUsage(); + case SysMLPackage.PREDICATE: return createPredicate(); + case SysMLPackage.REDEFINITION: return createRedefinition(); + case SysMLPackage.REFERENCE_SUBSETTING: return createReferenceSubsetting(); + case SysMLPackage.REFERENCE_USAGE: return createReferenceUsage(); + case SysMLPackage.RENDERING_DEFINITION: return createRenderingDefinition(); + case SysMLPackage.RENDERING_USAGE: return createRenderingUsage(); + case SysMLPackage.REQUIREMENT_CONSTRAINT_MEMBERSHIP: return createRequirementConstraintMembership(); + case SysMLPackage.REQUIREMENT_DEFINITION: return createRequirementDefinition(); + case SysMLPackage.REQUIREMENT_USAGE: return createRequirementUsage(); + case SysMLPackage.REQUIREMENT_VERIFICATION_MEMBERSHIP: return createRequirementVerificationMembership(); + case SysMLPackage.RESULT_EXPRESSION_MEMBERSHIP: return createResultExpressionMembership(); + case SysMLPackage.RETURN_PARAMETER_MEMBERSHIP: return createReturnParameterMembership(); + case SysMLPackage.SATISFY_REQUIREMENT_USAGE: return createSatisfyRequirementUsage(); + case SysMLPackage.SELECT_EXPRESSION: return createSelectExpression(); + case SysMLPackage.SEND_ACTION_USAGE: return createSendActionUsage(); + case SysMLPackage.SPECIALIZATION: return createSpecialization(); + case SysMLPackage.STAKEHOLDER_MEMBERSHIP: return createStakeholderMembership(); + case SysMLPackage.STATE_DEFINITION: return createStateDefinition(); + case SysMLPackage.STATE_SUBACTION_MEMBERSHIP: return createStateSubactionMembership(); + case SysMLPackage.STATE_USAGE: return createStateUsage(); + case SysMLPackage.STEP: return createStep(); + case SysMLPackage.STRUCTURE: return createStructure(); + case SysMLPackage.SUBCLASSIFICATION: return createSubclassification(); + case SysMLPackage.SUBJECT_MEMBERSHIP: return createSubjectMembership(); + case SysMLPackage.SUBSETTING: return createSubsetting(); + case SysMLPackage.SUCCESSION: return createSuccession(); + case SysMLPackage.SUCCESSION_AS_USAGE: return createSuccessionAsUsage(); + case SysMLPackage.SUCCESSION_FLOW: return createSuccessionFlow(); + case SysMLPackage.SUCCESSION_FLOW_USAGE: return createSuccessionFlowUsage(); + case SysMLPackage.TERMINATE_ACTION_USAGE: return createTerminateActionUsage(); + case SysMLPackage.TEXTUAL_REPRESENTATION: return createTextualRepresentation(); + case SysMLPackage.TRANSITION_FEATURE_MEMBERSHIP: return createTransitionFeatureMembership(); + case SysMLPackage.TRANSITION_USAGE: return createTransitionUsage(); + case SysMLPackage.TRIGGER_INVOCATION_EXPRESSION: return createTriggerInvocationExpression(); + case SysMLPackage.TYPE: return createType(); + case SysMLPackage.TYPE_FEATURING: return createTypeFeaturing(); + case SysMLPackage.UNIONING: return createUnioning(); + case SysMLPackage.USAGE: return createUsage(); + case SysMLPackage.USE_CASE_DEFINITION: return createUseCaseDefinition(); + case SysMLPackage.USE_CASE_USAGE: return createUseCaseUsage(); + case SysMLPackage.VARIANT_MEMBERSHIP: return createVariantMembership(); + case SysMLPackage.VERIFICATION_CASE_DEFINITION: return createVerificationCaseDefinition(); + case SysMLPackage.VERIFICATION_CASE_USAGE: return createVerificationCaseUsage(); + case SysMLPackage.VIEW_DEFINITION: return createViewDefinition(); + case SysMLPackage.VIEWPOINT_DEFINITION: return createViewpointDefinition(); + case SysMLPackage.VIEWPOINT_USAGE: return createViewpointUsage(); + case SysMLPackage.VIEW_RENDERING_MEMBERSHIP: return createViewRenderingMembership(); + case SysMLPackage.VIEW_USAGE: return createViewUsage(); + case SysMLPackage.WHILE_LOOP_ACTION_USAGE: return createWhileLoopActionUsage(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) { + switch (eDataType.getClassifierID()) { + case SysMLPackage.FEATURE_DIRECTION_KIND: + return createFeatureDirectionKindFromString(eDataType, initialValue); + case SysMLPackage.PORTION_KIND: + return createPortionKindFromString(eDataType, initialValue); + case SysMLPackage.REQUIREMENT_CONSTRAINT_KIND: + return createRequirementConstraintKindFromString(eDataType, initialValue); + case SysMLPackage.STATE_SUBACTION_KIND: + return createStateSubactionKindFromString(eDataType, initialValue); + case SysMLPackage.TRANSITION_FEATURE_KIND: + return createTransitionFeatureKindFromString(eDataType, initialValue); + case SysMLPackage.TRIGGER_KIND: + return createTriggerKindFromString(eDataType, initialValue); + case SysMLPackage.VISIBILITY_KIND: + return createVisibilityKindFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) { + switch (eDataType.getClassifierID()) { + case SysMLPackage.FEATURE_DIRECTION_KIND: + return convertFeatureDirectionKindToString(eDataType, instanceValue); + case SysMLPackage.PORTION_KIND: + return convertPortionKindToString(eDataType, instanceValue); + case SysMLPackage.REQUIREMENT_CONSTRAINT_KIND: + return convertRequirementConstraintKindToString(eDataType, instanceValue); + case SysMLPackage.STATE_SUBACTION_KIND: + return convertStateSubactionKindToString(eDataType, instanceValue); + case SysMLPackage.TRANSITION_FEATURE_KIND: + return convertTransitionFeatureKindToString(eDataType, instanceValue); + case SysMLPackage.TRIGGER_KIND: + return convertTriggerKindToString(eDataType, instanceValue); + case SysMLPackage.VISIBILITY_KIND: + return convertVisibilityKindToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public AcceptActionUsage createAcceptActionUsage() { + AcceptActionUsageImpl acceptActionUsage = new AcceptActionUsageImpl(); + return acceptActionUsage; + } + + /** + * + * + * @generated + */ + @Override + public ActionDefinition createActionDefinition() { + ActionDefinitionImpl actionDefinition = new ActionDefinitionImpl(); + return actionDefinition; + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage createActionUsage() { + ActionUsageImpl actionUsage = new ActionUsageImpl(); + return actionUsage; + } + + /** + * + * + * @generated + */ + @Override + public ActorMembership createActorMembership() { + ActorMembershipImpl actorMembership = new ActorMembershipImpl(); + return actorMembership; + } + + /** + * + * + * @generated + */ + @Override + public AllocationDefinition createAllocationDefinition() { + AllocationDefinitionImpl allocationDefinition = new AllocationDefinitionImpl(); + return allocationDefinition; + } + + /** + * + * + * @generated + */ + @Override + public AllocationUsage createAllocationUsage() { + AllocationUsageImpl allocationUsage = new AllocationUsageImpl(); + return allocationUsage; + } + + /** + * + * + * @generated + */ + @Override + public AnalysisCaseDefinition createAnalysisCaseDefinition() { + AnalysisCaseDefinitionImpl analysisCaseDefinition = new AnalysisCaseDefinitionImpl(); + return analysisCaseDefinition; + } + + /** + * + * + * @generated + */ + @Override + public AnalysisCaseUsage createAnalysisCaseUsage() { + AnalysisCaseUsageImpl analysisCaseUsage = new AnalysisCaseUsageImpl(); + return analysisCaseUsage; + } + + /** + * + * + * @generated + */ + @Override + public AnnotatingElement createAnnotatingElement() { + AnnotatingElementImpl annotatingElement = new AnnotatingElementImpl(); + return annotatingElement; + } + + /** + * + * + * @generated + */ + @Override + public Annotation createAnnotation() { + AnnotationImpl annotation = new AnnotationImpl(); + return annotation; + } + + /** + * + * + * @generated + */ + @Override + public AssertConstraintUsage createAssertConstraintUsage() { + AssertConstraintUsageImpl assertConstraintUsage = new AssertConstraintUsageImpl(); + return assertConstraintUsage; + } + + /** + * + * + * @generated + */ + @Override + public AssignmentActionUsage createAssignmentActionUsage() { + AssignmentActionUsageImpl assignmentActionUsage = new AssignmentActionUsageImpl(); + return assignmentActionUsage; + } + + /** + * + * + * @generated + */ + @Override + public Association createAssociation() { + AssociationImpl association = new AssociationImpl(); + return association; + } + + /** + * + * + * @generated + */ + @Override + public AssociationStructure createAssociationStructure() { + AssociationStructureImpl associationStructure = new AssociationStructureImpl(); + return associationStructure; + } + + /** + * + * + * @generated + */ + @Override + public AttributeDefinition createAttributeDefinition() { + AttributeDefinitionImpl attributeDefinition = new AttributeDefinitionImpl(); + return attributeDefinition; + } + + /** + * + * + * @generated + */ + @Override + public AttributeUsage createAttributeUsage() { + AttributeUsageImpl attributeUsage = new AttributeUsageImpl(); + return attributeUsage; + } + + /** + * + * + * @generated + */ + @Override + public Behavior createBehavior() { + BehaviorImpl behavior = new BehaviorImpl(); + return behavior; + } + + /** + * + * + * @generated + */ + @Override + public BindingConnector createBindingConnector() { + BindingConnectorImpl bindingConnector = new BindingConnectorImpl(); + return bindingConnector; + } + + /** + * + * + * @generated + */ + @Override + public BindingConnectorAsUsage createBindingConnectorAsUsage() { + BindingConnectorAsUsageImpl bindingConnectorAsUsage = new BindingConnectorAsUsageImpl(); + return bindingConnectorAsUsage; + } + + /** + * + * + * @generated + */ + @Override + public BooleanExpression createBooleanExpression() { + BooleanExpressionImpl booleanExpression = new BooleanExpressionImpl(); + return booleanExpression; + } + + /** + * + * + * @generated + */ + @Override + public CalculationDefinition createCalculationDefinition() { + CalculationDefinitionImpl calculationDefinition = new CalculationDefinitionImpl(); + return calculationDefinition; + } + + /** + * + * + * @generated + */ + @Override + public CalculationUsage createCalculationUsage() { + CalculationUsageImpl calculationUsage = new CalculationUsageImpl(); + return calculationUsage; + } + + /** + * + * + * @generated + */ + @Override + public CaseDefinition createCaseDefinition() { + CaseDefinitionImpl caseDefinition = new CaseDefinitionImpl(); + return caseDefinition; + } + + /** + * + * + * @generated + */ + @Override + public CaseUsage createCaseUsage() { + CaseUsageImpl caseUsage = new CaseUsageImpl(); + return caseUsage; + } + + /** + * + * + * @generated + */ + @Override + public org.omg.sysml.model.sysml.Class createClass() { + ClassImpl class_ = new ClassImpl(); + return class_; + } + + /** + * + * + * @generated + */ + @Override + public Classifier createClassifier() { + ClassifierImpl classifier = new ClassifierImpl(); + return classifier; + } + + /** + * + * + * @generated + */ + @Override + public CollectExpression createCollectExpression() { + CollectExpressionImpl collectExpression = new CollectExpressionImpl(); + return collectExpression; + } + + /** + * + * + * @generated + */ + @Override + public Comment createComment() { + CommentImpl comment = new CommentImpl(); + return comment; + } + + /** + * + * + * @generated + */ + @Override + public ConcernDefinition createConcernDefinition() { + ConcernDefinitionImpl concernDefinition = new ConcernDefinitionImpl(); + return concernDefinition; + } + + /** + * + * + * @generated + */ + @Override + public ConcernUsage createConcernUsage() { + ConcernUsageImpl concernUsage = new ConcernUsageImpl(); + return concernUsage; + } + + /** + * + * + * @generated + */ + @Override + public ConjugatedPortDefinition createConjugatedPortDefinition() { + ConjugatedPortDefinitionImpl conjugatedPortDefinition = new ConjugatedPortDefinitionImpl(); + return conjugatedPortDefinition; + } + + /** + * + * + * @generated + */ + @Override + public ConjugatedPortTyping createConjugatedPortTyping() { + ConjugatedPortTypingImpl conjugatedPortTyping = new ConjugatedPortTypingImpl(); + return conjugatedPortTyping; + } + + /** + * + * + * @generated + */ + @Override + public Conjugation createConjugation() { + ConjugationImpl conjugation = new ConjugationImpl(); + return conjugation; + } + + /** + * + * + * @generated + */ + @Override + public ConnectionDefinition createConnectionDefinition() { + ConnectionDefinitionImpl connectionDefinition = new ConnectionDefinitionImpl(); + return connectionDefinition; + } + + /** + * + * + * @generated + */ + @Override + public ConnectionUsage createConnectionUsage() { + ConnectionUsageImpl connectionUsage = new ConnectionUsageImpl(); + return connectionUsage; + } + + /** + * + * + * @generated + */ + @Override + public Connector createConnector() { + ConnectorImpl connector = new ConnectorImpl(); + return connector; + } + + /** + * + * + * @generated + */ + @Override + public ConstraintDefinition createConstraintDefinition() { + ConstraintDefinitionImpl constraintDefinition = new ConstraintDefinitionImpl(); + return constraintDefinition; + } + + /** + * + * + * @generated + */ + @Override + public ConstraintUsage createConstraintUsage() { + ConstraintUsageImpl constraintUsage = new ConstraintUsageImpl(); + return constraintUsage; + } + + /** + * + * + * @generated + */ + @Override + public ConstructorExpression createConstructorExpression() { + ConstructorExpressionImpl constructorExpression = new ConstructorExpressionImpl(); + return constructorExpression; + } + + /** + * + * + * @generated + */ + @Override + public CrossSubsetting createCrossSubsetting() { + CrossSubsettingImpl crossSubsetting = new CrossSubsettingImpl(); + return crossSubsetting; + } + + /** + * + * + * @generated + */ + @Override + public DataType createDataType() { + DataTypeImpl dataType = new DataTypeImpl(); + return dataType; + } + + /** + * + * + * @generated + */ + @Override + public DecisionNode createDecisionNode() { + DecisionNodeImpl decisionNode = new DecisionNodeImpl(); + return decisionNode; + } + + /** + * + * + * @generated + */ + @Override + public Definition createDefinition() { + DefinitionImpl definition = new DefinitionImpl(); + return definition; + } + + /** + * + * + * @generated + */ + @Override + public Dependency createDependency() { + DependencyImpl dependency = new DependencyImpl(); + return dependency; + } + + /** + * + * + * @generated + */ + @Override + public Differencing createDifferencing() { + DifferencingImpl differencing = new DifferencingImpl(); + return differencing; + } + + /** + * + * + * @generated + */ + @Override + public Disjoining createDisjoining() { + DisjoiningImpl disjoining = new DisjoiningImpl(); + return disjoining; + } + + /** + * + * + * @generated + */ + @Override + public Documentation createDocumentation() { + DocumentationImpl documentation = new DocumentationImpl(); + return documentation; + } + + /** + * + * + * @generated + */ + @Override + public ElementFilterMembership createElementFilterMembership() { + ElementFilterMembershipImpl elementFilterMembership = new ElementFilterMembershipImpl(); + return elementFilterMembership; + } + + /** + * + * + * @generated + */ + @Override + public EndFeatureMembership createEndFeatureMembership() { + EndFeatureMembershipImpl endFeatureMembership = new EndFeatureMembershipImpl(); + return endFeatureMembership; + } + + /** + * + * + * @generated + */ + @Override + public EnumerationDefinition createEnumerationDefinition() { + EnumerationDefinitionImpl enumerationDefinition = new EnumerationDefinitionImpl(); + return enumerationDefinition; + } + + /** + * + * + * @generated + */ + @Override + public EnumerationUsage createEnumerationUsage() { + EnumerationUsageImpl enumerationUsage = new EnumerationUsageImpl(); + return enumerationUsage; + } + + /** + * + * + * @generated + */ + @Override + public EventOccurrenceUsage createEventOccurrenceUsage() { + EventOccurrenceUsageImpl eventOccurrenceUsage = new EventOccurrenceUsageImpl(); + return eventOccurrenceUsage; + } + + /** + * + * + * @generated + */ + @Override + public ExhibitStateUsage createExhibitStateUsage() { + ExhibitStateUsageImpl exhibitStateUsage = new ExhibitStateUsageImpl(); + return exhibitStateUsage; + } + + /** + * + * + * @generated + */ + @Override + public Expression createExpression() { + ExpressionImpl expression = new ExpressionImpl(); + return expression; + } + + /** + * + * + * @generated + */ + @Override + public Feature createFeature() { + FeatureImpl feature = new FeatureImpl(); + return feature; + } + + /** + * + * + * @generated + */ + @Override + public FeatureChainExpression createFeatureChainExpression() { + FeatureChainExpressionImpl featureChainExpression = new FeatureChainExpressionImpl(); + return featureChainExpression; + } + + /** + * + * + * @generated + */ + @Override + public FeatureChaining createFeatureChaining() { + FeatureChainingImpl featureChaining = new FeatureChainingImpl(); + return featureChaining; + } + + /** + * + * + * @generated + */ + @Override + public FeatureInverting createFeatureInverting() { + FeatureInvertingImpl featureInverting = new FeatureInvertingImpl(); + return featureInverting; + } + + /** + * + * + * @generated + */ + @Override + public FeatureMembership createFeatureMembership() { + FeatureMembershipImpl featureMembership = new FeatureMembershipImpl(); + return featureMembership; + } + + /** + * + * + * @generated + */ + @Override + public FeatureReferenceExpression createFeatureReferenceExpression() { + FeatureReferenceExpressionImpl featureReferenceExpression = new FeatureReferenceExpressionImpl(); + return featureReferenceExpression; + } + + /** + * + * + * @generated + */ + @Override + public FeatureTyping createFeatureTyping() { + FeatureTypingImpl featureTyping = new FeatureTypingImpl(); + return featureTyping; + } + + /** + * + * + * @generated + */ + @Override + public FeatureValue createFeatureValue() { + FeatureValueImpl featureValue = new FeatureValueImpl(); + return featureValue; + } + + /** + * + * + * @generated + */ + @Override + public Flow createFlow() { + FlowImpl flow = new FlowImpl(); + return flow; + } + + /** + * + * + * @generated + */ + @Override + public FlowDefinition createFlowDefinition() { + FlowDefinitionImpl flowDefinition = new FlowDefinitionImpl(); + return flowDefinition; + } + + /** + * + * + * @generated + */ + @Override + public FlowEnd createFlowEnd() { + FlowEndImpl flowEnd = new FlowEndImpl(); + return flowEnd; + } + + /** + * + * + * @generated + */ + @Override + public FlowUsage createFlowUsage() { + FlowUsageImpl flowUsage = new FlowUsageImpl(); + return flowUsage; + } + + /** + * + * + * @generated + */ + @Override + public ForkNode createForkNode() { + ForkNodeImpl forkNode = new ForkNodeImpl(); + return forkNode; + } + + /** + * + * + * @generated + */ + @Override + public ForLoopActionUsage createForLoopActionUsage() { + ForLoopActionUsageImpl forLoopActionUsage = new ForLoopActionUsageImpl(); + return forLoopActionUsage; + } + + /** + * + * + * @generated + */ + @Override + public FramedConcernMembership createFramedConcernMembership() { + FramedConcernMembershipImpl framedConcernMembership = new FramedConcernMembershipImpl(); + return framedConcernMembership; + } + + /** + * + * + * @generated + */ + @Override + public Function createFunction() { + FunctionImpl function = new FunctionImpl(); + return function; + } + + /** + * + * + * @generated + */ + @Override + public IfActionUsage createIfActionUsage() { + IfActionUsageImpl ifActionUsage = new IfActionUsageImpl(); + return ifActionUsage; + } + + /** + * + * + * @generated + */ + @Override + public IncludeUseCaseUsage createIncludeUseCaseUsage() { + IncludeUseCaseUsageImpl includeUseCaseUsage = new IncludeUseCaseUsageImpl(); + return includeUseCaseUsage; + } + + /** + * + * + * @generated + */ + @Override + public IndexExpression createIndexExpression() { + IndexExpressionImpl indexExpression = new IndexExpressionImpl(); + return indexExpression; + } + + /** + * + * + * @generated + */ + @Override + public Interaction createInteraction() { + InteractionImpl interaction = new InteractionImpl(); + return interaction; + } + + /** + * + * + * @generated + */ + @Override + public InterfaceDefinition createInterfaceDefinition() { + InterfaceDefinitionImpl interfaceDefinition = new InterfaceDefinitionImpl(); + return interfaceDefinition; + } + + /** + * + * + * @generated + */ + @Override + public InterfaceUsage createInterfaceUsage() { + InterfaceUsageImpl interfaceUsage = new InterfaceUsageImpl(); + return interfaceUsage; + } + + /** + * + * + * @generated + */ + @Override + public Intersecting createIntersecting() { + IntersectingImpl intersecting = new IntersectingImpl(); + return intersecting; + } + + /** + * + * + * @generated + */ + @Override + public Invariant createInvariant() { + InvariantImpl invariant = new InvariantImpl(); + return invariant; + } + + /** + * + * + * @generated + */ + @Override + public InvocationExpression createInvocationExpression() { + InvocationExpressionImpl invocationExpression = new InvocationExpressionImpl(); + return invocationExpression; + } + + /** + * + * + * @generated + */ + @Override + public ItemDefinition createItemDefinition() { + ItemDefinitionImpl itemDefinition = new ItemDefinitionImpl(); + return itemDefinition; + } + + /** + * + * + * @generated + */ + @Override + public ItemUsage createItemUsage() { + ItemUsageImpl itemUsage = new ItemUsageImpl(); + return itemUsage; + } + + /** + * + * + * @generated + */ + @Override + public JoinNode createJoinNode() { + JoinNodeImpl joinNode = new JoinNodeImpl(); + return joinNode; + } + + /** + * + * + * @generated + */ + @Override + public LibraryPackage createLibraryPackage() { + LibraryPackageImpl libraryPackage = new LibraryPackageImpl(); + return libraryPackage; + } + + /** + * + * + * @generated + */ + @Override + public LiteralBoolean createLiteralBoolean() { + LiteralBooleanImpl literalBoolean = new LiteralBooleanImpl(); + return literalBoolean; + } + + /** + * + * + * @generated + */ + @Override + public LiteralExpression createLiteralExpression() { + LiteralExpressionImpl literalExpression = new LiteralExpressionImpl(); + return literalExpression; + } + + /** + * + * + * @generated + */ + @Override + public LiteralInfinity createLiteralInfinity() { + LiteralInfinityImpl literalInfinity = new LiteralInfinityImpl(); + return literalInfinity; + } + + /** + * + * + * @generated + */ + @Override + public LiteralInteger createLiteralInteger() { + LiteralIntegerImpl literalInteger = new LiteralIntegerImpl(); + return literalInteger; + } + + /** + * + * + * @generated + */ + @Override + public LiteralRational createLiteralRational() { + LiteralRationalImpl literalRational = new LiteralRationalImpl(); + return literalRational; + } + + /** + * + * + * @generated + */ + @Override + public LiteralString createLiteralString() { + LiteralStringImpl literalString = new LiteralStringImpl(); + return literalString; + } + + /** + * + * + * @generated + */ + @Override + public Membership createMembership() { + MembershipImpl membership = new MembershipImpl(); + return membership; + } + + /** + * + * + * @generated + */ + @Override + public MembershipExpose createMembershipExpose() { + MembershipExposeImpl membershipExpose = new MembershipExposeImpl(); + return membershipExpose; + } + + /** + * + * + * @generated + */ + @Override + public MembershipImport createMembershipImport() { + MembershipImportImpl membershipImport = new MembershipImportImpl(); + return membershipImport; + } + + /** + * + * + * @generated + */ + @Override + public MergeNode createMergeNode() { + MergeNodeImpl mergeNode = new MergeNodeImpl(); + return mergeNode; + } + + /** + * + * + * @generated + */ + @Override + public Metaclass createMetaclass() { + MetaclassImpl metaclass = new MetaclassImpl(); + return metaclass; + } + + /** + * + * + * @generated + */ + @Override + public MetadataAccessExpression createMetadataAccessExpression() { + MetadataAccessExpressionImpl metadataAccessExpression = new MetadataAccessExpressionImpl(); + return metadataAccessExpression; + } + + /** + * + * + * @generated + */ + @Override + public MetadataDefinition createMetadataDefinition() { + MetadataDefinitionImpl metadataDefinition = new MetadataDefinitionImpl(); + return metadataDefinition; + } + + /** + * + * + * @generated + */ + @Override + public MetadataFeature createMetadataFeature() { + MetadataFeatureImpl metadataFeature = new MetadataFeatureImpl(); + return metadataFeature; + } + + /** + * + * + * @generated + */ + @Override + public MetadataUsage createMetadataUsage() { + MetadataUsageImpl metadataUsage = new MetadataUsageImpl(); + return metadataUsage; + } + + /** + * + * + * @generated + */ + @Override + public Multiplicity createMultiplicity() { + MultiplicityImpl multiplicity = new MultiplicityImpl(); + return multiplicity; + } + + /** + * + * + * @generated + */ + @Override + public MultiplicityRange createMultiplicityRange() { + MultiplicityRangeImpl multiplicityRange = new MultiplicityRangeImpl(); + return multiplicityRange; + } + + /** + * + * + * @generated + */ + @Override + public Namespace createNamespace() { + NamespaceImpl namespace = new NamespaceImpl(); + return namespace; + } + + /** + * + * + * @generated + */ + @Override + public NamespaceExpose createNamespaceExpose() { + NamespaceExposeImpl namespaceExpose = new NamespaceExposeImpl(); + return namespaceExpose; + } + + /** + * + * + * @generated + */ + @Override + public NamespaceImport createNamespaceImport() { + NamespaceImportImpl namespaceImport = new NamespaceImportImpl(); + return namespaceImport; + } + + /** + * + * + * @generated + */ + @Override + public NullExpression createNullExpression() { + NullExpressionImpl nullExpression = new NullExpressionImpl(); + return nullExpression; + } + + /** + * + * + * @generated + */ + @Override + public ObjectiveMembership createObjectiveMembership() { + ObjectiveMembershipImpl objectiveMembership = new ObjectiveMembershipImpl(); + return objectiveMembership; + } + + /** + * + * + * @generated + */ + @Override + public OccurrenceDefinition createOccurrenceDefinition() { + OccurrenceDefinitionImpl occurrenceDefinition = new OccurrenceDefinitionImpl(); + return occurrenceDefinition; + } + + /** + * + * + * @generated + */ + @Override + public OccurrenceUsage createOccurrenceUsage() { + OccurrenceUsageImpl occurrenceUsage = new OccurrenceUsageImpl(); + return occurrenceUsage; + } + + /** + * + * + * @generated + */ + @Override + public OperatorExpression createOperatorExpression() { + OperatorExpressionImpl operatorExpression = new OperatorExpressionImpl(); + return operatorExpression; + } + + /** + * + * + * @generated + */ + @Override + public OwningMembership createOwningMembership() { + OwningMembershipImpl owningMembership = new OwningMembershipImpl(); + return owningMembership; + } + + /** + * + * + * @generated + */ + @Override + public org.omg.sysml.model.sysml.Package createPackage() { + PackageImpl package_ = new PackageImpl(); + return package_; + } + + /** + * + * + * @generated + */ + @Override + public ParameterMembership createParameterMembership() { + ParameterMembershipImpl parameterMembership = new ParameterMembershipImpl(); + return parameterMembership; + } + + /** + * + * + * @generated + */ + @Override + public PartDefinition createPartDefinition() { + PartDefinitionImpl partDefinition = new PartDefinitionImpl(); + return partDefinition; + } + + /** + * + * + * @generated + */ + @Override + public PartUsage createPartUsage() { + PartUsageImpl partUsage = new PartUsageImpl(); + return partUsage; + } + + /** + * + * + * @generated + */ + @Override + public PayloadFeature createPayloadFeature() { + PayloadFeatureImpl payloadFeature = new PayloadFeatureImpl(); + return payloadFeature; + } + + /** + * + * + * @generated + */ + @Override + public PerformActionUsage createPerformActionUsage() { + PerformActionUsageImpl performActionUsage = new PerformActionUsageImpl(); + return performActionUsage; + } + + /** + * + * + * @generated + */ + @Override + public PortConjugation createPortConjugation() { + PortConjugationImpl portConjugation = new PortConjugationImpl(); + return portConjugation; + } + + /** + * + * + * @generated + */ + @Override + public PortDefinition createPortDefinition() { + PortDefinitionImpl portDefinition = new PortDefinitionImpl(); + return portDefinition; + } + + /** + * + * + * @generated + */ + @Override + public PortUsage createPortUsage() { + PortUsageImpl portUsage = new PortUsageImpl(); + return portUsage; + } + + /** + * + * + * @generated + */ + @Override + public Predicate createPredicate() { + PredicateImpl predicate = new PredicateImpl(); + return predicate; + } + + /** + * + * + * @generated + */ + @Override + public Redefinition createRedefinition() { + RedefinitionImpl redefinition = new RedefinitionImpl(); + return redefinition; + } + + /** + * + * + * @generated + */ + @Override + public ReferenceSubsetting createReferenceSubsetting() { + ReferenceSubsettingImpl referenceSubsetting = new ReferenceSubsettingImpl(); + return referenceSubsetting; + } + + /** + * + * + * @generated + */ + @Override + public ReferenceUsage createReferenceUsage() { + ReferenceUsageImpl referenceUsage = new ReferenceUsageImpl(); + return referenceUsage; + } + + /** + * + * + * @generated + */ + @Override + public RenderingDefinition createRenderingDefinition() { + RenderingDefinitionImpl renderingDefinition = new RenderingDefinitionImpl(); + return renderingDefinition; + } + + /** + * + * + * @generated + */ + @Override + public RenderingUsage createRenderingUsage() { + RenderingUsageImpl renderingUsage = new RenderingUsageImpl(); + return renderingUsage; + } + + /** + * + * + * @generated + */ + @Override + public RequirementConstraintMembership createRequirementConstraintMembership() { + RequirementConstraintMembershipImpl requirementConstraintMembership = new RequirementConstraintMembershipImpl(); + return requirementConstraintMembership; + } + + /** + * + * + * @generated + */ + @Override + public RequirementDefinition createRequirementDefinition() { + RequirementDefinitionImpl requirementDefinition = new RequirementDefinitionImpl(); + return requirementDefinition; + } + + /** + * + * + * @generated + */ + @Override + public RequirementUsage createRequirementUsage() { + RequirementUsageImpl requirementUsage = new RequirementUsageImpl(); + return requirementUsage; + } + + /** + * + * + * @generated + */ + @Override + public RequirementVerificationMembership createRequirementVerificationMembership() { + RequirementVerificationMembershipImpl requirementVerificationMembership = new RequirementVerificationMembershipImpl(); + return requirementVerificationMembership; + } + + /** + * + * + * @generated + */ + @Override + public ResultExpressionMembership createResultExpressionMembership() { + ResultExpressionMembershipImpl resultExpressionMembership = new ResultExpressionMembershipImpl(); + return resultExpressionMembership; + } + + /** + * + * + * @generated + */ + @Override + public ReturnParameterMembership createReturnParameterMembership() { + ReturnParameterMembershipImpl returnParameterMembership = new ReturnParameterMembershipImpl(); + return returnParameterMembership; + } + + /** + * + * + * @generated + */ + @Override + public SatisfyRequirementUsage createSatisfyRequirementUsage() { + SatisfyRequirementUsageImpl satisfyRequirementUsage = new SatisfyRequirementUsageImpl(); + return satisfyRequirementUsage; + } + + /** + * + * + * @generated + */ + @Override + public SelectExpression createSelectExpression() { + SelectExpressionImpl selectExpression = new SelectExpressionImpl(); + return selectExpression; + } + + /** + * + * + * @generated + */ + @Override + public SendActionUsage createSendActionUsage() { + SendActionUsageImpl sendActionUsage = new SendActionUsageImpl(); + return sendActionUsage; + } + + /** + * + * + * @generated + */ + @Override + public Specialization createSpecialization() { + SpecializationImpl specialization = new SpecializationImpl(); + return specialization; + } + + /** + * + * + * @generated + */ + @Override + public StakeholderMembership createStakeholderMembership() { + StakeholderMembershipImpl stakeholderMembership = new StakeholderMembershipImpl(); + return stakeholderMembership; + } + + /** + * + * + * @generated + */ + @Override + public StateDefinition createStateDefinition() { + StateDefinitionImpl stateDefinition = new StateDefinitionImpl(); + return stateDefinition; + } + + /** + * + * + * @generated + */ + @Override + public StateSubactionMembership createStateSubactionMembership() { + StateSubactionMembershipImpl stateSubactionMembership = new StateSubactionMembershipImpl(); + return stateSubactionMembership; + } + + /** + * + * + * @generated + */ + @Override + public StateUsage createStateUsage() { + StateUsageImpl stateUsage = new StateUsageImpl(); + return stateUsage; + } + + /** + * + * + * @generated + */ + @Override + public Step createStep() { + StepImpl step = new StepImpl(); + return step; + } + + /** + * + * + * @generated + */ + @Override + public Structure createStructure() { + StructureImpl structure = new StructureImpl(); + return structure; + } + + /** + * + * + * @generated + */ + @Override + public Subclassification createSubclassification() { + SubclassificationImpl subclassification = new SubclassificationImpl(); + return subclassification; + } + + /** + * + * + * @generated + */ + @Override + public SubjectMembership createSubjectMembership() { + SubjectMembershipImpl subjectMembership = new SubjectMembershipImpl(); + return subjectMembership; + } + + /** + * + * + * @generated + */ + @Override + public Subsetting createSubsetting() { + SubsettingImpl subsetting = new SubsettingImpl(); + return subsetting; + } + + /** + * + * + * @generated + */ + @Override + public Succession createSuccession() { + SuccessionImpl succession = new SuccessionImpl(); + return succession; + } + + /** + * + * + * @generated + */ + @Override + public SuccessionAsUsage createSuccessionAsUsage() { + SuccessionAsUsageImpl successionAsUsage = new SuccessionAsUsageImpl(); + return successionAsUsage; + } + + /** + * + * + * @generated + */ + @Override + public SuccessionFlow createSuccessionFlow() { + SuccessionFlowImpl successionFlow = new SuccessionFlowImpl(); + return successionFlow; + } + + /** + * + * + * @generated + */ + @Override + public SuccessionFlowUsage createSuccessionFlowUsage() { + SuccessionFlowUsageImpl successionFlowUsage = new SuccessionFlowUsageImpl(); + return successionFlowUsage; + } + + /** + * + * + * @generated + */ + @Override + public TerminateActionUsage createTerminateActionUsage() { + TerminateActionUsageImpl terminateActionUsage = new TerminateActionUsageImpl(); + return terminateActionUsage; + } + + /** + * + * + * @generated + */ + @Override + public TextualRepresentation createTextualRepresentation() { + TextualRepresentationImpl textualRepresentation = new TextualRepresentationImpl(); + return textualRepresentation; + } + + /** + * + * + * @generated + */ + @Override + public TransitionFeatureMembership createTransitionFeatureMembership() { + TransitionFeatureMembershipImpl transitionFeatureMembership = new TransitionFeatureMembershipImpl(); + return transitionFeatureMembership; + } + + /** + * + * + * @generated + */ + @Override + public TransitionUsage createTransitionUsage() { + TransitionUsageImpl transitionUsage = new TransitionUsageImpl(); + return transitionUsage; + } + + /** + * + * + * @generated + */ + @Override + public TriggerInvocationExpression createTriggerInvocationExpression() { + TriggerInvocationExpressionImpl triggerInvocationExpression = new TriggerInvocationExpressionImpl(); + return triggerInvocationExpression; + } + + /** + * + * + * @generated + */ + @Override + public Type createType() { + TypeImpl type = new TypeImpl(); + return type; + } + + /** + * + * + * @generated + */ + @Override + public TypeFeaturing createTypeFeaturing() { + TypeFeaturingImpl typeFeaturing = new TypeFeaturingImpl(); + return typeFeaturing; + } + + /** + * + * + * @generated + */ + @Override + public Unioning createUnioning() { + UnioningImpl unioning = new UnioningImpl(); + return unioning; + } + + /** + * + * + * @generated + */ + @Override + public Usage createUsage() { + UsageImpl usage = new UsageImpl(); + return usage; + } + + /** + * + * + * @generated + */ + @Override + public UseCaseDefinition createUseCaseDefinition() { + UseCaseDefinitionImpl useCaseDefinition = new UseCaseDefinitionImpl(); + return useCaseDefinition; + } + + /** + * + * + * @generated + */ + @Override + public UseCaseUsage createUseCaseUsage() { + UseCaseUsageImpl useCaseUsage = new UseCaseUsageImpl(); + return useCaseUsage; + } + + /** + * + * + * @generated + */ + @Override + public VariantMembership createVariantMembership() { + VariantMembershipImpl variantMembership = new VariantMembershipImpl(); + return variantMembership; + } + + /** + * + * + * @generated + */ + @Override + public VerificationCaseDefinition createVerificationCaseDefinition() { + VerificationCaseDefinitionImpl verificationCaseDefinition = new VerificationCaseDefinitionImpl(); + return verificationCaseDefinition; + } + + /** + * + * + * @generated + */ + @Override + public VerificationCaseUsage createVerificationCaseUsage() { + VerificationCaseUsageImpl verificationCaseUsage = new VerificationCaseUsageImpl(); + return verificationCaseUsage; + } + + /** + * + * + * @generated + */ + @Override + public ViewDefinition createViewDefinition() { + ViewDefinitionImpl viewDefinition = new ViewDefinitionImpl(); + return viewDefinition; + } + + /** + * + * + * @generated + */ + @Override + public ViewpointDefinition createViewpointDefinition() { + ViewpointDefinitionImpl viewpointDefinition = new ViewpointDefinitionImpl(); + return viewpointDefinition; + } + + /** + * + * + * @generated + */ + @Override + public ViewpointUsage createViewpointUsage() { + ViewpointUsageImpl viewpointUsage = new ViewpointUsageImpl(); + return viewpointUsage; + } + + /** + * + * + * @generated + */ + @Override + public ViewRenderingMembership createViewRenderingMembership() { + ViewRenderingMembershipImpl viewRenderingMembership = new ViewRenderingMembershipImpl(); + return viewRenderingMembership; + } + + /** + * + * + * @generated + */ + @Override + public ViewUsage createViewUsage() { + ViewUsageImpl viewUsage = new ViewUsageImpl(); + return viewUsage; + } + + /** + * + * + * @generated + */ + @Override + public WhileLoopActionUsage createWhileLoopActionUsage() { + WhileLoopActionUsageImpl whileLoopActionUsage = new WhileLoopActionUsageImpl(); + return whileLoopActionUsage; + } + + /** + * + * + * @generated + */ + public FeatureDirectionKind createFeatureDirectionKindFromString(EDataType eDataType, String initialValue) { + FeatureDirectionKind result = FeatureDirectionKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertFeatureDirectionKindToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public PortionKind createPortionKindFromString(EDataType eDataType, String initialValue) { + PortionKind result = PortionKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertPortionKindToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public RequirementConstraintKind createRequirementConstraintKindFromString(EDataType eDataType, String initialValue) { + RequirementConstraintKind result = RequirementConstraintKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertRequirementConstraintKindToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public StateSubactionKind createStateSubactionKindFromString(EDataType eDataType, String initialValue) { + StateSubactionKind result = StateSubactionKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertStateSubactionKindToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public TransitionFeatureKind createTransitionFeatureKindFromString(EDataType eDataType, String initialValue) { + TransitionFeatureKind result = TransitionFeatureKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertTransitionFeatureKindToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public TriggerKind createTriggerKindFromString(EDataType eDataType, String initialValue) { + TriggerKind result = TriggerKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertTriggerKindToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public VisibilityKind createVisibilityKindFromString(EDataType eDataType, String initialValue) { + VisibilityKind result = VisibilityKind.get(initialValue); + if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertVisibilityKindToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + @Override + public SysMLPackage getSysMLPackage() { + return (SysMLPackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static SysMLPackage getPackage() { + return SysMLPackage.eINSTANCE; + } + +} //SysMLFactoryImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SysMLPackageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SysMLPackageImpl.java new file mode 100644 index 000000000..a5b63c88c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/SysMLPackageImpl.java @@ -0,0 +1,16611 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EOperation; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.ActionDefinition; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.ActorMembership; +import org.omg.sysml.model.sysml.AllocationDefinition; +import org.omg.sysml.model.sysml.AllocationUsage; +import org.omg.sysml.model.sysml.AnalysisCaseDefinition; +import org.omg.sysml.model.sysml.AnalysisCaseUsage; +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.AssertConstraintUsage; +import org.omg.sysml.model.sysml.AssignmentActionUsage; +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.AssociationStructure; +import org.omg.sysml.model.sysml.AttributeDefinition; +import org.omg.sysml.model.sysml.AttributeUsage; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.BindingConnector; +import org.omg.sysml.model.sysml.BindingConnectorAsUsage; +import org.omg.sysml.model.sysml.BooleanExpression; +import org.omg.sysml.model.sysml.CalculationDefinition; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.CollectExpression; +import org.omg.sysml.model.sysml.Comment; +import org.omg.sysml.model.sysml.ConcernDefinition; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.model.sysml.ConjugatedPortTyping; +import org.omg.sysml.model.sysml.Conjugation; +import org.omg.sysml.model.sysml.ConnectionDefinition; +import org.omg.sysml.model.sysml.ConnectionUsage; +import org.omg.sysml.model.sysml.Connector; +import org.omg.sysml.model.sysml.ConnectorAsUsage; +import org.omg.sysml.model.sysml.ConstraintDefinition; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.ConstructorExpression; +import org.omg.sysml.model.sysml.ControlNode; +import org.omg.sysml.model.sysml.CrossSubsetting; +import org.omg.sysml.model.sysml.DataType; +import org.omg.sysml.model.sysml.DecisionNode; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.Dependency; +import org.omg.sysml.model.sysml.Differencing; +import org.omg.sysml.model.sysml.Disjoining; +import org.omg.sysml.model.sysml.Documentation; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.ElementFilterMembership; +import org.omg.sysml.model.sysml.EndFeatureMembership; +import org.omg.sysml.model.sysml.EnumerationDefinition; +import org.omg.sysml.model.sysml.EnumerationUsage; +import org.omg.sysml.model.sysml.EventOccurrenceUsage; +import org.omg.sysml.model.sysml.ExhibitStateUsage; +import org.omg.sysml.model.sysml.Expose; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChainExpression; +import org.omg.sysml.model.sysml.FeatureChaining; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.FeatureInverting; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.FeatureReferenceExpression; +import org.omg.sysml.model.sysml.FeatureTyping; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.Flow; +import org.omg.sysml.model.sysml.FlowDefinition; +import org.omg.sysml.model.sysml.FlowEnd; +import org.omg.sysml.model.sysml.FlowUsage; +import org.omg.sysml.model.sysml.ForLoopActionUsage; +import org.omg.sysml.model.sysml.ForkNode; +import org.omg.sysml.model.sysml.FramedConcernMembership; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.IfActionUsage; +import org.omg.sysml.model.sysml.Import; +import org.omg.sysml.model.sysml.IncludeUseCaseUsage; +import org.omg.sysml.model.sysml.IndexExpression; +import org.omg.sysml.model.sysml.InstantiationExpression; +import org.omg.sysml.model.sysml.Interaction; +import org.omg.sysml.model.sysml.InterfaceDefinition; +import org.omg.sysml.model.sysml.InterfaceUsage; +import org.omg.sysml.model.sysml.Intersecting; +import org.omg.sysml.model.sysml.Invariant; +import org.omg.sysml.model.sysml.InvocationExpression; +import org.omg.sysml.model.sysml.ItemDefinition; +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.JoinNode; +import org.omg.sysml.model.sysml.LibraryPackage; +import org.omg.sysml.model.sysml.LiteralBoolean; +import org.omg.sysml.model.sysml.LiteralExpression; +import org.omg.sysml.model.sysml.LiteralInfinity; +import org.omg.sysml.model.sysml.LiteralInteger; +import org.omg.sysml.model.sysml.LiteralRational; +import org.omg.sysml.model.sysml.LiteralString; +import org.omg.sysml.model.sysml.LoopActionUsage; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.MembershipExpose; +import org.omg.sysml.model.sysml.MembershipImport; +import org.omg.sysml.model.sysml.MergeNode; +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.model.sysml.MetadataAccessExpression; +import org.omg.sysml.model.sysml.MetadataDefinition; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.MetadataUsage; +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.MultiplicityRange; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.NamespaceExpose; +import org.omg.sysml.model.sysml.NamespaceImport; +import org.omg.sysml.model.sysml.NullExpression; +import org.omg.sysml.model.sysml.ObjectiveMembership; +import org.omg.sysml.model.sysml.OccurrenceDefinition; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.OperatorExpression; +import org.omg.sysml.model.sysml.OwningMembership; +import org.omg.sysml.model.sysml.ParameterMembership; +import org.omg.sysml.model.sysml.PartDefinition; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.PayloadFeature; +import org.omg.sysml.model.sysml.PerformActionUsage; +import org.omg.sysml.model.sysml.PortConjugation; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.model.sysml.PortionKind; +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.model.sysml.Redefinition; +import org.omg.sysml.model.sysml.ReferenceSubsetting; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.Relationship; +import org.omg.sysml.model.sysml.RenderingDefinition; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.RequirementConstraintKind; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.RequirementVerificationMembership; +import org.omg.sysml.model.sysml.ResultExpressionMembership; +import org.omg.sysml.model.sysml.ReturnParameterMembership; +import org.omg.sysml.model.sysml.SatisfyRequirementUsage; +import org.omg.sysml.model.sysml.SelectExpression; +import org.omg.sysml.model.sysml.SendActionUsage; +import org.omg.sysml.model.sysml.Specialization; +import org.omg.sysml.model.sysml.StakeholderMembership; +import org.omg.sysml.model.sysml.StateDefinition; +import org.omg.sysml.model.sysml.StateSubactionKind; +import org.omg.sysml.model.sysml.StateSubactionMembership; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.Structure; +import org.omg.sysml.model.sysml.Subclassification; +import org.omg.sysml.model.sysml.SubjectMembership; +import org.omg.sysml.model.sysml.Subsetting; +import org.omg.sysml.model.sysml.Succession; +import org.omg.sysml.model.sysml.SuccessionAsUsage; +import org.omg.sysml.model.sysml.SuccessionFlow; +import org.omg.sysml.model.sysml.SuccessionFlowUsage; +import org.omg.sysml.model.sysml.SysMLFactory; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TerminateActionUsage; +import org.omg.sysml.model.sysml.TextualRepresentation; +import org.omg.sysml.model.sysml.TransitionFeatureKind; +import org.omg.sysml.model.sysml.TransitionFeatureMembership; +import org.omg.sysml.model.sysml.TransitionUsage; +import org.omg.sysml.model.sysml.TriggerInvocationExpression; +import org.omg.sysml.model.sysml.TriggerKind; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.TypeFeaturing; +import org.omg.sysml.model.sysml.Unioning; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.UseCaseDefinition; +import org.omg.sysml.model.sysml.UseCaseUsage; +import org.omg.sysml.model.sysml.VariantMembership; +import org.omg.sysml.model.sysml.VerificationCaseDefinition; +import org.omg.sysml.model.sysml.VerificationCaseUsage; +import org.omg.sysml.model.sysml.ViewDefinition; +import org.omg.sysml.model.sysml.ViewRenderingMembership; +import org.omg.sysml.model.sysml.ViewUsage; +import org.omg.sysml.model.sysml.ViewpointDefinition; +import org.omg.sysml.model.sysml.ViewpointUsage; +import org.omg.sysml.model.sysml.VisibilityKind; +import org.omg.sysml.model.sysml.WhileLoopActionUsage; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class SysMLPackageImpl extends EPackageImpl implements SysMLPackage { + /** + * + * + * @generated + */ + private EClass acceptActionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass actionDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass actionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass actorMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass allocationDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass allocationUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass analysisCaseDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass analysisCaseUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass annotatingElementEClass = null; + + /** + * + * + * @generated + */ + private EClass annotationEClass = null; + + /** + * + * + * @generated + */ + private EClass assertConstraintUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass assignmentActionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass associationEClass = null; + + /** + * + * + * @generated + */ + private EClass associationStructureEClass = null; + + /** + * + * + * @generated + */ + private EClass attributeDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass attributeUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass behaviorEClass = null; + + /** + * + * + * @generated + */ + private EClass bindingConnectorEClass = null; + + /** + * + * + * @generated + */ + private EClass bindingConnectorAsUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass booleanExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass calculationDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass calculationUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass caseDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass caseUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass classEClass = null; + + /** + * + * + * @generated + */ + private EClass classifierEClass = null; + + /** + * + * + * @generated + */ + private EClass collectExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass commentEClass = null; + + /** + * + * + * @generated + */ + private EClass concernDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass concernUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass conjugatedPortDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass conjugatedPortTypingEClass = null; + + /** + * + * + * @generated + */ + private EClass conjugationEClass = null; + + /** + * + * + * @generated + */ + private EClass connectionDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass connectionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass connectorEClass = null; + + /** + * + * + * @generated + */ + private EClass connectorAsUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass constraintDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass constraintUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass constructorExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass controlNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass crossSubsettingEClass = null; + + /** + * + * + * @generated + */ + private EClass dataTypeEClass = null; + + /** + * + * + * @generated + */ + private EClass decisionNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass definitionEClass = null; + + /** + * + * + * @generated + */ + private EClass dependencyEClass = null; + + /** + * + * + * @generated + */ + private EClass differencingEClass = null; + + /** + * + * + * @generated + */ + private EClass disjoiningEClass = null; + + /** + * + * + * @generated + */ + private EClass documentationEClass = null; + + /** + * + * + * @generated + */ + private EClass elementEClass = null; + + /** + * + * + * @generated + */ + private EClass elementFilterMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass endFeatureMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass enumerationDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass enumerationUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass eventOccurrenceUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass exhibitStateUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass exposeEClass = null; + + /** + * + * + * @generated + */ + private EClass expressionEClass = null; + + /** + * + * + * @generated + */ + private EClass featureEClass = null; + + /** + * + * + * @generated + */ + private EClass featureChainExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass featureChainingEClass = null; + + /** + * + * + * @generated + */ + private EClass featureInvertingEClass = null; + + /** + * + * + * @generated + */ + private EClass featureMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass featureReferenceExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass featureTypingEClass = null; + + /** + * + * + * @generated + */ + private EClass featureValueEClass = null; + + /** + * + * + * @generated + */ + private EClass flowEClass = null; + + /** + * + * + * @generated + */ + private EClass flowDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass flowEndEClass = null; + + /** + * + * + * @generated + */ + private EClass flowUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass forkNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass forLoopActionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass framedConcernMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass functionEClass = null; + + /** + * + * + * @generated + */ + private EClass ifActionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass importEClass = null; + + /** + * + * + * @generated + */ + private EClass includeUseCaseUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass indexExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass instantiationExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass interactionEClass = null; + + /** + * + * + * @generated + */ + private EClass interfaceDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass interfaceUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass intersectingEClass = null; + + /** + * + * + * @generated + */ + private EClass invariantEClass = null; + + /** + * + * + * @generated + */ + private EClass invocationExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass itemDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass itemUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass joinNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass libraryPackageEClass = null; + + /** + * + * + * @generated + */ + private EClass literalBooleanEClass = null; + + /** + * + * + * @generated + */ + private EClass literalExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass literalInfinityEClass = null; + + /** + * + * + * @generated + */ + private EClass literalIntegerEClass = null; + + /** + * + * + * @generated + */ + private EClass literalRationalEClass = null; + + /** + * + * + * @generated + */ + private EClass literalStringEClass = null; + + /** + * + * + * @generated + */ + private EClass loopActionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass membershipEClass = null; + + /** + * + * + * @generated + */ + private EClass membershipExposeEClass = null; + + /** + * + * + * @generated + */ + private EClass membershipImportEClass = null; + + /** + * + * + * @generated + */ + private EClass mergeNodeEClass = null; + + /** + * + * + * @generated + */ + private EClass metaclassEClass = null; + + /** + * + * + * @generated + */ + private EClass metadataAccessExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass metadataDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass metadataFeatureEClass = null; + + /** + * + * + * @generated + */ + private EClass metadataUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass multiplicityEClass = null; + + /** + * + * + * @generated + */ + private EClass multiplicityRangeEClass = null; + + /** + * + * + * @generated + */ + private EClass namespaceEClass = null; + + /** + * + * + * @generated + */ + private EClass namespaceExposeEClass = null; + + /** + * + * + * @generated + */ + private EClass namespaceImportEClass = null; + + /** + * + * + * @generated + */ + private EClass nullExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass objectiveMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass occurrenceDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass occurrenceUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass operatorExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass owningMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass packageEClass = null; + + /** + * + * + * @generated + */ + private EClass parameterMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass partDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass partUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass payloadFeatureEClass = null; + + /** + * + * + * @generated + */ + private EClass performActionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass portConjugationEClass = null; + + /** + * + * + * @generated + */ + private EClass portDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass portUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass predicateEClass = null; + + /** + * + * + * @generated + */ + private EClass redefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass referenceSubsettingEClass = null; + + /** + * + * + * @generated + */ + private EClass referenceUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass relationshipEClass = null; + + /** + * + * + * @generated + */ + private EClass renderingDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass renderingUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass requirementConstraintMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass requirementDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass requirementUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass requirementVerificationMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass resultExpressionMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass returnParameterMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass satisfyRequirementUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass selectExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass sendActionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass specializationEClass = null; + + /** + * + * + * @generated + */ + private EClass stakeholderMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass stateDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass stateSubactionMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass stateUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass stepEClass = null; + + /** + * + * + * @generated + */ + private EClass structureEClass = null; + + /** + * + * + * @generated + */ + private EClass subclassificationEClass = null; + + /** + * + * + * @generated + */ + private EClass subjectMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass subsettingEClass = null; + + /** + * + * + * @generated + */ + private EClass successionEClass = null; + + /** + * + * + * @generated + */ + private EClass successionAsUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass successionFlowEClass = null; + + /** + * + * + * @generated + */ + private EClass successionFlowUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass terminateActionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass textualRepresentationEClass = null; + + /** + * + * + * @generated + */ + private EClass transitionFeatureMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass transitionUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass triggerInvocationExpressionEClass = null; + + /** + * + * + * @generated + */ + private EClass typeEClass = null; + + /** + * + * + * @generated + */ + private EClass typeFeaturingEClass = null; + + /** + * + * + * @generated + */ + private EClass unioningEClass = null; + + /** + * + * + * @generated + */ + private EClass usageEClass = null; + + /** + * + * + * @generated + */ + private EClass useCaseDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass useCaseUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass variantMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass verificationCaseDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass verificationCaseUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass viewDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass viewpointDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass viewpointUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass viewRenderingMembershipEClass = null; + + /** + * + * + * @generated + */ + private EClass viewUsageEClass = null; + + /** + * + * + * @generated + */ + private EClass whileLoopActionUsageEClass = null; + + /** + * + * + * @generated + */ + private EEnum featureDirectionKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum portionKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum requirementConstraintKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum stateSubactionKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum transitionFeatureKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum triggerKindEEnum = null; + + /** + * + * + * @generated + */ + private EEnum visibilityKindEEnum = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.omg.sysml.model.sysml.SysMLPackage#eNS_URI + * @see #init() + * @generated + */ + private SysMLPackageImpl() { + super(eNS_URI, SysMLFactory.eINSTANCE); + } + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

This method is used to initialize {@link SysMLPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static SysMLPackage init() { + if (isInited) return (SysMLPackage)EPackage.Registry.INSTANCE.getEPackage(SysMLPackage.eNS_URI); + + // Obtain or create and register package + Object registeredSysMLPackage = EPackage.Registry.INSTANCE.get(eNS_URI); + SysMLPackageImpl theSysMLPackage = registeredSysMLPackage instanceof SysMLPackageImpl ? (SysMLPackageImpl)registeredSysMLPackage : new SysMLPackageImpl(); + + isInited = true; + + // Create package meta-data objects + theSysMLPackage.createPackageContents(); + + // Initialize created meta-data + theSysMLPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theSysMLPackage.freeze(); + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(SysMLPackage.eNS_URI, theSysMLPackage); + return theSysMLPackage; + } + + /** + * + * + * @generated + */ + @Override + public EClass getAcceptActionUsage() { + return acceptActionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAcceptActionUsage_PayloadArgument() { + return (EReference)acceptActionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAcceptActionUsage_PayloadParameter() { + return (EReference)acceptActionUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAcceptActionUsage_ReceiverArgument() { + return (EReference)acceptActionUsageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getAcceptActionUsage__IsTriggerAction() { + return acceptActionUsageEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getActionDefinition() { + return actionDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getActionDefinition_Action() { + return (EReference)actionDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getActionUsage() { + return actionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getActionUsage_ActionDefinition() { + return (EReference)actionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getActionUsage__Argument__int() { + return actionUsageEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getActionUsage__InputParameter__int() { + return actionUsageEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getActionUsage__InputParameters() { + return actionUsageEClass.getEOperations().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getActionUsage__IsSubactionUsage() { + return actionUsageEClass.getEOperations().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getActorMembership() { + return actorMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getActorMembership_OwnedActorParameter() { + return (EReference)actorMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAllocationDefinition() { + return allocationDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAllocationDefinition_Allocation() { + return (EReference)allocationDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAllocationUsage() { + return allocationUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAllocationUsage_AllocationDefinition() { + return (EReference)allocationUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAnalysisCaseDefinition() { + return analysisCaseDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnalysisCaseDefinition_ResultExpression() { + return (EReference)analysisCaseDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAnalysisCaseUsage() { + return analysisCaseUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnalysisCaseUsage_AnalysisCaseDefinition() { + return (EReference)analysisCaseUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnalysisCaseUsage_ResultExpression() { + return (EReference)analysisCaseUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAnnotatingElement() { + return annotatingElementEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotatingElement_AnnotatedElement() { + return (EReference)annotatingElementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotatingElement_Annotation() { + return (EReference)annotatingElementEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotatingElement_OwnedAnnotatingRelationship() { + return (EReference)annotatingElementEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotatingElement_OwningAnnotatingRelationship() { + return (EReference)annotatingElementEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAnnotation() { + return annotationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotation_AnnotatedElement() { + return (EReference)annotationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotation_AnnotatingElement() { + return (EReference)annotationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotation_OwnedAnnotatingElement() { + return (EReference)annotationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotation_OwningAnnotatedElement() { + return (EReference)annotationEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAnnotation_OwningAnnotatingElement() { + return (EReference)annotationEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAssertConstraintUsage() { + return assertConstraintUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssertConstraintUsage_AssertedConstraint() { + return (EReference)assertConstraintUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAssignmentActionUsage() { + return assignmentActionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssignmentActionUsage_Referent() { + return (EReference)assignmentActionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssignmentActionUsage_TargetArgument() { + return (EReference)assignmentActionUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssignmentActionUsage_ValueExpression() { + return (EReference)assignmentActionUsageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAssociation() { + return associationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssociation_AssociationEnd() { + return (EReference)associationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssociation_RelatedType() { + return (EReference)associationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssociation_SourceType() { + return (EReference)associationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getAssociation_TargetType() { + return (EReference)associationEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getAssociationStructure() { + return associationStructureEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getAttributeDefinition() { + return attributeDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getAttributeUsage() { + return attributeUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getAttributeUsage_AttributeDefinition() { + return (EReference)attributeUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getBehavior() { + return behaviorEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getBehavior_Parameter() { + return (EReference)behaviorEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getBehavior_Step() { + return (EReference)behaviorEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getBindingConnector() { + return bindingConnectorEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getBindingConnectorAsUsage() { + return bindingConnectorAsUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getBooleanExpression() { + return booleanExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getBooleanExpression_Predicate() { + return (EReference)booleanExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getCalculationDefinition() { + return calculationDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getCalculationDefinition_Calculation() { + return (EReference)calculationDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getCalculationUsage() { + return calculationUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getCalculationUsage_CalculationDefinition() { + return (EReference)calculationUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getCaseDefinition() { + return caseDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getCaseDefinition_ActorParameter() { + return (EReference)caseDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getCaseDefinition_ObjectiveRequirement() { + return (EReference)caseDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getCaseDefinition_SubjectParameter() { + return (EReference)caseDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getCaseUsage() { + return caseUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getCaseUsage_ActorParameter() { + return (EReference)caseUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getCaseUsage_CaseDefinition() { + return (EReference)caseUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getCaseUsage_ObjectiveRequirement() { + return (EReference)caseUsageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getCaseUsage_SubjectParameter() { + return (EReference)caseUsageEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getClass_() { + return classEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getClassifier() { + return classifierEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getClassifier_OwnedSubclassification() { + return (EReference)classifierEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getCollectExpression() { + return collectExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getComment() { + return commentEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getComment_Body() { + return (EAttribute)commentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getComment_Locale() { + return (EAttribute)commentEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConcernDefinition() { + return concernDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getConcernUsage() { + return concernUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getConcernUsage_ConcernDefinition() { + return (EReference)concernUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConjugatedPortDefinition() { + return conjugatedPortDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getConjugatedPortDefinition_OriginalPortDefinition() { + return (EReference)conjugatedPortDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getConjugatedPortDefinition_OwnedPortConjugator() { + return (EReference)conjugatedPortDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConjugatedPortTyping() { + return conjugatedPortTypingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getConjugatedPortTyping_ConjugatedPortDefinition() { + return (EReference)conjugatedPortTypingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getConjugatedPortTyping_PortDefinition() { + return (EReference)conjugatedPortTypingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConjugation() { + return conjugationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getConjugation_ConjugatedType() { + return (EReference)conjugationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getConjugation_OriginalType() { + return (EReference)conjugationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getConjugation_OwningType() { + return (EReference)conjugationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConnectionDefinition() { + return connectionDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getConnectionDefinition_ConnectionEnd() { + return (EReference)connectionDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConnectionUsage() { + return connectionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getConnectionUsage_ConnectionDefinition() { + return (EReference)connectionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConnector() { + return connectorEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getConnector_Association() { + return (EReference)connectorEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getConnector_ConnectorEnd() { + return (EReference)connectorEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getConnector_DefaultFeaturingType() { + return (EReference)connectorEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getConnector_RelatedFeature() { + return (EReference)connectorEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getConnector_SourceFeature() { + return (EReference)connectorEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getConnector_TargetFeature() { + return (EReference)connectorEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConnectorAsUsage() { + return connectorAsUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getConstraintDefinition() { + return constraintDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getConstraintUsage() { + return constraintUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getConstraintUsage_ConstraintDefinition() { + return (EReference)constraintUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getConstructorExpression() { + return constructorExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getControlNode() { + return controlNodeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EOperation getControlNode__MultiplicityHasBounds__Multiplicity_int_int() { + return controlNodeEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getCrossSubsetting() { + return crossSubsettingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getCrossSubsetting_CrossedFeature() { + return (EReference)crossSubsettingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getCrossSubsetting_CrossingFeature() { + return (EReference)crossSubsettingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getDataType() { + return dataTypeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getDecisionNode() { + return decisionNodeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getDefinition() { + return definitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getDefinition_IsVariation() { + return (EAttribute)definitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_DirectedUsage() { + return (EReference)definitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedAction() { + return (EReference)definitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedAllocation() { + return (EReference)definitionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedAnalysisCase() { + return (EReference)definitionEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedAttribute() { + return (EReference)definitionEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedCalculation() { + return (EReference)definitionEClass.getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedCase() { + return (EReference)definitionEClass.getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedConcern() { + return (EReference)definitionEClass.getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedConnection() { + return (EReference)definitionEClass.getEStructuralFeatures().get(9); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedConstraint() { + return (EReference)definitionEClass.getEStructuralFeatures().get(10); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedEnumeration() { + return (EReference)definitionEClass.getEStructuralFeatures().get(11); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedFlow() { + return (EReference)definitionEClass.getEStructuralFeatures().get(12); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedInterface() { + return (EReference)definitionEClass.getEStructuralFeatures().get(13); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedItem() { + return (EReference)definitionEClass.getEStructuralFeatures().get(14); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedMetadata() { + return (EReference)definitionEClass.getEStructuralFeatures().get(15); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedOccurrence() { + return (EReference)definitionEClass.getEStructuralFeatures().get(16); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedPart() { + return (EReference)definitionEClass.getEStructuralFeatures().get(17); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedPort() { + return (EReference)definitionEClass.getEStructuralFeatures().get(18); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedReference() { + return (EReference)definitionEClass.getEStructuralFeatures().get(19); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedRendering() { + return (EReference)definitionEClass.getEStructuralFeatures().get(20); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedRequirement() { + return (EReference)definitionEClass.getEStructuralFeatures().get(21); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedState() { + return (EReference)definitionEClass.getEStructuralFeatures().get(22); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedTransition() { + return (EReference)definitionEClass.getEStructuralFeatures().get(23); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedUsage() { + return (EReference)definitionEClass.getEStructuralFeatures().get(24); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedUseCase() { + return (EReference)definitionEClass.getEStructuralFeatures().get(25); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedVerificationCase() { + return (EReference)definitionEClass.getEStructuralFeatures().get(26); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedView() { + return (EReference)definitionEClass.getEStructuralFeatures().get(27); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_OwnedViewpoint() { + return (EReference)definitionEClass.getEStructuralFeatures().get(28); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_Usage() { + return (EReference)definitionEClass.getEStructuralFeatures().get(29); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_Variant() { + return (EReference)definitionEClass.getEStructuralFeatures().get(30); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDefinition_VariantMembership() { + return (EReference)definitionEClass.getEStructuralFeatures().get(31); + } + + /** + * + * + * @generated + */ + @Override + public EClass getDependency() { + return dependencyEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getDependency_Client() { + return (EReference)dependencyEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDependency_Supplier() { + return (EReference)dependencyEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getDifferencing() { + return differencingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getDifferencing_DifferencingType() { + return (EReference)differencingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDifferencing_TypeDifferenced() { + return (EReference)differencingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getDisjoining() { + return disjoiningEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getDisjoining_DisjoiningType() { + return (EReference)disjoiningEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDisjoining_OwningType() { + return (EReference)disjoiningEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getDisjoining_TypeDisjoined() { + return (EReference)disjoiningEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getDocumentation() { + return documentationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getDocumentation_DocumentedElement() { + return (EReference)documentationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getElement() { + return elementEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getElement_AliasIds() { + return (EAttribute)elementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getElement_DeclaredName() { + return (EAttribute)elementEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getElement_DeclaredShortName() { + return (EAttribute)elementEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getElement_ElementId() { + return (EAttribute)elementEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getElement_IsImpliedIncluded() { + return (EAttribute)elementEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getElement_IsLibraryElement() { + return (EAttribute)elementEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getElement_Name() { + return (EAttribute)elementEClass.getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getElement_QualifiedName() { + return (EAttribute)elementEClass.getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getElement_ShortName() { + return (EAttribute)elementEClass.getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_Documentation() { + return (EReference)elementEClass.getEStructuralFeatures().get(9); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_OwnedAnnotation() { + return (EReference)elementEClass.getEStructuralFeatures().get(10); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_OwnedElement() { + return (EReference)elementEClass.getEStructuralFeatures().get(11); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_OwnedRelationship() { + return (EReference)elementEClass.getEStructuralFeatures().get(12); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_Owner() { + return (EReference)elementEClass.getEStructuralFeatures().get(13); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_OwningMembership() { + return (EReference)elementEClass.getEStructuralFeatures().get(14); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_OwningNamespace() { + return (EReference)elementEClass.getEStructuralFeatures().get(15); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_OwningRelationship() { + return (EReference)elementEClass.getEStructuralFeatures().get(16); + } + + /** + * + * + * @generated + */ + @Override + public EReference getElement_TextualRepresentation() { + return (EReference)elementEClass.getEStructuralFeatures().get(17); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getElement__EffectiveName() { + return elementEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getElement__EffectiveShortName() { + return elementEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getElement__EscapedName() { + return elementEClass.getEOperations().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getElement__LibraryNamespace() { + return elementEClass.getEOperations().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getElement__Path() { + return elementEClass.getEOperations().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EClass getElementFilterMembership() { + return elementFilterMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getElementFilterMembership_Condition() { + return (EReference)elementFilterMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEndFeatureMembership() { + return endFeatureMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getEnumerationDefinition() { + return enumerationDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEnumerationDefinition_EnumeratedValue() { + return (EReference)enumerationDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEnumerationUsage() { + return enumerationUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEnumerationUsage_EnumerationDefinition() { + return (EReference)enumerationUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getEventOccurrenceUsage() { + return eventOccurrenceUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getEventOccurrenceUsage_EventOccurrence() { + return (EReference)eventOccurrenceUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getExhibitStateUsage() { + return exhibitStateUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getExhibitStateUsage_ExhibitedState() { + return (EReference)exhibitStateUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getExpose() { + return exposeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getExpression() { + return expressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getExpression_IsModelLevelEvaluable() { + return (EAttribute)expressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getExpression_Function() { + return (EReference)expressionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getExpression_Result() { + return (EReference)expressionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getExpression__CheckCondition__Element() { + return expressionEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getExpression__Evaluate__Element() { + return expressionEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getExpression__ModelLevelEvaluable__EList() { + return expressionEClass.getEOperations().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFeature() { + return featureEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeature_Direction() { + return (EAttribute)featureEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeature_IsComposite() { + return (EAttribute)featureEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeature_IsConstant() { + return (EAttribute)featureEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeature_IsDerived() { + return (EAttribute)featureEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeature_IsEnd() { + return (EAttribute)featureEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeature_IsNonunique() { + return (EAttribute)featureEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeature_IsOrdered() { + return (EAttribute)featureEClass.getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeature_IsPortion() { + return (EAttribute)featureEClass.getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeature_IsUnique() { + return (EAttribute)featureEClass.getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeature_IsVariable() { + return (EAttribute)featureEClass.getEStructuralFeatures().get(9); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_ChainingFeature() { + return (EReference)featureEClass.getEStructuralFeatures().get(10); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_CrossFeature() { + return (EReference)featureEClass.getEStructuralFeatures().get(11); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_EndOwningType() { + return (EReference)featureEClass.getEStructuralFeatures().get(12); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_FeatureTarget() { + return (EReference)featureEClass.getEStructuralFeatures().get(13); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_FeaturingType() { + return (EReference)featureEClass.getEStructuralFeatures().get(14); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_OwnedCrossSubsetting() { + return (EReference)featureEClass.getEStructuralFeatures().get(15); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_OwnedFeatureChaining() { + return (EReference)featureEClass.getEStructuralFeatures().get(16); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_OwnedFeatureInverting() { + return (EReference)featureEClass.getEStructuralFeatures().get(17); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_OwnedRedefinition() { + return (EReference)featureEClass.getEStructuralFeatures().get(18); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_OwnedReferenceSubsetting() { + return (EReference)featureEClass.getEStructuralFeatures().get(19); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_OwnedSubsetting() { + return (EReference)featureEClass.getEStructuralFeatures().get(20); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_OwnedTypeFeaturing() { + return (EReference)featureEClass.getEStructuralFeatures().get(21); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_OwnedTyping() { + return (EReference)featureEClass.getEStructuralFeatures().get(22); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_OwningFeatureMembership() { + return (EReference)featureEClass.getEStructuralFeatures().get(23); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_OwningType() { + return (EReference)featureEClass.getEStructuralFeatures().get(24); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeature_Type() { + return (EReference)featureEClass.getEStructuralFeatures().get(25); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__AllRedefinedFeatures() { + return featureEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__AsCartesianProduct() { + return featureEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__CanAccess__Feature() { + return featureEClass.getEOperations().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__DirectionFor__Type() { + return featureEClass.getEOperations().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__IsCartesianProduct() { + return featureEClass.getEOperations().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__IsFeaturedWithin__Type() { + return featureEClass.getEOperations().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__IsFeaturingType__Type() { + return featureEClass.getEOperations().get(6); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__IsOwnedCrossFeature() { + return featureEClass.getEOperations().get(7); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__NamingFeature() { + return featureEClass.getEOperations().get(8); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__OwnedCrossFeature() { + return featureEClass.getEOperations().get(9); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__Redefines__Feature() { + return featureEClass.getEOperations().get(10); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__RedefinesFromLibrary__String() { + return featureEClass.getEOperations().get(11); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__SubsetsChain__Feature_Feature() { + return featureEClass.getEOperations().get(12); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeature__TypingFeatures() { + return featureEClass.getEOperations().get(13); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFeatureChainExpression() { + return featureChainExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureChainExpression_TargetFeature() { + return (EReference)featureChainExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getFeatureChainExpression__SourceTargetFeature() { + return featureChainExpressionEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFeatureChaining() { + return featureChainingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureChaining_ChainingFeature() { + return (EReference)featureChainingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureChaining_FeatureChained() { + return (EReference)featureChainingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFeatureInverting() { + return featureInvertingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureInverting_FeatureInverted() { + return (EReference)featureInvertingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureInverting_InvertingFeature() { + return (EReference)featureInvertingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureInverting_OwningFeature() { + return (EReference)featureInvertingEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFeatureMembership() { + return featureMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureMembership_OwnedMemberFeature() { + return (EReference)featureMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureMembership_OwningType() { + return (EReference)featureMembershipEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFeatureReferenceExpression() { + return featureReferenceExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureReferenceExpression_Referent() { + return (EReference)featureReferenceExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFeatureTyping() { + return featureTypingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureTyping_OwningFeature() { + return (EReference)featureTypingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureTyping_Type() { + return (EReference)featureTypingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureTyping_TypedFeature() { + return (EReference)featureTypingEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFeatureValue() { + return featureValueEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeatureValue_IsDefault() { + return (EAttribute)featureValueEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFeatureValue_IsInitial() { + return (EAttribute)featureValueEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureValue_FeatureWithValue() { + return (EReference)featureValueEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFeatureValue_Value() { + return (EReference)featureValueEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFlow() { + return flowEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFlow_FlowEnd() { + return (EReference)flowEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFlow_Interaction() { + return (EReference)flowEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFlow_PayloadFeature() { + return (EReference)flowEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFlow_PayloadType() { + return (EReference)flowEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFlow_SourceOutputFeature() { + return (EReference)flowEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFlow_TargetInputFeature() { + return (EReference)flowEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFlowDefinition() { + return flowDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFlowDefinition_FlowEnd() { + return (EReference)flowDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFlowEnd() { + return flowEndEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getFlowUsage() { + return flowUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFlowUsage_FlowDefinition() { + return (EReference)flowUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getForkNode() { + return forkNodeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getForLoopActionUsage() { + return forLoopActionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getForLoopActionUsage_LoopVariable() { + return (EReference)forLoopActionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getForLoopActionUsage_SeqArgument() { + return (EReference)forLoopActionUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFramedConcernMembership() { + return framedConcernMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFramedConcernMembership_OwnedConcern() { + return (EReference)framedConcernMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFramedConcernMembership_ReferencedConcern() { + return (EReference)framedConcernMembershipEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getFunction() { + return functionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getFunction_IsModelLevelEvaluable() { + return (EAttribute)functionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFunction_Expression() { + return (EReference)functionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getFunction_Result() { + return (EReference)functionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getIfActionUsage() { + return ifActionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getIfActionUsage_ElseAction() { + return (EReference)ifActionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getIfActionUsage_IfArgument() { + return (EReference)ifActionUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getIfActionUsage_ThenAction() { + return (EReference)ifActionUsageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getImport() { + return importEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getImport_IsImportAll() { + return (EAttribute)importEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getImport_IsRecursive() { + return (EAttribute)importEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getImport_Visibility() { + return (EAttribute)importEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getImport_ImportedElement() { + return (EReference)importEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getImport_ImportOwningNamespace() { + return (EReference)importEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getImport__ImportedMemberships__EList() { + return importEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getIncludeUseCaseUsage() { + return includeUseCaseUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getIncludeUseCaseUsage_UseCaseIncluded() { + return (EReference)includeUseCaseUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getIndexExpression() { + return indexExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getInstantiationExpression() { + return instantiationExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getInstantiationExpression_Argument() { + return (EReference)instantiationExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getInstantiationExpression_InstantiatedType() { + return (EReference)instantiationExpressionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getInstantiationExpression__InstantiatedType() { + return instantiationExpressionEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getInteraction() { + return interactionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getInterfaceDefinition() { + return interfaceDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getInterfaceDefinition_InterfaceEnd() { + return (EReference)interfaceDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getInterfaceUsage() { + return interfaceUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getInterfaceUsage_InterfaceDefinition() { + return (EReference)interfaceUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getIntersecting() { + return intersectingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getIntersecting_IntersectingType() { + return (EReference)intersectingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getIntersecting_TypeIntersected() { + return (EReference)intersectingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getInvariant() { + return invariantEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getInvariant_IsNegated() { + return (EAttribute)invariantEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getInvocationExpression() { + return invocationExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getInvocationExpression_Operand() { + return (EReference)invocationExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getItemDefinition() { + return itemDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getItemUsage() { + return itemUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getItemUsage_ItemDefinition() { + return (EReference)itemUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getJoinNode() { + return joinNodeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getLibraryPackage() { + return libraryPackageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getLibraryPackage_IsStandard() { + return (EAttribute)libraryPackageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getLiteralBoolean() { + return literalBooleanEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getLiteralBoolean_Value() { + return (EAttribute)literalBooleanEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getLiteralExpression() { + return literalExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getLiteralInfinity() { + return literalInfinityEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getLiteralInteger() { + return literalIntegerEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getLiteralInteger_Value() { + return (EAttribute)literalIntegerEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getLiteralRational() { + return literalRationalEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getLiteralRational_Value() { + return (EAttribute)literalRationalEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getLiteralString() { + return literalStringEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getLiteralString_Value() { + return (EAttribute)literalStringEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getLoopActionUsage() { + return loopActionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getLoopActionUsage_BodyAction() { + return (EReference)loopActionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMembership() { + return membershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMembership_MemberElementId() { + return (EAttribute)membershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMembership_MemberName() { + return (EAttribute)membershipEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMembership_MemberShortName() { + return (EAttribute)membershipEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMembership_Visibility() { + return (EAttribute)membershipEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMembership_MemberElement() { + return (EReference)membershipEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMembership_MembershipOwningNamespace() { + return (EReference)membershipEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getMembership__IsDistinguishableFrom__Membership() { + return membershipEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMembershipExpose() { + return membershipExposeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getMembershipImport() { + return membershipImportEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getMembershipImport_ImportedMembership() { + return (EReference)membershipImportEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMergeNode() { + return mergeNodeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getMetaclass() { + return metaclassEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getMetadataAccessExpression() { + return metadataAccessExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getMetadataAccessExpression_ReferencedElement() { + return (EReference)metadataAccessExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getMetadataAccessExpression__MetaclassFeature() { + return metadataAccessExpressionEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMetadataDefinition() { + return metadataDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getMetadataFeature() { + return metadataFeatureEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getMetadataFeature_Metaclass() { + return (EReference)metadataFeatureEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getMetadataFeature__EvaluateFeature__Feature() { + return metadataFeatureEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getMetadataFeature__IsSemantic() { + return metadataFeatureEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getMetadataFeature__IsSyntactic() { + return metadataFeatureEClass.getEOperations().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getMetadataFeature__SyntaxElement() { + return metadataFeatureEClass.getEOperations().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMetadataUsage() { + return metadataUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getMetadataUsage_MetadataDefinition() { + return (EReference)metadataUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMultiplicity() { + return multiplicityEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getMultiplicityRange() { + return multiplicityRangeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getMultiplicityRange_Bound() { + return (EReference)multiplicityRangeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMultiplicityRange_LowerBound() { + return (EReference)multiplicityRangeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMultiplicityRange_UpperBound() { + return (EReference)multiplicityRangeEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getMultiplicityRange__HasBounds__int_int() { + return multiplicityRangeEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getMultiplicityRange__ValueOf__Expression() { + return multiplicityRangeEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getNamespace() { + return namespaceEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getNamespace_ImportedMembership() { + return (EReference)namespaceEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getNamespace_Member() { + return (EReference)namespaceEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getNamespace_Membership() { + return (EReference)namespaceEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getNamespace_OwnedImport() { + return (EReference)namespaceEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getNamespace_OwnedMember() { + return (EReference)namespaceEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getNamespace_OwnedMembership() { + return (EReference)namespaceEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__ImportedMemberships__EList() { + return namespaceEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__MembershipsOfVisibility__VisibilityKind_EList() { + return namespaceEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__NamesOf__Element() { + return namespaceEClass.getEOperations().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__QualificationOf__String() { + return namespaceEClass.getEOperations().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__Resolve__String() { + return namespaceEClass.getEOperations().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__ResolveGlobal__String() { + return namespaceEClass.getEOperations().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__ResolveLocal__String() { + return namespaceEClass.getEOperations().get(6); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__ResolveVisible__String() { + return namespaceEClass.getEOperations().get(7); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__UnqualifiedNameOf__String() { + return namespaceEClass.getEOperations().get(8); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__VisibilityOf__Membership() { + return namespaceEClass.getEOperations().get(9); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getNamespace__VisibleMemberships__EList_boolean_boolean() { + return namespaceEClass.getEOperations().get(10); + } + + /** + * + * + * @generated + */ + @Override + public EClass getNamespaceExpose() { + return namespaceExposeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getNamespaceImport() { + return namespaceImportEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getNamespaceImport_ImportedNamespace() { + return (EReference)namespaceImportEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getNullExpression() { + return nullExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getObjectiveMembership() { + return objectiveMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getObjectiveMembership_OwnedObjectiveRequirement() { + return (EReference)objectiveMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getOccurrenceDefinition() { + return occurrenceDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getOccurrenceDefinition_IsIndividual() { + return (EAttribute)occurrenceDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getOccurrenceUsage() { + return occurrenceUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getOccurrenceUsage_IsIndividual() { + return (EAttribute)occurrenceUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getOccurrenceUsage_PortionKind() { + return (EAttribute)occurrenceUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getOccurrenceUsage_IndividualDefinition() { + return (EReference)occurrenceUsageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getOccurrenceUsage_OccurrenceDefinition() { + return (EReference)occurrenceUsageEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getOperatorExpression() { + return operatorExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getOperatorExpression_Operator() { + return (EAttribute)operatorExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getOwningMembership() { + return owningMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getOwningMembership_OwnedMemberElementId() { + return (EAttribute)owningMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getOwningMembership_OwnedMemberName() { + return (EAttribute)owningMembershipEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getOwningMembership_OwnedMemberShortName() { + return (EAttribute)owningMembershipEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getOwningMembership_OwnedMemberElement() { + return (EReference)owningMembershipEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPackage() { + return packageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPackage_FilterCondition() { + return (EReference)packageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getPackage__IncludeAsMember__Element() { + return packageEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getParameterMembership() { + return parameterMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getParameterMembership_OwnedMemberParameter() { + return (EReference)parameterMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getParameterMembership__ParameterDirection() { + return parameterMembershipEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPartDefinition() { + return partDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getPartUsage() { + return partUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPartUsage_PartDefinition() { + return (EReference)partUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPayloadFeature() { + return payloadFeatureEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getPerformActionUsage() { + return performActionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPerformActionUsage_PerformedAction() { + return (EReference)performActionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPortConjugation() { + return portConjugationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPortConjugation_ConjugatedPortDefinition() { + return (EReference)portConjugationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getPortConjugation_OriginalPortDefinition() { + return (EReference)portConjugationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPortDefinition() { + return portDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPortDefinition_ConjugatedPortDefinition() { + return (EReference)portDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPortUsage() { + return portUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getPortUsage_PortDefinition() { + return (EReference)portUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getPredicate() { + return predicateEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getRedefinition() { + return redefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getRedefinition_RedefinedFeature() { + return (EReference)redefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRedefinition_RedefiningFeature() { + return (EReference)redefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getReferenceSubsetting() { + return referenceSubsettingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getReferenceSubsetting_ReferencedFeature() { + return (EReference)referenceSubsettingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getReferenceSubsetting_ReferencingFeature() { + return (EReference)referenceSubsettingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getReferenceUsage() { + return referenceUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getRelationship() { + return relationshipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getRelationship_IsImplied() { + return (EAttribute)relationshipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRelationship_OwnedRelatedElement() { + return (EReference)relationshipEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRelationship_OwningRelatedElement() { + return (EReference)relationshipEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRelationship_RelatedElement() { + return (EReference)relationshipEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRelationship_Source() { + return (EReference)relationshipEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRelationship_Target() { + return (EReference)relationshipEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EClass getRenderingDefinition() { + return renderingDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getRenderingDefinition_Rendering() { + return (EReference)renderingDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getRenderingUsage() { + return renderingUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getRenderingUsage_RenderingDefinition() { + return (EReference)renderingUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getRequirementConstraintMembership() { + return requirementConstraintMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getRequirementConstraintMembership_Kind() { + return (EAttribute)requirementConstraintMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementConstraintMembership_OwnedConstraint() { + return (EReference)requirementConstraintMembershipEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementConstraintMembership_ReferencedConstraint() { + return (EReference)requirementConstraintMembershipEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getRequirementDefinition() { + return requirementDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getRequirementDefinition_ReqId() { + return (EAttribute)requirementDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getRequirementDefinition_Text() { + return (EAttribute)requirementDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementDefinition_ActorParameter() { + return (EReference)requirementDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementDefinition_AssumedConstraint() { + return (EReference)requirementDefinitionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementDefinition_FramedConcern() { + return (EReference)requirementDefinitionEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementDefinition_RequiredConstraint() { + return (EReference)requirementDefinitionEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementDefinition_StakeholderParameter() { + return (EReference)requirementDefinitionEClass.getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementDefinition_SubjectParameter() { + return (EReference)requirementDefinitionEClass.getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + @Override + public EClass getRequirementUsage() { + return requirementUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getRequirementUsage_ReqId() { + return (EAttribute)requirementUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getRequirementUsage_Text() { + return (EAttribute)requirementUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementUsage_ActorParameter() { + return (EReference)requirementUsageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementUsage_AssumedConstraint() { + return (EReference)requirementUsageEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementUsage_FramedConcern() { + return (EReference)requirementUsageEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementUsage_RequiredConstraint() { + return (EReference)requirementUsageEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementUsage_RequirementDefinition() { + return (EReference)requirementUsageEClass.getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementUsage_StakeholderParameter() { + return (EReference)requirementUsageEClass.getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementUsage_SubjectParameter() { + return (EReference)requirementUsageEClass.getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + @Override + public EClass getRequirementVerificationMembership() { + return requirementVerificationMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementVerificationMembership_OwnedRequirement() { + return (EReference)requirementVerificationMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getRequirementVerificationMembership_VerifiedRequirement() { + return (EReference)requirementVerificationMembershipEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getResultExpressionMembership() { + return resultExpressionMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getResultExpressionMembership_OwnedResultExpression() { + return (EReference)resultExpressionMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getReturnParameterMembership() { + return returnParameterMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getSatisfyRequirementUsage() { + return satisfyRequirementUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getSatisfyRequirementUsage_SatisfiedRequirement() { + return (EReference)satisfyRequirementUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getSatisfyRequirementUsage_SatisfyingFeature() { + return (EReference)satisfyRequirementUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getSelectExpression() { + return selectExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getSendActionUsage() { + return sendActionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getSendActionUsage_PayloadArgument() { + return (EReference)sendActionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getSendActionUsage_ReceiverArgument() { + return (EReference)sendActionUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getSendActionUsage_SenderArgument() { + return (EReference)sendActionUsageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getSpecialization() { + return specializationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getSpecialization_General() { + return (EReference)specializationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getSpecialization_OwningType() { + return (EReference)specializationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getSpecialization_Specific() { + return (EReference)specializationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getStakeholderMembership() { + return stakeholderMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getStakeholderMembership_OwnedStakeholderParameter() { + return (EReference)stakeholderMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getStateDefinition() { + return stateDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getStateDefinition_IsParallel() { + return (EAttribute)stateDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStateDefinition_DoAction() { + return (EReference)stateDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStateDefinition_EntryAction() { + return (EReference)stateDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStateDefinition_ExitAction() { + return (EReference)stateDefinitionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStateDefinition_State() { + return (EReference)stateDefinitionEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EClass getStateSubactionMembership() { + return stateSubactionMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getStateSubactionMembership_Kind() { + return (EAttribute)stateSubactionMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStateSubactionMembership_Action() { + return (EReference)stateSubactionMembershipEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getStateUsage() { + return stateUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getStateUsage_IsParallel() { + return (EAttribute)stateUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStateUsage_DoAction() { + return (EReference)stateUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStateUsage_EntryAction() { + return (EReference)stateUsageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStateUsage_ExitAction() { + return (EReference)stateUsageEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStateUsage_StateDefinition() { + return (EReference)stateUsageEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getStateUsage__IsSubstateUsage__boolean() { + return stateUsageEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getStep() { + return stepEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getStep_Behavior() { + return (EReference)stepEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getStep_Parameter() { + return (EReference)stepEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getStructure() { + return structureEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getSubclassification() { + return subclassificationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getSubclassification_OwningClassifier() { + return (EReference)subclassificationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getSubclassification_Subclassifier() { + return (EReference)subclassificationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getSubclassification_Superclassifier() { + return (EReference)subclassificationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getSubjectMembership() { + return subjectMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getSubjectMembership_OwnedSubjectParameter() { + return (EReference)subjectMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getSubsetting() { + return subsettingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getSubsetting_OwningFeature() { + return (EReference)subsettingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getSubsetting_SubsettedFeature() { + return (EReference)subsettingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getSubsetting_SubsettingFeature() { + return (EReference)subsettingEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getSuccession() { + return successionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getSuccessionAsUsage() { + return successionAsUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getSuccessionFlow() { + return successionFlowEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getSuccessionFlowUsage() { + return successionFlowUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EClass getTerminateActionUsage() { + return terminateActionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTerminateActionUsage_TerminatedOccurrenceArgument() { + return (EReference)terminateActionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTextualRepresentation() { + return textualRepresentationEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getTextualRepresentation_Body() { + return (EAttribute)textualRepresentationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getTextualRepresentation_Language() { + return (EAttribute)textualRepresentationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTextualRepresentation_RepresentedElement() { + return (EReference)textualRepresentationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTransitionFeatureMembership() { + return transitionFeatureMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getTransitionFeatureMembership_Kind() { + return (EAttribute)transitionFeatureMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTransitionFeatureMembership_TransitionFeature() { + return (EReference)transitionFeatureMembershipEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTransitionUsage() { + return transitionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTransitionUsage_EffectAction() { + return (EReference)transitionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTransitionUsage_GuardExpression() { + return (EReference)transitionUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTransitionUsage_Source() { + return (EReference)transitionUsageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTransitionUsage_Succession() { + return (EReference)transitionUsageEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTransitionUsage_Target() { + return (EReference)transitionUsageEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTransitionUsage_TriggerAction() { + return (EReference)transitionUsageEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getTransitionUsage__SourceFeature() { + return transitionUsageEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getTransitionUsage__TriggerPayloadParameter() { + return transitionUsageEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTriggerInvocationExpression() { + return triggerInvocationExpressionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getTriggerInvocationExpression_Kind() { + return (EAttribute)triggerInvocationExpressionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getType() { + return typeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getType_IsAbstract() { + return (EAttribute)typeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getType_IsConjugated() { + return (EAttribute)typeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getType_IsSufficient() { + return (EAttribute)typeEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_DifferencingType() { + return (EReference)typeEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_DirectedFeature() { + return (EReference)typeEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_EndFeature() { + return (EReference)typeEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_Feature() { + return (EReference)typeEClass.getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_FeatureMembership() { + return (EReference)typeEClass.getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_InheritedFeature() { + return (EReference)typeEClass.getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_InheritedMembership() { + return (EReference)typeEClass.getEStructuralFeatures().get(9); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_Input() { + return (EReference)typeEClass.getEStructuralFeatures().get(10); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_IntersectingType() { + return (EReference)typeEClass.getEStructuralFeatures().get(11); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_Multiplicity() { + return (EReference)typeEClass.getEStructuralFeatures().get(12); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_Output() { + return (EReference)typeEClass.getEStructuralFeatures().get(13); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_OwnedConjugator() { + return (EReference)typeEClass.getEStructuralFeatures().get(14); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_OwnedDifferencing() { + return (EReference)typeEClass.getEStructuralFeatures().get(15); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_OwnedDisjoining() { + return (EReference)typeEClass.getEStructuralFeatures().get(16); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_OwnedEndFeature() { + return (EReference)typeEClass.getEStructuralFeatures().get(17); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_OwnedFeature() { + return (EReference)typeEClass.getEStructuralFeatures().get(18); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_OwnedFeatureMembership() { + return (EReference)typeEClass.getEStructuralFeatures().get(19); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_OwnedIntersecting() { + return (EReference)typeEClass.getEStructuralFeatures().get(20); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_OwnedSpecialization() { + return (EReference)typeEClass.getEStructuralFeatures().get(21); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_OwnedUnioning() { + return (EReference)typeEClass.getEStructuralFeatures().get(22); + } + + /** + * + * + * @generated + */ + @Override + public EReference getType_UnioningType() { + return (EReference)typeEClass.getEStructuralFeatures().get(23); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__AllRedefinedFeaturesOf__Membership() { + return typeEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__AllSupertypes() { + return typeEClass.getEOperations().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__DirectionOf__Feature() { + return typeEClass.getEOperations().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__DirectionOfExcluding__Feature_EList() { + return typeEClass.getEOperations().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__InheritableMemberships__EList_EList_boolean() { + return typeEClass.getEOperations().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__InheritedMemberships__EList_EList_boolean() { + return typeEClass.getEOperations().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__IsCompatibleWith__Type() { + return typeEClass.getEOperations().get(6); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__Multiplicities() { + return typeEClass.getEOperations().get(7); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__NonPrivateMemberships__EList_EList_boolean() { + return typeEClass.getEOperations().get(8); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__RemoveRedefinedFeatures__EList() { + return typeEClass.getEOperations().get(9); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__Specializes__Type() { + return typeEClass.getEOperations().get(10); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__SpecializesFromLibrary__String() { + return typeEClass.getEOperations().get(11); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getType__Supertypes__boolean() { + return typeEClass.getEOperations().get(12); + } + + /** + * + * + * @generated + */ + @Override + public EClass getTypeFeaturing() { + return typeFeaturingEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getTypeFeaturing_FeatureOfType() { + return (EReference)typeFeaturingEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTypeFeaturing_FeaturingType() { + return (EReference)typeFeaturingEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getTypeFeaturing_OwningFeatureOfType() { + return (EReference)typeFeaturingEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EClass getUnioning() { + return unioningEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getUnioning_TypeUnioned() { + return (EReference)unioningEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUnioning_UnioningType() { + return (EReference)unioningEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getUsage() { + return usageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getUsage_IsReference() { + return (EAttribute)usageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getUsage_IsVariation() { + return (EAttribute)usageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getUsage_MayTimeVary() { + return (EAttribute)usageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_Definition() { + return (EReference)usageEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_DirectedUsage() { + return (EReference)usageEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedAction() { + return (EReference)usageEClass.getEStructuralFeatures().get(5); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedAllocation() { + return (EReference)usageEClass.getEStructuralFeatures().get(6); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedAnalysisCase() { + return (EReference)usageEClass.getEStructuralFeatures().get(7); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedAttribute() { + return (EReference)usageEClass.getEStructuralFeatures().get(8); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedCalculation() { + return (EReference)usageEClass.getEStructuralFeatures().get(9); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedCase() { + return (EReference)usageEClass.getEStructuralFeatures().get(10); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedConcern() { + return (EReference)usageEClass.getEStructuralFeatures().get(11); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedConnection() { + return (EReference)usageEClass.getEStructuralFeatures().get(12); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedConstraint() { + return (EReference)usageEClass.getEStructuralFeatures().get(13); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedEnumeration() { + return (EReference)usageEClass.getEStructuralFeatures().get(14); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedFlow() { + return (EReference)usageEClass.getEStructuralFeatures().get(15); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedInterface() { + return (EReference)usageEClass.getEStructuralFeatures().get(16); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedItem() { + return (EReference)usageEClass.getEStructuralFeatures().get(17); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedMetadata() { + return (EReference)usageEClass.getEStructuralFeatures().get(18); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedOccurrence() { + return (EReference)usageEClass.getEStructuralFeatures().get(19); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedPart() { + return (EReference)usageEClass.getEStructuralFeatures().get(20); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedPort() { + return (EReference)usageEClass.getEStructuralFeatures().get(21); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedReference() { + return (EReference)usageEClass.getEStructuralFeatures().get(22); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedRendering() { + return (EReference)usageEClass.getEStructuralFeatures().get(23); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedRequirement() { + return (EReference)usageEClass.getEStructuralFeatures().get(24); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedState() { + return (EReference)usageEClass.getEStructuralFeatures().get(25); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedTransition() { + return (EReference)usageEClass.getEStructuralFeatures().get(26); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedUsage() { + return (EReference)usageEClass.getEStructuralFeatures().get(27); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedUseCase() { + return (EReference)usageEClass.getEStructuralFeatures().get(28); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedVerificationCase() { + return (EReference)usageEClass.getEStructuralFeatures().get(29); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedView() { + return (EReference)usageEClass.getEStructuralFeatures().get(30); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_NestedViewpoint() { + return (EReference)usageEClass.getEStructuralFeatures().get(31); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_OwningDefinition() { + return (EReference)usageEClass.getEStructuralFeatures().get(32); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_OwningUsage() { + return (EReference)usageEClass.getEStructuralFeatures().get(33); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_Usage() { + return (EReference)usageEClass.getEStructuralFeatures().get(34); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_Variant() { + return (EReference)usageEClass.getEStructuralFeatures().get(35); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUsage_VariantMembership() { + return (EReference)usageEClass.getEStructuralFeatures().get(36); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getUsage__ReferencedFeatureTarget() { + return usageEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getUseCaseDefinition() { + return useCaseDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getUseCaseDefinition_IncludedUseCase() { + return (EReference)useCaseDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getUseCaseUsage() { + return useCaseUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getUseCaseUsage_IncludedUseCase() { + return (EReference)useCaseUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getUseCaseUsage_UseCaseDefinition() { + return (EReference)useCaseUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getVariantMembership() { + return variantMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getVariantMembership_OwnedVariantUsage() { + return (EReference)variantMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getVerificationCaseDefinition() { + return verificationCaseDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getVerificationCaseDefinition_VerifiedRequirement() { + return (EReference)verificationCaseDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getVerificationCaseUsage() { + return verificationCaseUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getVerificationCaseUsage_VerificationCaseDefinition() { + return (EReference)verificationCaseUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getVerificationCaseUsage_VerifiedRequirement() { + return (EReference)verificationCaseUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getViewDefinition() { + return viewDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewDefinition_SatisfiedViewpoint() { + return (EReference)viewDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewDefinition_View() { + return (EReference)viewDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewDefinition_ViewCondition() { + return (EReference)viewDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewDefinition_ViewRendering() { + return (EReference)viewDefinitionEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EClass getViewpointDefinition() { + return viewpointDefinitionEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewpointDefinition_ViewpointStakeholder() { + return (EReference)viewpointDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getViewpointUsage() { + return viewpointUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewpointUsage_ViewpointDefinition() { + return (EReference)viewpointUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewpointUsage_ViewpointStakeholder() { + return (EReference)viewpointUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getViewRenderingMembership() { + return viewRenderingMembershipEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewRenderingMembership_OwnedRendering() { + return (EReference)viewRenderingMembershipEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewRenderingMembership_ReferencedRendering() { + return (EReference)viewRenderingMembershipEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EClass getViewUsage() { + return viewUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewUsage_ExposedElement() { + return (EReference)viewUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewUsage_SatisfiedViewpoint() { + return (EReference)viewUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewUsage_ViewCondition() { + return (EReference)viewUsageEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewUsage_ViewDefinition() { + return (EReference)viewUsageEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public EReference getViewUsage_ViewRendering() { + return (EReference)viewUsageEClass.getEStructuralFeatures().get(4); + } + + /** + * + * + * @generated + */ + @Override + public EOperation getViewUsage__IncludeAsExposed__Element() { + return viewUsageEClass.getEOperations().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getWhileLoopActionUsage() { + return whileLoopActionUsageEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getWhileLoopActionUsage_UntilArgument() { + return (EReference)whileLoopActionUsageEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EReference getWhileLoopActionUsage_WhileArgument() { + return (EReference)whileLoopActionUsageEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EEnum getFeatureDirectionKind() { + return featureDirectionKindEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getPortionKind() { + return portionKindEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getRequirementConstraintKind() { + return requirementConstraintKindEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getStateSubactionKind() { + return stateSubactionKindEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getTransitionFeatureKind() { + return transitionFeatureKindEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getTriggerKind() { + return triggerKindEEnum; + } + + /** + * + * + * @generated + */ + @Override + public EEnum getVisibilityKind() { + return visibilityKindEEnum; + } + + /** + * + * + * @generated + */ + @Override + public SysMLFactory getSysMLFactory() { + return (SysMLFactory)getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + acceptActionUsageEClass = createEClass(ACCEPT_ACTION_USAGE); + createEReference(acceptActionUsageEClass, ACCEPT_ACTION_USAGE__PAYLOAD_ARGUMENT); + createEReference(acceptActionUsageEClass, ACCEPT_ACTION_USAGE__PAYLOAD_PARAMETER); + createEReference(acceptActionUsageEClass, ACCEPT_ACTION_USAGE__RECEIVER_ARGUMENT); + createEOperation(acceptActionUsageEClass, ACCEPT_ACTION_USAGE___IS_TRIGGER_ACTION); + + actionDefinitionEClass = createEClass(ACTION_DEFINITION); + createEReference(actionDefinitionEClass, ACTION_DEFINITION__ACTION); + + actionUsageEClass = createEClass(ACTION_USAGE); + createEReference(actionUsageEClass, ACTION_USAGE__ACTION_DEFINITION); + createEOperation(actionUsageEClass, ACTION_USAGE___ARGUMENT__INT); + createEOperation(actionUsageEClass, ACTION_USAGE___INPUT_PARAMETER__INT); + createEOperation(actionUsageEClass, ACTION_USAGE___INPUT_PARAMETERS); + createEOperation(actionUsageEClass, ACTION_USAGE___IS_SUBACTION_USAGE); + + actorMembershipEClass = createEClass(ACTOR_MEMBERSHIP); + createEReference(actorMembershipEClass, ACTOR_MEMBERSHIP__OWNED_ACTOR_PARAMETER); + + allocationDefinitionEClass = createEClass(ALLOCATION_DEFINITION); + createEReference(allocationDefinitionEClass, ALLOCATION_DEFINITION__ALLOCATION); + + allocationUsageEClass = createEClass(ALLOCATION_USAGE); + createEReference(allocationUsageEClass, ALLOCATION_USAGE__ALLOCATION_DEFINITION); + + analysisCaseDefinitionEClass = createEClass(ANALYSIS_CASE_DEFINITION); + createEReference(analysisCaseDefinitionEClass, ANALYSIS_CASE_DEFINITION__RESULT_EXPRESSION); + + analysisCaseUsageEClass = createEClass(ANALYSIS_CASE_USAGE); + createEReference(analysisCaseUsageEClass, ANALYSIS_CASE_USAGE__ANALYSIS_CASE_DEFINITION); + createEReference(analysisCaseUsageEClass, ANALYSIS_CASE_USAGE__RESULT_EXPRESSION); + + annotatingElementEClass = createEClass(ANNOTATING_ELEMENT); + createEReference(annotatingElementEClass, ANNOTATING_ELEMENT__ANNOTATED_ELEMENT); + createEReference(annotatingElementEClass, ANNOTATING_ELEMENT__ANNOTATION); + createEReference(annotatingElementEClass, ANNOTATING_ELEMENT__OWNED_ANNOTATING_RELATIONSHIP); + createEReference(annotatingElementEClass, ANNOTATING_ELEMENT__OWNING_ANNOTATING_RELATIONSHIP); + + annotationEClass = createEClass(ANNOTATION); + createEReference(annotationEClass, ANNOTATION__ANNOTATED_ELEMENT); + createEReference(annotationEClass, ANNOTATION__ANNOTATING_ELEMENT); + createEReference(annotationEClass, ANNOTATION__OWNED_ANNOTATING_ELEMENT); + createEReference(annotationEClass, ANNOTATION__OWNING_ANNOTATED_ELEMENT); + createEReference(annotationEClass, ANNOTATION__OWNING_ANNOTATING_ELEMENT); + + assertConstraintUsageEClass = createEClass(ASSERT_CONSTRAINT_USAGE); + createEReference(assertConstraintUsageEClass, ASSERT_CONSTRAINT_USAGE__ASSERTED_CONSTRAINT); + + assignmentActionUsageEClass = createEClass(ASSIGNMENT_ACTION_USAGE); + createEReference(assignmentActionUsageEClass, ASSIGNMENT_ACTION_USAGE__REFERENT); + createEReference(assignmentActionUsageEClass, ASSIGNMENT_ACTION_USAGE__TARGET_ARGUMENT); + createEReference(assignmentActionUsageEClass, ASSIGNMENT_ACTION_USAGE__VALUE_EXPRESSION); + + associationEClass = createEClass(ASSOCIATION); + createEReference(associationEClass, ASSOCIATION__ASSOCIATION_END); + createEReference(associationEClass, ASSOCIATION__RELATED_TYPE); + createEReference(associationEClass, ASSOCIATION__SOURCE_TYPE); + createEReference(associationEClass, ASSOCIATION__TARGET_TYPE); + + associationStructureEClass = createEClass(ASSOCIATION_STRUCTURE); + + attributeDefinitionEClass = createEClass(ATTRIBUTE_DEFINITION); + + attributeUsageEClass = createEClass(ATTRIBUTE_USAGE); + createEReference(attributeUsageEClass, ATTRIBUTE_USAGE__ATTRIBUTE_DEFINITION); + + behaviorEClass = createEClass(BEHAVIOR); + createEReference(behaviorEClass, BEHAVIOR__PARAMETER); + createEReference(behaviorEClass, BEHAVIOR__STEP); + + bindingConnectorEClass = createEClass(BINDING_CONNECTOR); + + bindingConnectorAsUsageEClass = createEClass(BINDING_CONNECTOR_AS_USAGE); + + booleanExpressionEClass = createEClass(BOOLEAN_EXPRESSION); + createEReference(booleanExpressionEClass, BOOLEAN_EXPRESSION__PREDICATE); + + calculationDefinitionEClass = createEClass(CALCULATION_DEFINITION); + createEReference(calculationDefinitionEClass, CALCULATION_DEFINITION__CALCULATION); + + calculationUsageEClass = createEClass(CALCULATION_USAGE); + createEReference(calculationUsageEClass, CALCULATION_USAGE__CALCULATION_DEFINITION); + + caseDefinitionEClass = createEClass(CASE_DEFINITION); + createEReference(caseDefinitionEClass, CASE_DEFINITION__ACTOR_PARAMETER); + createEReference(caseDefinitionEClass, CASE_DEFINITION__OBJECTIVE_REQUIREMENT); + createEReference(caseDefinitionEClass, CASE_DEFINITION__SUBJECT_PARAMETER); + + caseUsageEClass = createEClass(CASE_USAGE); + createEReference(caseUsageEClass, CASE_USAGE__ACTOR_PARAMETER); + createEReference(caseUsageEClass, CASE_USAGE__CASE_DEFINITION); + createEReference(caseUsageEClass, CASE_USAGE__OBJECTIVE_REQUIREMENT); + createEReference(caseUsageEClass, CASE_USAGE__SUBJECT_PARAMETER); + + classEClass = createEClass(CLASS); + + classifierEClass = createEClass(CLASSIFIER); + createEReference(classifierEClass, CLASSIFIER__OWNED_SUBCLASSIFICATION); + + collectExpressionEClass = createEClass(COLLECT_EXPRESSION); + + commentEClass = createEClass(COMMENT); + createEAttribute(commentEClass, COMMENT__BODY); + createEAttribute(commentEClass, COMMENT__LOCALE); + + concernDefinitionEClass = createEClass(CONCERN_DEFINITION); + + concernUsageEClass = createEClass(CONCERN_USAGE); + createEReference(concernUsageEClass, CONCERN_USAGE__CONCERN_DEFINITION); + + conjugatedPortDefinitionEClass = createEClass(CONJUGATED_PORT_DEFINITION); + createEReference(conjugatedPortDefinitionEClass, CONJUGATED_PORT_DEFINITION__ORIGINAL_PORT_DEFINITION); + createEReference(conjugatedPortDefinitionEClass, CONJUGATED_PORT_DEFINITION__OWNED_PORT_CONJUGATOR); + + conjugatedPortTypingEClass = createEClass(CONJUGATED_PORT_TYPING); + createEReference(conjugatedPortTypingEClass, CONJUGATED_PORT_TYPING__CONJUGATED_PORT_DEFINITION); + createEReference(conjugatedPortTypingEClass, CONJUGATED_PORT_TYPING__PORT_DEFINITION); + + conjugationEClass = createEClass(CONJUGATION); + createEReference(conjugationEClass, CONJUGATION__CONJUGATED_TYPE); + createEReference(conjugationEClass, CONJUGATION__ORIGINAL_TYPE); + createEReference(conjugationEClass, CONJUGATION__OWNING_TYPE); + + connectionDefinitionEClass = createEClass(CONNECTION_DEFINITION); + createEReference(connectionDefinitionEClass, CONNECTION_DEFINITION__CONNECTION_END); + + connectionUsageEClass = createEClass(CONNECTION_USAGE); + createEReference(connectionUsageEClass, CONNECTION_USAGE__CONNECTION_DEFINITION); + + connectorEClass = createEClass(CONNECTOR); + createEReference(connectorEClass, CONNECTOR__ASSOCIATION); + createEReference(connectorEClass, CONNECTOR__CONNECTOR_END); + createEReference(connectorEClass, CONNECTOR__DEFAULT_FEATURING_TYPE); + createEReference(connectorEClass, CONNECTOR__RELATED_FEATURE); + createEReference(connectorEClass, CONNECTOR__SOURCE_FEATURE); + createEReference(connectorEClass, CONNECTOR__TARGET_FEATURE); + + connectorAsUsageEClass = createEClass(CONNECTOR_AS_USAGE); + + constraintDefinitionEClass = createEClass(CONSTRAINT_DEFINITION); + + constraintUsageEClass = createEClass(CONSTRAINT_USAGE); + createEReference(constraintUsageEClass, CONSTRAINT_USAGE__CONSTRAINT_DEFINITION); + + constructorExpressionEClass = createEClass(CONSTRUCTOR_EXPRESSION); + + controlNodeEClass = createEClass(CONTROL_NODE); + createEOperation(controlNodeEClass, CONTROL_NODE___MULTIPLICITY_HAS_BOUNDS__MULTIPLICITY_INT_INT); + + crossSubsettingEClass = createEClass(CROSS_SUBSETTING); + createEReference(crossSubsettingEClass, CROSS_SUBSETTING__CROSSED_FEATURE); + createEReference(crossSubsettingEClass, CROSS_SUBSETTING__CROSSING_FEATURE); + + dataTypeEClass = createEClass(DATA_TYPE); + + decisionNodeEClass = createEClass(DECISION_NODE); + + definitionEClass = createEClass(DEFINITION); + createEAttribute(definitionEClass, DEFINITION__IS_VARIATION); + createEReference(definitionEClass, DEFINITION__DIRECTED_USAGE); + createEReference(definitionEClass, DEFINITION__OWNED_ACTION); + createEReference(definitionEClass, DEFINITION__OWNED_ALLOCATION); + createEReference(definitionEClass, DEFINITION__OWNED_ANALYSIS_CASE); + createEReference(definitionEClass, DEFINITION__OWNED_ATTRIBUTE); + createEReference(definitionEClass, DEFINITION__OWNED_CALCULATION); + createEReference(definitionEClass, DEFINITION__OWNED_CASE); + createEReference(definitionEClass, DEFINITION__OWNED_CONCERN); + createEReference(definitionEClass, DEFINITION__OWNED_CONNECTION); + createEReference(definitionEClass, DEFINITION__OWNED_CONSTRAINT); + createEReference(definitionEClass, DEFINITION__OWNED_ENUMERATION); + createEReference(definitionEClass, DEFINITION__OWNED_FLOW); + createEReference(definitionEClass, DEFINITION__OWNED_INTERFACE); + createEReference(definitionEClass, DEFINITION__OWNED_ITEM); + createEReference(definitionEClass, DEFINITION__OWNED_METADATA); + createEReference(definitionEClass, DEFINITION__OWNED_OCCURRENCE); + createEReference(definitionEClass, DEFINITION__OWNED_PART); + createEReference(definitionEClass, DEFINITION__OWNED_PORT); + createEReference(definitionEClass, DEFINITION__OWNED_REFERENCE); + createEReference(definitionEClass, DEFINITION__OWNED_RENDERING); + createEReference(definitionEClass, DEFINITION__OWNED_REQUIREMENT); + createEReference(definitionEClass, DEFINITION__OWNED_STATE); + createEReference(definitionEClass, DEFINITION__OWNED_TRANSITION); + createEReference(definitionEClass, DEFINITION__OWNED_USAGE); + createEReference(definitionEClass, DEFINITION__OWNED_USE_CASE); + createEReference(definitionEClass, DEFINITION__OWNED_VERIFICATION_CASE); + createEReference(definitionEClass, DEFINITION__OWNED_VIEW); + createEReference(definitionEClass, DEFINITION__OWNED_VIEWPOINT); + createEReference(definitionEClass, DEFINITION__USAGE); + createEReference(definitionEClass, DEFINITION__VARIANT); + createEReference(definitionEClass, DEFINITION__VARIANT_MEMBERSHIP); + + dependencyEClass = createEClass(DEPENDENCY); + createEReference(dependencyEClass, DEPENDENCY__CLIENT); + createEReference(dependencyEClass, DEPENDENCY__SUPPLIER); + + differencingEClass = createEClass(DIFFERENCING); + createEReference(differencingEClass, DIFFERENCING__DIFFERENCING_TYPE); + createEReference(differencingEClass, DIFFERENCING__TYPE_DIFFERENCED); + + disjoiningEClass = createEClass(DISJOINING); + createEReference(disjoiningEClass, DISJOINING__DISJOINING_TYPE); + createEReference(disjoiningEClass, DISJOINING__OWNING_TYPE); + createEReference(disjoiningEClass, DISJOINING__TYPE_DISJOINED); + + documentationEClass = createEClass(DOCUMENTATION); + createEReference(documentationEClass, DOCUMENTATION__DOCUMENTED_ELEMENT); + + elementEClass = createEClass(ELEMENT); + createEAttribute(elementEClass, ELEMENT__ALIAS_IDS); + createEAttribute(elementEClass, ELEMENT__DECLARED_NAME); + createEAttribute(elementEClass, ELEMENT__DECLARED_SHORT_NAME); + createEAttribute(elementEClass, ELEMENT__ELEMENT_ID); + createEAttribute(elementEClass, ELEMENT__IS_IMPLIED_INCLUDED); + createEAttribute(elementEClass, ELEMENT__IS_LIBRARY_ELEMENT); + createEAttribute(elementEClass, ELEMENT__NAME); + createEAttribute(elementEClass, ELEMENT__QUALIFIED_NAME); + createEAttribute(elementEClass, ELEMENT__SHORT_NAME); + createEReference(elementEClass, ELEMENT__DOCUMENTATION); + createEReference(elementEClass, ELEMENT__OWNED_ANNOTATION); + createEReference(elementEClass, ELEMENT__OWNED_ELEMENT); + createEReference(elementEClass, ELEMENT__OWNED_RELATIONSHIP); + createEReference(elementEClass, ELEMENT__OWNER); + createEReference(elementEClass, ELEMENT__OWNING_MEMBERSHIP); + createEReference(elementEClass, ELEMENT__OWNING_NAMESPACE); + createEReference(elementEClass, ELEMENT__OWNING_RELATIONSHIP); + createEReference(elementEClass, ELEMENT__TEXTUAL_REPRESENTATION); + createEOperation(elementEClass, ELEMENT___EFFECTIVE_NAME); + createEOperation(elementEClass, ELEMENT___EFFECTIVE_SHORT_NAME); + createEOperation(elementEClass, ELEMENT___ESCAPED_NAME); + createEOperation(elementEClass, ELEMENT___LIBRARY_NAMESPACE); + createEOperation(elementEClass, ELEMENT___PATH); + + elementFilterMembershipEClass = createEClass(ELEMENT_FILTER_MEMBERSHIP); + createEReference(elementFilterMembershipEClass, ELEMENT_FILTER_MEMBERSHIP__CONDITION); + + endFeatureMembershipEClass = createEClass(END_FEATURE_MEMBERSHIP); + + enumerationDefinitionEClass = createEClass(ENUMERATION_DEFINITION); + createEReference(enumerationDefinitionEClass, ENUMERATION_DEFINITION__ENUMERATED_VALUE); + + enumerationUsageEClass = createEClass(ENUMERATION_USAGE); + createEReference(enumerationUsageEClass, ENUMERATION_USAGE__ENUMERATION_DEFINITION); + + eventOccurrenceUsageEClass = createEClass(EVENT_OCCURRENCE_USAGE); + createEReference(eventOccurrenceUsageEClass, EVENT_OCCURRENCE_USAGE__EVENT_OCCURRENCE); + + exhibitStateUsageEClass = createEClass(EXHIBIT_STATE_USAGE); + createEReference(exhibitStateUsageEClass, EXHIBIT_STATE_USAGE__EXHIBITED_STATE); + + exposeEClass = createEClass(EXPOSE); + + expressionEClass = createEClass(EXPRESSION); + createEAttribute(expressionEClass, EXPRESSION__IS_MODEL_LEVEL_EVALUABLE); + createEReference(expressionEClass, EXPRESSION__FUNCTION); + createEReference(expressionEClass, EXPRESSION__RESULT); + createEOperation(expressionEClass, EXPRESSION___CHECK_CONDITION__ELEMENT); + createEOperation(expressionEClass, EXPRESSION___EVALUATE__ELEMENT); + createEOperation(expressionEClass, EXPRESSION___MODEL_LEVEL_EVALUABLE__ELIST); + + featureEClass = createEClass(FEATURE); + createEAttribute(featureEClass, FEATURE__DIRECTION); + createEAttribute(featureEClass, FEATURE__IS_COMPOSITE); + createEAttribute(featureEClass, FEATURE__IS_CONSTANT); + createEAttribute(featureEClass, FEATURE__IS_DERIVED); + createEAttribute(featureEClass, FEATURE__IS_END); + createEAttribute(featureEClass, FEATURE__IS_NONUNIQUE); + createEAttribute(featureEClass, FEATURE__IS_ORDERED); + createEAttribute(featureEClass, FEATURE__IS_PORTION); + createEAttribute(featureEClass, FEATURE__IS_UNIQUE); + createEAttribute(featureEClass, FEATURE__IS_VARIABLE); + createEReference(featureEClass, FEATURE__CHAINING_FEATURE); + createEReference(featureEClass, FEATURE__CROSS_FEATURE); + createEReference(featureEClass, FEATURE__END_OWNING_TYPE); + createEReference(featureEClass, FEATURE__FEATURE_TARGET); + createEReference(featureEClass, FEATURE__FEATURING_TYPE); + createEReference(featureEClass, FEATURE__OWNED_CROSS_SUBSETTING); + createEReference(featureEClass, FEATURE__OWNED_FEATURE_CHAINING); + createEReference(featureEClass, FEATURE__OWNED_FEATURE_INVERTING); + createEReference(featureEClass, FEATURE__OWNED_REDEFINITION); + createEReference(featureEClass, FEATURE__OWNED_REFERENCE_SUBSETTING); + createEReference(featureEClass, FEATURE__OWNED_SUBSETTING); + createEReference(featureEClass, FEATURE__OWNED_TYPE_FEATURING); + createEReference(featureEClass, FEATURE__OWNED_TYPING); + createEReference(featureEClass, FEATURE__OWNING_FEATURE_MEMBERSHIP); + createEReference(featureEClass, FEATURE__OWNING_TYPE); + createEReference(featureEClass, FEATURE__TYPE); + createEOperation(featureEClass, FEATURE___ALL_REDEFINED_FEATURES); + createEOperation(featureEClass, FEATURE___AS_CARTESIAN_PRODUCT); + createEOperation(featureEClass, FEATURE___CAN_ACCESS__FEATURE); + createEOperation(featureEClass, FEATURE___DIRECTION_FOR__TYPE); + createEOperation(featureEClass, FEATURE___IS_CARTESIAN_PRODUCT); + createEOperation(featureEClass, FEATURE___IS_FEATURED_WITHIN__TYPE); + createEOperation(featureEClass, FEATURE___IS_FEATURING_TYPE__TYPE); + createEOperation(featureEClass, FEATURE___IS_OWNED_CROSS_FEATURE); + createEOperation(featureEClass, FEATURE___NAMING_FEATURE); + createEOperation(featureEClass, FEATURE___OWNED_CROSS_FEATURE); + createEOperation(featureEClass, FEATURE___REDEFINES__FEATURE); + createEOperation(featureEClass, FEATURE___REDEFINES_FROM_LIBRARY__STRING); + createEOperation(featureEClass, FEATURE___SUBSETS_CHAIN__FEATURE_FEATURE); + createEOperation(featureEClass, FEATURE___TYPING_FEATURES); + + featureChainExpressionEClass = createEClass(FEATURE_CHAIN_EXPRESSION); + createEReference(featureChainExpressionEClass, FEATURE_CHAIN_EXPRESSION__TARGET_FEATURE); + createEOperation(featureChainExpressionEClass, FEATURE_CHAIN_EXPRESSION___SOURCE_TARGET_FEATURE); + + featureChainingEClass = createEClass(FEATURE_CHAINING); + createEReference(featureChainingEClass, FEATURE_CHAINING__CHAINING_FEATURE); + createEReference(featureChainingEClass, FEATURE_CHAINING__FEATURE_CHAINED); + + featureInvertingEClass = createEClass(FEATURE_INVERTING); + createEReference(featureInvertingEClass, FEATURE_INVERTING__FEATURE_INVERTED); + createEReference(featureInvertingEClass, FEATURE_INVERTING__INVERTING_FEATURE); + createEReference(featureInvertingEClass, FEATURE_INVERTING__OWNING_FEATURE); + + featureMembershipEClass = createEClass(FEATURE_MEMBERSHIP); + createEReference(featureMembershipEClass, FEATURE_MEMBERSHIP__OWNED_MEMBER_FEATURE); + createEReference(featureMembershipEClass, FEATURE_MEMBERSHIP__OWNING_TYPE); + + featureReferenceExpressionEClass = createEClass(FEATURE_REFERENCE_EXPRESSION); + createEReference(featureReferenceExpressionEClass, FEATURE_REFERENCE_EXPRESSION__REFERENT); + + featureTypingEClass = createEClass(FEATURE_TYPING); + createEReference(featureTypingEClass, FEATURE_TYPING__OWNING_FEATURE); + createEReference(featureTypingEClass, FEATURE_TYPING__TYPE); + createEReference(featureTypingEClass, FEATURE_TYPING__TYPED_FEATURE); + + featureValueEClass = createEClass(FEATURE_VALUE); + createEAttribute(featureValueEClass, FEATURE_VALUE__IS_DEFAULT); + createEAttribute(featureValueEClass, FEATURE_VALUE__IS_INITIAL); + createEReference(featureValueEClass, FEATURE_VALUE__FEATURE_WITH_VALUE); + createEReference(featureValueEClass, FEATURE_VALUE__VALUE); + + flowEClass = createEClass(FLOW); + createEReference(flowEClass, FLOW__FLOW_END); + createEReference(flowEClass, FLOW__INTERACTION); + createEReference(flowEClass, FLOW__PAYLOAD_FEATURE); + createEReference(flowEClass, FLOW__PAYLOAD_TYPE); + createEReference(flowEClass, FLOW__SOURCE_OUTPUT_FEATURE); + createEReference(flowEClass, FLOW__TARGET_INPUT_FEATURE); + + flowDefinitionEClass = createEClass(FLOW_DEFINITION); + createEReference(flowDefinitionEClass, FLOW_DEFINITION__FLOW_END); + + flowEndEClass = createEClass(FLOW_END); + + flowUsageEClass = createEClass(FLOW_USAGE); + createEReference(flowUsageEClass, FLOW_USAGE__FLOW_DEFINITION); + + forkNodeEClass = createEClass(FORK_NODE); + + forLoopActionUsageEClass = createEClass(FOR_LOOP_ACTION_USAGE); + createEReference(forLoopActionUsageEClass, FOR_LOOP_ACTION_USAGE__LOOP_VARIABLE); + createEReference(forLoopActionUsageEClass, FOR_LOOP_ACTION_USAGE__SEQ_ARGUMENT); + + framedConcernMembershipEClass = createEClass(FRAMED_CONCERN_MEMBERSHIP); + createEReference(framedConcernMembershipEClass, FRAMED_CONCERN_MEMBERSHIP__OWNED_CONCERN); + createEReference(framedConcernMembershipEClass, FRAMED_CONCERN_MEMBERSHIP__REFERENCED_CONCERN); + + functionEClass = createEClass(FUNCTION); + createEAttribute(functionEClass, FUNCTION__IS_MODEL_LEVEL_EVALUABLE); + createEReference(functionEClass, FUNCTION__EXPRESSION); + createEReference(functionEClass, FUNCTION__RESULT); + + ifActionUsageEClass = createEClass(IF_ACTION_USAGE); + createEReference(ifActionUsageEClass, IF_ACTION_USAGE__ELSE_ACTION); + createEReference(ifActionUsageEClass, IF_ACTION_USAGE__IF_ARGUMENT); + createEReference(ifActionUsageEClass, IF_ACTION_USAGE__THEN_ACTION); + + importEClass = createEClass(IMPORT); + createEAttribute(importEClass, IMPORT__IS_IMPORT_ALL); + createEAttribute(importEClass, IMPORT__IS_RECURSIVE); + createEAttribute(importEClass, IMPORT__VISIBILITY); + createEReference(importEClass, IMPORT__IMPORTED_ELEMENT); + createEReference(importEClass, IMPORT__IMPORT_OWNING_NAMESPACE); + createEOperation(importEClass, IMPORT___IMPORTED_MEMBERSHIPS__ELIST); + + includeUseCaseUsageEClass = createEClass(INCLUDE_USE_CASE_USAGE); + createEReference(includeUseCaseUsageEClass, INCLUDE_USE_CASE_USAGE__USE_CASE_INCLUDED); + + indexExpressionEClass = createEClass(INDEX_EXPRESSION); + + instantiationExpressionEClass = createEClass(INSTANTIATION_EXPRESSION); + createEReference(instantiationExpressionEClass, INSTANTIATION_EXPRESSION__ARGUMENT); + createEReference(instantiationExpressionEClass, INSTANTIATION_EXPRESSION__INSTANTIATED_TYPE); + createEOperation(instantiationExpressionEClass, INSTANTIATION_EXPRESSION___INSTANTIATED_TYPE); + + interactionEClass = createEClass(INTERACTION); + + interfaceDefinitionEClass = createEClass(INTERFACE_DEFINITION); + createEReference(interfaceDefinitionEClass, INTERFACE_DEFINITION__INTERFACE_END); + + interfaceUsageEClass = createEClass(INTERFACE_USAGE); + createEReference(interfaceUsageEClass, INTERFACE_USAGE__INTERFACE_DEFINITION); + + intersectingEClass = createEClass(INTERSECTING); + createEReference(intersectingEClass, INTERSECTING__INTERSECTING_TYPE); + createEReference(intersectingEClass, INTERSECTING__TYPE_INTERSECTED); + + invariantEClass = createEClass(INVARIANT); + createEAttribute(invariantEClass, INVARIANT__IS_NEGATED); + + invocationExpressionEClass = createEClass(INVOCATION_EXPRESSION); + createEReference(invocationExpressionEClass, INVOCATION_EXPRESSION__OPERAND); + + itemDefinitionEClass = createEClass(ITEM_DEFINITION); + + itemUsageEClass = createEClass(ITEM_USAGE); + createEReference(itemUsageEClass, ITEM_USAGE__ITEM_DEFINITION); + + joinNodeEClass = createEClass(JOIN_NODE); + + libraryPackageEClass = createEClass(LIBRARY_PACKAGE); + createEAttribute(libraryPackageEClass, LIBRARY_PACKAGE__IS_STANDARD); + + literalBooleanEClass = createEClass(LITERAL_BOOLEAN); + createEAttribute(literalBooleanEClass, LITERAL_BOOLEAN__VALUE); + + literalExpressionEClass = createEClass(LITERAL_EXPRESSION); + + literalInfinityEClass = createEClass(LITERAL_INFINITY); + + literalIntegerEClass = createEClass(LITERAL_INTEGER); + createEAttribute(literalIntegerEClass, LITERAL_INTEGER__VALUE); + + literalRationalEClass = createEClass(LITERAL_RATIONAL); + createEAttribute(literalRationalEClass, LITERAL_RATIONAL__VALUE); + + literalStringEClass = createEClass(LITERAL_STRING); + createEAttribute(literalStringEClass, LITERAL_STRING__VALUE); + + loopActionUsageEClass = createEClass(LOOP_ACTION_USAGE); + createEReference(loopActionUsageEClass, LOOP_ACTION_USAGE__BODY_ACTION); + + membershipEClass = createEClass(MEMBERSHIP); + createEAttribute(membershipEClass, MEMBERSHIP__MEMBER_ELEMENT_ID); + createEAttribute(membershipEClass, MEMBERSHIP__MEMBER_NAME); + createEAttribute(membershipEClass, MEMBERSHIP__MEMBER_SHORT_NAME); + createEAttribute(membershipEClass, MEMBERSHIP__VISIBILITY); + createEReference(membershipEClass, MEMBERSHIP__MEMBER_ELEMENT); + createEReference(membershipEClass, MEMBERSHIP__MEMBERSHIP_OWNING_NAMESPACE); + createEOperation(membershipEClass, MEMBERSHIP___IS_DISTINGUISHABLE_FROM__MEMBERSHIP); + + membershipExposeEClass = createEClass(MEMBERSHIP_EXPOSE); + + membershipImportEClass = createEClass(MEMBERSHIP_IMPORT); + createEReference(membershipImportEClass, MEMBERSHIP_IMPORT__IMPORTED_MEMBERSHIP); + + mergeNodeEClass = createEClass(MERGE_NODE); + + metaclassEClass = createEClass(METACLASS); + + metadataAccessExpressionEClass = createEClass(METADATA_ACCESS_EXPRESSION); + createEReference(metadataAccessExpressionEClass, METADATA_ACCESS_EXPRESSION__REFERENCED_ELEMENT); + createEOperation(metadataAccessExpressionEClass, METADATA_ACCESS_EXPRESSION___METACLASS_FEATURE); + + metadataDefinitionEClass = createEClass(METADATA_DEFINITION); + + metadataFeatureEClass = createEClass(METADATA_FEATURE); + createEReference(metadataFeatureEClass, METADATA_FEATURE__METACLASS); + createEOperation(metadataFeatureEClass, METADATA_FEATURE___EVALUATE_FEATURE__FEATURE); + createEOperation(metadataFeatureEClass, METADATA_FEATURE___IS_SEMANTIC); + createEOperation(metadataFeatureEClass, METADATA_FEATURE___IS_SYNTACTIC); + createEOperation(metadataFeatureEClass, METADATA_FEATURE___SYNTAX_ELEMENT); + + metadataUsageEClass = createEClass(METADATA_USAGE); + createEReference(metadataUsageEClass, METADATA_USAGE__METADATA_DEFINITION); + + multiplicityEClass = createEClass(MULTIPLICITY); + + multiplicityRangeEClass = createEClass(MULTIPLICITY_RANGE); + createEReference(multiplicityRangeEClass, MULTIPLICITY_RANGE__BOUND); + createEReference(multiplicityRangeEClass, MULTIPLICITY_RANGE__LOWER_BOUND); + createEReference(multiplicityRangeEClass, MULTIPLICITY_RANGE__UPPER_BOUND); + createEOperation(multiplicityRangeEClass, MULTIPLICITY_RANGE___HAS_BOUNDS__INT_INT); + createEOperation(multiplicityRangeEClass, MULTIPLICITY_RANGE___VALUE_OF__EXPRESSION); + + namespaceEClass = createEClass(NAMESPACE); + createEReference(namespaceEClass, NAMESPACE__IMPORTED_MEMBERSHIP); + createEReference(namespaceEClass, NAMESPACE__MEMBER); + createEReference(namespaceEClass, NAMESPACE__MEMBERSHIP); + createEReference(namespaceEClass, NAMESPACE__OWNED_IMPORT); + createEReference(namespaceEClass, NAMESPACE__OWNED_MEMBER); + createEReference(namespaceEClass, NAMESPACE__OWNED_MEMBERSHIP); + createEOperation(namespaceEClass, NAMESPACE___IMPORTED_MEMBERSHIPS__ELIST); + createEOperation(namespaceEClass, NAMESPACE___MEMBERSHIPS_OF_VISIBILITY__VISIBILITYKIND_ELIST); + createEOperation(namespaceEClass, NAMESPACE___NAMES_OF__ELEMENT); + createEOperation(namespaceEClass, NAMESPACE___QUALIFICATION_OF__STRING); + createEOperation(namespaceEClass, NAMESPACE___RESOLVE__STRING); + createEOperation(namespaceEClass, NAMESPACE___RESOLVE_GLOBAL__STRING); + createEOperation(namespaceEClass, NAMESPACE___RESOLVE_LOCAL__STRING); + createEOperation(namespaceEClass, NAMESPACE___RESOLVE_VISIBLE__STRING); + createEOperation(namespaceEClass, NAMESPACE___UNQUALIFIED_NAME_OF__STRING); + createEOperation(namespaceEClass, NAMESPACE___VISIBILITY_OF__MEMBERSHIP); + createEOperation(namespaceEClass, NAMESPACE___VISIBLE_MEMBERSHIPS__ELIST_BOOLEAN_BOOLEAN); + + namespaceExposeEClass = createEClass(NAMESPACE_EXPOSE); + + namespaceImportEClass = createEClass(NAMESPACE_IMPORT); + createEReference(namespaceImportEClass, NAMESPACE_IMPORT__IMPORTED_NAMESPACE); + + nullExpressionEClass = createEClass(NULL_EXPRESSION); + + objectiveMembershipEClass = createEClass(OBJECTIVE_MEMBERSHIP); + createEReference(objectiveMembershipEClass, OBJECTIVE_MEMBERSHIP__OWNED_OBJECTIVE_REQUIREMENT); + + occurrenceDefinitionEClass = createEClass(OCCURRENCE_DEFINITION); + createEAttribute(occurrenceDefinitionEClass, OCCURRENCE_DEFINITION__IS_INDIVIDUAL); + + occurrenceUsageEClass = createEClass(OCCURRENCE_USAGE); + createEAttribute(occurrenceUsageEClass, OCCURRENCE_USAGE__IS_INDIVIDUAL); + createEAttribute(occurrenceUsageEClass, OCCURRENCE_USAGE__PORTION_KIND); + createEReference(occurrenceUsageEClass, OCCURRENCE_USAGE__INDIVIDUAL_DEFINITION); + createEReference(occurrenceUsageEClass, OCCURRENCE_USAGE__OCCURRENCE_DEFINITION); + + operatorExpressionEClass = createEClass(OPERATOR_EXPRESSION); + createEAttribute(operatorExpressionEClass, OPERATOR_EXPRESSION__OPERATOR); + + owningMembershipEClass = createEClass(OWNING_MEMBERSHIP); + createEAttribute(owningMembershipEClass, OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT_ID); + createEAttribute(owningMembershipEClass, OWNING_MEMBERSHIP__OWNED_MEMBER_NAME); + createEAttribute(owningMembershipEClass, OWNING_MEMBERSHIP__OWNED_MEMBER_SHORT_NAME); + createEReference(owningMembershipEClass, OWNING_MEMBERSHIP__OWNED_MEMBER_ELEMENT); + + packageEClass = createEClass(PACKAGE); + createEReference(packageEClass, PACKAGE__FILTER_CONDITION); + createEOperation(packageEClass, PACKAGE___INCLUDE_AS_MEMBER__ELEMENT); + + parameterMembershipEClass = createEClass(PARAMETER_MEMBERSHIP); + createEReference(parameterMembershipEClass, PARAMETER_MEMBERSHIP__OWNED_MEMBER_PARAMETER); + createEOperation(parameterMembershipEClass, PARAMETER_MEMBERSHIP___PARAMETER_DIRECTION); + + partDefinitionEClass = createEClass(PART_DEFINITION); + + partUsageEClass = createEClass(PART_USAGE); + createEReference(partUsageEClass, PART_USAGE__PART_DEFINITION); + + payloadFeatureEClass = createEClass(PAYLOAD_FEATURE); + + performActionUsageEClass = createEClass(PERFORM_ACTION_USAGE); + createEReference(performActionUsageEClass, PERFORM_ACTION_USAGE__PERFORMED_ACTION); + + portConjugationEClass = createEClass(PORT_CONJUGATION); + createEReference(portConjugationEClass, PORT_CONJUGATION__CONJUGATED_PORT_DEFINITION); + createEReference(portConjugationEClass, PORT_CONJUGATION__ORIGINAL_PORT_DEFINITION); + + portDefinitionEClass = createEClass(PORT_DEFINITION); + createEReference(portDefinitionEClass, PORT_DEFINITION__CONJUGATED_PORT_DEFINITION); + + portUsageEClass = createEClass(PORT_USAGE); + createEReference(portUsageEClass, PORT_USAGE__PORT_DEFINITION); + + predicateEClass = createEClass(PREDICATE); + + redefinitionEClass = createEClass(REDEFINITION); + createEReference(redefinitionEClass, REDEFINITION__REDEFINED_FEATURE); + createEReference(redefinitionEClass, REDEFINITION__REDEFINING_FEATURE); + + referenceSubsettingEClass = createEClass(REFERENCE_SUBSETTING); + createEReference(referenceSubsettingEClass, REFERENCE_SUBSETTING__REFERENCED_FEATURE); + createEReference(referenceSubsettingEClass, REFERENCE_SUBSETTING__REFERENCING_FEATURE); + + referenceUsageEClass = createEClass(REFERENCE_USAGE); + + relationshipEClass = createEClass(RELATIONSHIP); + createEAttribute(relationshipEClass, RELATIONSHIP__IS_IMPLIED); + createEReference(relationshipEClass, RELATIONSHIP__OWNED_RELATED_ELEMENT); + createEReference(relationshipEClass, RELATIONSHIP__OWNING_RELATED_ELEMENT); + createEReference(relationshipEClass, RELATIONSHIP__RELATED_ELEMENT); + createEReference(relationshipEClass, RELATIONSHIP__SOURCE); + createEReference(relationshipEClass, RELATIONSHIP__TARGET); + + renderingDefinitionEClass = createEClass(RENDERING_DEFINITION); + createEReference(renderingDefinitionEClass, RENDERING_DEFINITION__RENDERING); + + renderingUsageEClass = createEClass(RENDERING_USAGE); + createEReference(renderingUsageEClass, RENDERING_USAGE__RENDERING_DEFINITION); + + requirementConstraintMembershipEClass = createEClass(REQUIREMENT_CONSTRAINT_MEMBERSHIP); + createEAttribute(requirementConstraintMembershipEClass, REQUIREMENT_CONSTRAINT_MEMBERSHIP__KIND); + createEReference(requirementConstraintMembershipEClass, REQUIREMENT_CONSTRAINT_MEMBERSHIP__OWNED_CONSTRAINT); + createEReference(requirementConstraintMembershipEClass, REQUIREMENT_CONSTRAINT_MEMBERSHIP__REFERENCED_CONSTRAINT); + + requirementDefinitionEClass = createEClass(REQUIREMENT_DEFINITION); + createEAttribute(requirementDefinitionEClass, REQUIREMENT_DEFINITION__REQ_ID); + createEAttribute(requirementDefinitionEClass, REQUIREMENT_DEFINITION__TEXT); + createEReference(requirementDefinitionEClass, REQUIREMENT_DEFINITION__ACTOR_PARAMETER); + createEReference(requirementDefinitionEClass, REQUIREMENT_DEFINITION__ASSUMED_CONSTRAINT); + createEReference(requirementDefinitionEClass, REQUIREMENT_DEFINITION__FRAMED_CONCERN); + createEReference(requirementDefinitionEClass, REQUIREMENT_DEFINITION__REQUIRED_CONSTRAINT); + createEReference(requirementDefinitionEClass, REQUIREMENT_DEFINITION__STAKEHOLDER_PARAMETER); + createEReference(requirementDefinitionEClass, REQUIREMENT_DEFINITION__SUBJECT_PARAMETER); + + requirementUsageEClass = createEClass(REQUIREMENT_USAGE); + createEAttribute(requirementUsageEClass, REQUIREMENT_USAGE__REQ_ID); + createEAttribute(requirementUsageEClass, REQUIREMENT_USAGE__TEXT); + createEReference(requirementUsageEClass, REQUIREMENT_USAGE__ACTOR_PARAMETER); + createEReference(requirementUsageEClass, REQUIREMENT_USAGE__ASSUMED_CONSTRAINT); + createEReference(requirementUsageEClass, REQUIREMENT_USAGE__FRAMED_CONCERN); + createEReference(requirementUsageEClass, REQUIREMENT_USAGE__REQUIRED_CONSTRAINT); + createEReference(requirementUsageEClass, REQUIREMENT_USAGE__REQUIREMENT_DEFINITION); + createEReference(requirementUsageEClass, REQUIREMENT_USAGE__STAKEHOLDER_PARAMETER); + createEReference(requirementUsageEClass, REQUIREMENT_USAGE__SUBJECT_PARAMETER); + + requirementVerificationMembershipEClass = createEClass(REQUIREMENT_VERIFICATION_MEMBERSHIP); + createEReference(requirementVerificationMembershipEClass, REQUIREMENT_VERIFICATION_MEMBERSHIP__OWNED_REQUIREMENT); + createEReference(requirementVerificationMembershipEClass, REQUIREMENT_VERIFICATION_MEMBERSHIP__VERIFIED_REQUIREMENT); + + resultExpressionMembershipEClass = createEClass(RESULT_EXPRESSION_MEMBERSHIP); + createEReference(resultExpressionMembershipEClass, RESULT_EXPRESSION_MEMBERSHIP__OWNED_RESULT_EXPRESSION); + + returnParameterMembershipEClass = createEClass(RETURN_PARAMETER_MEMBERSHIP); + + satisfyRequirementUsageEClass = createEClass(SATISFY_REQUIREMENT_USAGE); + createEReference(satisfyRequirementUsageEClass, SATISFY_REQUIREMENT_USAGE__SATISFIED_REQUIREMENT); + createEReference(satisfyRequirementUsageEClass, SATISFY_REQUIREMENT_USAGE__SATISFYING_FEATURE); + + selectExpressionEClass = createEClass(SELECT_EXPRESSION); + + sendActionUsageEClass = createEClass(SEND_ACTION_USAGE); + createEReference(sendActionUsageEClass, SEND_ACTION_USAGE__PAYLOAD_ARGUMENT); + createEReference(sendActionUsageEClass, SEND_ACTION_USAGE__RECEIVER_ARGUMENT); + createEReference(sendActionUsageEClass, SEND_ACTION_USAGE__SENDER_ARGUMENT); + + specializationEClass = createEClass(SPECIALIZATION); + createEReference(specializationEClass, SPECIALIZATION__GENERAL); + createEReference(specializationEClass, SPECIALIZATION__OWNING_TYPE); + createEReference(specializationEClass, SPECIALIZATION__SPECIFIC); + + stakeholderMembershipEClass = createEClass(STAKEHOLDER_MEMBERSHIP); + createEReference(stakeholderMembershipEClass, STAKEHOLDER_MEMBERSHIP__OWNED_STAKEHOLDER_PARAMETER); + + stateDefinitionEClass = createEClass(STATE_DEFINITION); + createEAttribute(stateDefinitionEClass, STATE_DEFINITION__IS_PARALLEL); + createEReference(stateDefinitionEClass, STATE_DEFINITION__DO_ACTION); + createEReference(stateDefinitionEClass, STATE_DEFINITION__ENTRY_ACTION); + createEReference(stateDefinitionEClass, STATE_DEFINITION__EXIT_ACTION); + createEReference(stateDefinitionEClass, STATE_DEFINITION__STATE); + + stateSubactionMembershipEClass = createEClass(STATE_SUBACTION_MEMBERSHIP); + createEAttribute(stateSubactionMembershipEClass, STATE_SUBACTION_MEMBERSHIP__KIND); + createEReference(stateSubactionMembershipEClass, STATE_SUBACTION_MEMBERSHIP__ACTION); + + stateUsageEClass = createEClass(STATE_USAGE); + createEAttribute(stateUsageEClass, STATE_USAGE__IS_PARALLEL); + createEReference(stateUsageEClass, STATE_USAGE__DO_ACTION); + createEReference(stateUsageEClass, STATE_USAGE__ENTRY_ACTION); + createEReference(stateUsageEClass, STATE_USAGE__EXIT_ACTION); + createEReference(stateUsageEClass, STATE_USAGE__STATE_DEFINITION); + createEOperation(stateUsageEClass, STATE_USAGE___IS_SUBSTATE_USAGE__BOOLEAN); + + stepEClass = createEClass(STEP); + createEReference(stepEClass, STEP__BEHAVIOR); + createEReference(stepEClass, STEP__PARAMETER); + + structureEClass = createEClass(STRUCTURE); + + subclassificationEClass = createEClass(SUBCLASSIFICATION); + createEReference(subclassificationEClass, SUBCLASSIFICATION__OWNING_CLASSIFIER); + createEReference(subclassificationEClass, SUBCLASSIFICATION__SUBCLASSIFIER); + createEReference(subclassificationEClass, SUBCLASSIFICATION__SUPERCLASSIFIER); + + subjectMembershipEClass = createEClass(SUBJECT_MEMBERSHIP); + createEReference(subjectMembershipEClass, SUBJECT_MEMBERSHIP__OWNED_SUBJECT_PARAMETER); + + subsettingEClass = createEClass(SUBSETTING); + createEReference(subsettingEClass, SUBSETTING__OWNING_FEATURE); + createEReference(subsettingEClass, SUBSETTING__SUBSETTED_FEATURE); + createEReference(subsettingEClass, SUBSETTING__SUBSETTING_FEATURE); + + successionEClass = createEClass(SUCCESSION); + + successionAsUsageEClass = createEClass(SUCCESSION_AS_USAGE); + + successionFlowEClass = createEClass(SUCCESSION_FLOW); + + successionFlowUsageEClass = createEClass(SUCCESSION_FLOW_USAGE); + + terminateActionUsageEClass = createEClass(TERMINATE_ACTION_USAGE); + createEReference(terminateActionUsageEClass, TERMINATE_ACTION_USAGE__TERMINATED_OCCURRENCE_ARGUMENT); + + textualRepresentationEClass = createEClass(TEXTUAL_REPRESENTATION); + createEAttribute(textualRepresentationEClass, TEXTUAL_REPRESENTATION__BODY); + createEAttribute(textualRepresentationEClass, TEXTUAL_REPRESENTATION__LANGUAGE); + createEReference(textualRepresentationEClass, TEXTUAL_REPRESENTATION__REPRESENTED_ELEMENT); + + transitionFeatureMembershipEClass = createEClass(TRANSITION_FEATURE_MEMBERSHIP); + createEAttribute(transitionFeatureMembershipEClass, TRANSITION_FEATURE_MEMBERSHIP__KIND); + createEReference(transitionFeatureMembershipEClass, TRANSITION_FEATURE_MEMBERSHIP__TRANSITION_FEATURE); + + transitionUsageEClass = createEClass(TRANSITION_USAGE); + createEReference(transitionUsageEClass, TRANSITION_USAGE__EFFECT_ACTION); + createEReference(transitionUsageEClass, TRANSITION_USAGE__GUARD_EXPRESSION); + createEReference(transitionUsageEClass, TRANSITION_USAGE__SOURCE); + createEReference(transitionUsageEClass, TRANSITION_USAGE__SUCCESSION); + createEReference(transitionUsageEClass, TRANSITION_USAGE__TARGET); + createEReference(transitionUsageEClass, TRANSITION_USAGE__TRIGGER_ACTION); + createEOperation(transitionUsageEClass, TRANSITION_USAGE___SOURCE_FEATURE); + createEOperation(transitionUsageEClass, TRANSITION_USAGE___TRIGGER_PAYLOAD_PARAMETER); + + triggerInvocationExpressionEClass = createEClass(TRIGGER_INVOCATION_EXPRESSION); + createEAttribute(triggerInvocationExpressionEClass, TRIGGER_INVOCATION_EXPRESSION__KIND); + + typeEClass = createEClass(TYPE); + createEAttribute(typeEClass, TYPE__IS_ABSTRACT); + createEAttribute(typeEClass, TYPE__IS_CONJUGATED); + createEAttribute(typeEClass, TYPE__IS_SUFFICIENT); + createEReference(typeEClass, TYPE__DIFFERENCING_TYPE); + createEReference(typeEClass, TYPE__DIRECTED_FEATURE); + createEReference(typeEClass, TYPE__END_FEATURE); + createEReference(typeEClass, TYPE__FEATURE); + createEReference(typeEClass, TYPE__FEATURE_MEMBERSHIP); + createEReference(typeEClass, TYPE__INHERITED_FEATURE); + createEReference(typeEClass, TYPE__INHERITED_MEMBERSHIP); + createEReference(typeEClass, TYPE__INPUT); + createEReference(typeEClass, TYPE__INTERSECTING_TYPE); + createEReference(typeEClass, TYPE__MULTIPLICITY); + createEReference(typeEClass, TYPE__OUTPUT); + createEReference(typeEClass, TYPE__OWNED_CONJUGATOR); + createEReference(typeEClass, TYPE__OWNED_DIFFERENCING); + createEReference(typeEClass, TYPE__OWNED_DISJOINING); + createEReference(typeEClass, TYPE__OWNED_END_FEATURE); + createEReference(typeEClass, TYPE__OWNED_FEATURE); + createEReference(typeEClass, TYPE__OWNED_FEATURE_MEMBERSHIP); + createEReference(typeEClass, TYPE__OWNED_INTERSECTING); + createEReference(typeEClass, TYPE__OWNED_SPECIALIZATION); + createEReference(typeEClass, TYPE__OWNED_UNIONING); + createEReference(typeEClass, TYPE__UNIONING_TYPE); + createEOperation(typeEClass, TYPE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP); + createEOperation(typeEClass, TYPE___ALL_SUPERTYPES); + createEOperation(typeEClass, TYPE___DIRECTION_OF__FEATURE); + createEOperation(typeEClass, TYPE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST); + createEOperation(typeEClass, TYPE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN); + createEOperation(typeEClass, TYPE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN); + createEOperation(typeEClass, TYPE___IS_COMPATIBLE_WITH__TYPE); + createEOperation(typeEClass, TYPE___MULTIPLICITIES); + createEOperation(typeEClass, TYPE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN); + createEOperation(typeEClass, TYPE___REMOVE_REDEFINED_FEATURES__ELIST); + createEOperation(typeEClass, TYPE___SPECIALIZES__TYPE); + createEOperation(typeEClass, TYPE___SPECIALIZES_FROM_LIBRARY__STRING); + createEOperation(typeEClass, TYPE___SUPERTYPES__BOOLEAN); + + typeFeaturingEClass = createEClass(TYPE_FEATURING); + createEReference(typeFeaturingEClass, TYPE_FEATURING__FEATURE_OF_TYPE); + createEReference(typeFeaturingEClass, TYPE_FEATURING__FEATURING_TYPE); + createEReference(typeFeaturingEClass, TYPE_FEATURING__OWNING_FEATURE_OF_TYPE); + + unioningEClass = createEClass(UNIONING); + createEReference(unioningEClass, UNIONING__TYPE_UNIONED); + createEReference(unioningEClass, UNIONING__UNIONING_TYPE); + + usageEClass = createEClass(USAGE); + createEAttribute(usageEClass, USAGE__IS_REFERENCE); + createEAttribute(usageEClass, USAGE__IS_VARIATION); + createEAttribute(usageEClass, USAGE__MAY_TIME_VARY); + createEReference(usageEClass, USAGE__DEFINITION); + createEReference(usageEClass, USAGE__DIRECTED_USAGE); + createEReference(usageEClass, USAGE__NESTED_ACTION); + createEReference(usageEClass, USAGE__NESTED_ALLOCATION); + createEReference(usageEClass, USAGE__NESTED_ANALYSIS_CASE); + createEReference(usageEClass, USAGE__NESTED_ATTRIBUTE); + createEReference(usageEClass, USAGE__NESTED_CALCULATION); + createEReference(usageEClass, USAGE__NESTED_CASE); + createEReference(usageEClass, USAGE__NESTED_CONCERN); + createEReference(usageEClass, USAGE__NESTED_CONNECTION); + createEReference(usageEClass, USAGE__NESTED_CONSTRAINT); + createEReference(usageEClass, USAGE__NESTED_ENUMERATION); + createEReference(usageEClass, USAGE__NESTED_FLOW); + createEReference(usageEClass, USAGE__NESTED_INTERFACE); + createEReference(usageEClass, USAGE__NESTED_ITEM); + createEReference(usageEClass, USAGE__NESTED_METADATA); + createEReference(usageEClass, USAGE__NESTED_OCCURRENCE); + createEReference(usageEClass, USAGE__NESTED_PART); + createEReference(usageEClass, USAGE__NESTED_PORT); + createEReference(usageEClass, USAGE__NESTED_REFERENCE); + createEReference(usageEClass, USAGE__NESTED_RENDERING); + createEReference(usageEClass, USAGE__NESTED_REQUIREMENT); + createEReference(usageEClass, USAGE__NESTED_STATE); + createEReference(usageEClass, USAGE__NESTED_TRANSITION); + createEReference(usageEClass, USAGE__NESTED_USAGE); + createEReference(usageEClass, USAGE__NESTED_USE_CASE); + createEReference(usageEClass, USAGE__NESTED_VERIFICATION_CASE); + createEReference(usageEClass, USAGE__NESTED_VIEW); + createEReference(usageEClass, USAGE__NESTED_VIEWPOINT); + createEReference(usageEClass, USAGE__OWNING_DEFINITION); + createEReference(usageEClass, USAGE__OWNING_USAGE); + createEReference(usageEClass, USAGE__USAGE); + createEReference(usageEClass, USAGE__VARIANT); + createEReference(usageEClass, USAGE__VARIANT_MEMBERSHIP); + createEOperation(usageEClass, USAGE___REFERENCED_FEATURE_TARGET); + + useCaseDefinitionEClass = createEClass(USE_CASE_DEFINITION); + createEReference(useCaseDefinitionEClass, USE_CASE_DEFINITION__INCLUDED_USE_CASE); + + useCaseUsageEClass = createEClass(USE_CASE_USAGE); + createEReference(useCaseUsageEClass, USE_CASE_USAGE__INCLUDED_USE_CASE); + createEReference(useCaseUsageEClass, USE_CASE_USAGE__USE_CASE_DEFINITION); + + variantMembershipEClass = createEClass(VARIANT_MEMBERSHIP); + createEReference(variantMembershipEClass, VARIANT_MEMBERSHIP__OWNED_VARIANT_USAGE); + + verificationCaseDefinitionEClass = createEClass(VERIFICATION_CASE_DEFINITION); + createEReference(verificationCaseDefinitionEClass, VERIFICATION_CASE_DEFINITION__VERIFIED_REQUIREMENT); + + verificationCaseUsageEClass = createEClass(VERIFICATION_CASE_USAGE); + createEReference(verificationCaseUsageEClass, VERIFICATION_CASE_USAGE__VERIFICATION_CASE_DEFINITION); + createEReference(verificationCaseUsageEClass, VERIFICATION_CASE_USAGE__VERIFIED_REQUIREMENT); + + viewDefinitionEClass = createEClass(VIEW_DEFINITION); + createEReference(viewDefinitionEClass, VIEW_DEFINITION__SATISFIED_VIEWPOINT); + createEReference(viewDefinitionEClass, VIEW_DEFINITION__VIEW); + createEReference(viewDefinitionEClass, VIEW_DEFINITION__VIEW_CONDITION); + createEReference(viewDefinitionEClass, VIEW_DEFINITION__VIEW_RENDERING); + + viewpointDefinitionEClass = createEClass(VIEWPOINT_DEFINITION); + createEReference(viewpointDefinitionEClass, VIEWPOINT_DEFINITION__VIEWPOINT_STAKEHOLDER); + + viewpointUsageEClass = createEClass(VIEWPOINT_USAGE); + createEReference(viewpointUsageEClass, VIEWPOINT_USAGE__VIEWPOINT_DEFINITION); + createEReference(viewpointUsageEClass, VIEWPOINT_USAGE__VIEWPOINT_STAKEHOLDER); + + viewRenderingMembershipEClass = createEClass(VIEW_RENDERING_MEMBERSHIP); + createEReference(viewRenderingMembershipEClass, VIEW_RENDERING_MEMBERSHIP__OWNED_RENDERING); + createEReference(viewRenderingMembershipEClass, VIEW_RENDERING_MEMBERSHIP__REFERENCED_RENDERING); + + viewUsageEClass = createEClass(VIEW_USAGE); + createEReference(viewUsageEClass, VIEW_USAGE__EXPOSED_ELEMENT); + createEReference(viewUsageEClass, VIEW_USAGE__SATISFIED_VIEWPOINT); + createEReference(viewUsageEClass, VIEW_USAGE__VIEW_CONDITION); + createEReference(viewUsageEClass, VIEW_USAGE__VIEW_DEFINITION); + createEReference(viewUsageEClass, VIEW_USAGE__VIEW_RENDERING); + createEOperation(viewUsageEClass, VIEW_USAGE___INCLUDE_AS_EXPOSED__ELEMENT); + + whileLoopActionUsageEClass = createEClass(WHILE_LOOP_ACTION_USAGE); + createEReference(whileLoopActionUsageEClass, WHILE_LOOP_ACTION_USAGE__UNTIL_ARGUMENT); + createEReference(whileLoopActionUsageEClass, WHILE_LOOP_ACTION_USAGE__WHILE_ARGUMENT); + + // Create enums + featureDirectionKindEEnum = createEEnum(FEATURE_DIRECTION_KIND); + portionKindEEnum = createEEnum(PORTION_KIND); + requirementConstraintKindEEnum = createEEnum(REQUIREMENT_CONSTRAINT_KIND); + stateSubactionKindEEnum = createEEnum(STATE_SUBACTION_KIND); + transitionFeatureKindEEnum = createEEnum(TRANSITION_FEATURE_KIND); + triggerKindEEnum = createEEnum(TRIGGER_KIND); + visibilityKindEEnum = createEEnum(VISIBILITY_KIND); + } + + /** + * + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + acceptActionUsageEClass.getESuperTypes().add(this.getActionUsage()); + actionDefinitionEClass.getESuperTypes().add(this.getOccurrenceDefinition()); + actionDefinitionEClass.getESuperTypes().add(this.getBehavior()); + actionUsageEClass.getESuperTypes().add(this.getOccurrenceUsage()); + actionUsageEClass.getESuperTypes().add(this.getStep()); + actorMembershipEClass.getESuperTypes().add(this.getParameterMembership()); + allocationDefinitionEClass.getESuperTypes().add(this.getConnectionDefinition()); + allocationUsageEClass.getESuperTypes().add(this.getConnectionUsage()); + analysisCaseDefinitionEClass.getESuperTypes().add(this.getCaseDefinition()); + analysisCaseUsageEClass.getESuperTypes().add(this.getCaseUsage()); + annotatingElementEClass.getESuperTypes().add(this.getElement()); + annotationEClass.getESuperTypes().add(this.getRelationship()); + assertConstraintUsageEClass.getESuperTypes().add(this.getConstraintUsage()); + assertConstraintUsageEClass.getESuperTypes().add(this.getInvariant()); + assignmentActionUsageEClass.getESuperTypes().add(this.getActionUsage()); + associationEClass.getESuperTypes().add(this.getClassifier()); + associationEClass.getESuperTypes().add(this.getRelationship()); + associationStructureEClass.getESuperTypes().add(this.getAssociation()); + associationStructureEClass.getESuperTypes().add(this.getStructure()); + attributeDefinitionEClass.getESuperTypes().add(this.getDefinition()); + attributeDefinitionEClass.getESuperTypes().add(this.getDataType()); + attributeUsageEClass.getESuperTypes().add(this.getUsage()); + behaviorEClass.getESuperTypes().add(this.getClass_()); + bindingConnectorEClass.getESuperTypes().add(this.getConnector()); + bindingConnectorAsUsageEClass.getESuperTypes().add(this.getConnectorAsUsage()); + bindingConnectorAsUsageEClass.getESuperTypes().add(this.getBindingConnector()); + booleanExpressionEClass.getESuperTypes().add(this.getExpression()); + calculationDefinitionEClass.getESuperTypes().add(this.getActionDefinition()); + calculationDefinitionEClass.getESuperTypes().add(this.getFunction()); + calculationUsageEClass.getESuperTypes().add(this.getActionUsage()); + calculationUsageEClass.getESuperTypes().add(this.getExpression()); + caseDefinitionEClass.getESuperTypes().add(this.getCalculationDefinition()); + caseUsageEClass.getESuperTypes().add(this.getCalculationUsage()); + classEClass.getESuperTypes().add(this.getClassifier()); + classifierEClass.getESuperTypes().add(this.getType()); + collectExpressionEClass.getESuperTypes().add(this.getOperatorExpression()); + commentEClass.getESuperTypes().add(this.getAnnotatingElement()); + concernDefinitionEClass.getESuperTypes().add(this.getRequirementDefinition()); + concernUsageEClass.getESuperTypes().add(this.getRequirementUsage()); + conjugatedPortDefinitionEClass.getESuperTypes().add(this.getPortDefinition()); + conjugatedPortTypingEClass.getESuperTypes().add(this.getFeatureTyping()); + conjugationEClass.getESuperTypes().add(this.getRelationship()); + connectionDefinitionEClass.getESuperTypes().add(this.getPartDefinition()); + connectionDefinitionEClass.getESuperTypes().add(this.getAssociationStructure()); + connectionUsageEClass.getESuperTypes().add(this.getConnectorAsUsage()); + connectionUsageEClass.getESuperTypes().add(this.getPartUsage()); + connectorEClass.getESuperTypes().add(this.getFeature()); + connectorEClass.getESuperTypes().add(this.getRelationship()); + connectorAsUsageEClass.getESuperTypes().add(this.getUsage()); + connectorAsUsageEClass.getESuperTypes().add(this.getConnector()); + constraintDefinitionEClass.getESuperTypes().add(this.getOccurrenceDefinition()); + constraintDefinitionEClass.getESuperTypes().add(this.getPredicate()); + constraintUsageEClass.getESuperTypes().add(this.getOccurrenceUsage()); + constraintUsageEClass.getESuperTypes().add(this.getBooleanExpression()); + constructorExpressionEClass.getESuperTypes().add(this.getInstantiationExpression()); + controlNodeEClass.getESuperTypes().add(this.getActionUsage()); + crossSubsettingEClass.getESuperTypes().add(this.getSubsetting()); + dataTypeEClass.getESuperTypes().add(this.getClassifier()); + decisionNodeEClass.getESuperTypes().add(this.getControlNode()); + definitionEClass.getESuperTypes().add(this.getClassifier()); + dependencyEClass.getESuperTypes().add(this.getRelationship()); + differencingEClass.getESuperTypes().add(this.getRelationship()); + disjoiningEClass.getESuperTypes().add(this.getRelationship()); + documentationEClass.getESuperTypes().add(this.getComment()); + elementFilterMembershipEClass.getESuperTypes().add(this.getOwningMembership()); + endFeatureMembershipEClass.getESuperTypes().add(this.getFeatureMembership()); + enumerationDefinitionEClass.getESuperTypes().add(this.getAttributeDefinition()); + enumerationUsageEClass.getESuperTypes().add(this.getAttributeUsage()); + eventOccurrenceUsageEClass.getESuperTypes().add(this.getOccurrenceUsage()); + exhibitStateUsageEClass.getESuperTypes().add(this.getStateUsage()); + exhibitStateUsageEClass.getESuperTypes().add(this.getPerformActionUsage()); + exposeEClass.getESuperTypes().add(this.getImport()); + expressionEClass.getESuperTypes().add(this.getStep()); + featureEClass.getESuperTypes().add(this.getType()); + featureChainExpressionEClass.getESuperTypes().add(this.getOperatorExpression()); + featureChainingEClass.getESuperTypes().add(this.getRelationship()); + featureInvertingEClass.getESuperTypes().add(this.getRelationship()); + featureMembershipEClass.getESuperTypes().add(this.getOwningMembership()); + featureReferenceExpressionEClass.getESuperTypes().add(this.getExpression()); + featureTypingEClass.getESuperTypes().add(this.getSpecialization()); + featureValueEClass.getESuperTypes().add(this.getOwningMembership()); + flowEClass.getESuperTypes().add(this.getConnector()); + flowEClass.getESuperTypes().add(this.getStep()); + flowDefinitionEClass.getESuperTypes().add(this.getActionDefinition()); + flowDefinitionEClass.getESuperTypes().add(this.getInteraction()); + flowEndEClass.getESuperTypes().add(this.getFeature()); + flowUsageEClass.getESuperTypes().add(this.getConnectorAsUsage()); + flowUsageEClass.getESuperTypes().add(this.getActionUsage()); + flowUsageEClass.getESuperTypes().add(this.getFlow()); + forkNodeEClass.getESuperTypes().add(this.getControlNode()); + forLoopActionUsageEClass.getESuperTypes().add(this.getLoopActionUsage()); + framedConcernMembershipEClass.getESuperTypes().add(this.getRequirementConstraintMembership()); + functionEClass.getESuperTypes().add(this.getBehavior()); + ifActionUsageEClass.getESuperTypes().add(this.getActionUsage()); + importEClass.getESuperTypes().add(this.getRelationship()); + includeUseCaseUsageEClass.getESuperTypes().add(this.getUseCaseUsage()); + includeUseCaseUsageEClass.getESuperTypes().add(this.getPerformActionUsage()); + indexExpressionEClass.getESuperTypes().add(this.getOperatorExpression()); + instantiationExpressionEClass.getESuperTypes().add(this.getExpression()); + interactionEClass.getESuperTypes().add(this.getAssociation()); + interactionEClass.getESuperTypes().add(this.getBehavior()); + interfaceDefinitionEClass.getESuperTypes().add(this.getConnectionDefinition()); + interfaceUsageEClass.getESuperTypes().add(this.getConnectionUsage()); + intersectingEClass.getESuperTypes().add(this.getRelationship()); + invariantEClass.getESuperTypes().add(this.getBooleanExpression()); + invocationExpressionEClass.getESuperTypes().add(this.getInstantiationExpression()); + itemDefinitionEClass.getESuperTypes().add(this.getOccurrenceDefinition()); + itemDefinitionEClass.getESuperTypes().add(this.getStructure()); + itemUsageEClass.getESuperTypes().add(this.getOccurrenceUsage()); + joinNodeEClass.getESuperTypes().add(this.getControlNode()); + libraryPackageEClass.getESuperTypes().add(this.getPackage()); + literalBooleanEClass.getESuperTypes().add(this.getLiteralExpression()); + literalExpressionEClass.getESuperTypes().add(this.getExpression()); + literalInfinityEClass.getESuperTypes().add(this.getLiteralExpression()); + literalIntegerEClass.getESuperTypes().add(this.getLiteralExpression()); + literalRationalEClass.getESuperTypes().add(this.getLiteralExpression()); + literalStringEClass.getESuperTypes().add(this.getLiteralExpression()); + loopActionUsageEClass.getESuperTypes().add(this.getActionUsage()); + membershipEClass.getESuperTypes().add(this.getRelationship()); + membershipExposeEClass.getESuperTypes().add(this.getMembershipImport()); + membershipExposeEClass.getESuperTypes().add(this.getExpose()); + membershipImportEClass.getESuperTypes().add(this.getImport()); + mergeNodeEClass.getESuperTypes().add(this.getControlNode()); + metaclassEClass.getESuperTypes().add(this.getStructure()); + metadataAccessExpressionEClass.getESuperTypes().add(this.getExpression()); + metadataDefinitionEClass.getESuperTypes().add(this.getItemDefinition()); + metadataDefinitionEClass.getESuperTypes().add(this.getMetaclass()); + metadataFeatureEClass.getESuperTypes().add(this.getFeature()); + metadataFeatureEClass.getESuperTypes().add(this.getAnnotatingElement()); + metadataUsageEClass.getESuperTypes().add(this.getItemUsage()); + metadataUsageEClass.getESuperTypes().add(this.getMetadataFeature()); + multiplicityEClass.getESuperTypes().add(this.getFeature()); + multiplicityRangeEClass.getESuperTypes().add(this.getMultiplicity()); + namespaceEClass.getESuperTypes().add(this.getElement()); + namespaceExposeEClass.getESuperTypes().add(this.getNamespaceImport()); + namespaceExposeEClass.getESuperTypes().add(this.getExpose()); + namespaceImportEClass.getESuperTypes().add(this.getImport()); + nullExpressionEClass.getESuperTypes().add(this.getExpression()); + objectiveMembershipEClass.getESuperTypes().add(this.getFeatureMembership()); + occurrenceDefinitionEClass.getESuperTypes().add(this.getDefinition()); + occurrenceDefinitionEClass.getESuperTypes().add(this.getClass_()); + occurrenceUsageEClass.getESuperTypes().add(this.getUsage()); + operatorExpressionEClass.getESuperTypes().add(this.getInvocationExpression()); + owningMembershipEClass.getESuperTypes().add(this.getMembership()); + packageEClass.getESuperTypes().add(this.getNamespace()); + parameterMembershipEClass.getESuperTypes().add(this.getFeatureMembership()); + partDefinitionEClass.getESuperTypes().add(this.getItemDefinition()); + partUsageEClass.getESuperTypes().add(this.getItemUsage()); + payloadFeatureEClass.getESuperTypes().add(this.getFeature()); + performActionUsageEClass.getESuperTypes().add(this.getActionUsage()); + performActionUsageEClass.getESuperTypes().add(this.getEventOccurrenceUsage()); + portConjugationEClass.getESuperTypes().add(this.getConjugation()); + portDefinitionEClass.getESuperTypes().add(this.getOccurrenceDefinition()); + portDefinitionEClass.getESuperTypes().add(this.getStructure()); + portUsageEClass.getESuperTypes().add(this.getOccurrenceUsage()); + predicateEClass.getESuperTypes().add(this.getFunction()); + redefinitionEClass.getESuperTypes().add(this.getSubsetting()); + referenceSubsettingEClass.getESuperTypes().add(this.getSubsetting()); + referenceUsageEClass.getESuperTypes().add(this.getUsage()); + relationshipEClass.getESuperTypes().add(this.getElement()); + renderingDefinitionEClass.getESuperTypes().add(this.getPartDefinition()); + renderingUsageEClass.getESuperTypes().add(this.getPartUsage()); + requirementConstraintMembershipEClass.getESuperTypes().add(this.getFeatureMembership()); + requirementDefinitionEClass.getESuperTypes().add(this.getConstraintDefinition()); + requirementUsageEClass.getESuperTypes().add(this.getConstraintUsage()); + requirementVerificationMembershipEClass.getESuperTypes().add(this.getRequirementConstraintMembership()); + resultExpressionMembershipEClass.getESuperTypes().add(this.getFeatureMembership()); + returnParameterMembershipEClass.getESuperTypes().add(this.getParameterMembership()); + satisfyRequirementUsageEClass.getESuperTypes().add(this.getRequirementUsage()); + satisfyRequirementUsageEClass.getESuperTypes().add(this.getAssertConstraintUsage()); + selectExpressionEClass.getESuperTypes().add(this.getOperatorExpression()); + sendActionUsageEClass.getESuperTypes().add(this.getActionUsage()); + specializationEClass.getESuperTypes().add(this.getRelationship()); + stakeholderMembershipEClass.getESuperTypes().add(this.getParameterMembership()); + stateDefinitionEClass.getESuperTypes().add(this.getActionDefinition()); + stateSubactionMembershipEClass.getESuperTypes().add(this.getFeatureMembership()); + stateUsageEClass.getESuperTypes().add(this.getActionUsage()); + stepEClass.getESuperTypes().add(this.getFeature()); + structureEClass.getESuperTypes().add(this.getClass_()); + subclassificationEClass.getESuperTypes().add(this.getSpecialization()); + subjectMembershipEClass.getESuperTypes().add(this.getParameterMembership()); + subsettingEClass.getESuperTypes().add(this.getSpecialization()); + successionEClass.getESuperTypes().add(this.getConnector()); + successionAsUsageEClass.getESuperTypes().add(this.getConnectorAsUsage()); + successionAsUsageEClass.getESuperTypes().add(this.getSuccession()); + successionFlowEClass.getESuperTypes().add(this.getFlow()); + successionFlowEClass.getESuperTypes().add(this.getSuccession()); + successionFlowUsageEClass.getESuperTypes().add(this.getFlowUsage()); + successionFlowUsageEClass.getESuperTypes().add(this.getSuccessionFlow()); + terminateActionUsageEClass.getESuperTypes().add(this.getActionUsage()); + textualRepresentationEClass.getESuperTypes().add(this.getAnnotatingElement()); + transitionFeatureMembershipEClass.getESuperTypes().add(this.getFeatureMembership()); + transitionUsageEClass.getESuperTypes().add(this.getActionUsage()); + triggerInvocationExpressionEClass.getESuperTypes().add(this.getInvocationExpression()); + typeEClass.getESuperTypes().add(this.getNamespace()); + typeFeaturingEClass.getESuperTypes().add(this.getRelationship()); + unioningEClass.getESuperTypes().add(this.getRelationship()); + usageEClass.getESuperTypes().add(this.getFeature()); + useCaseDefinitionEClass.getESuperTypes().add(this.getCaseDefinition()); + useCaseUsageEClass.getESuperTypes().add(this.getCaseUsage()); + variantMembershipEClass.getESuperTypes().add(this.getOwningMembership()); + verificationCaseDefinitionEClass.getESuperTypes().add(this.getCaseDefinition()); + verificationCaseUsageEClass.getESuperTypes().add(this.getCaseUsage()); + viewDefinitionEClass.getESuperTypes().add(this.getPartDefinition()); + viewpointDefinitionEClass.getESuperTypes().add(this.getRequirementDefinition()); + viewpointUsageEClass.getESuperTypes().add(this.getRequirementUsage()); + viewRenderingMembershipEClass.getESuperTypes().add(this.getFeatureMembership()); + viewUsageEClass.getESuperTypes().add(this.getPartUsage()); + whileLoopActionUsageEClass.getESuperTypes().add(this.getLoopActionUsage()); + + // Initialize classes, features, and operations; add parameters + initEClass(acceptActionUsageEClass, AcceptActionUsage.class, "AcceptActionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAcceptActionUsage_PayloadArgument(), this.getExpression(), null, "payloadArgument", null, 0, 1, AcceptActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getAcceptActionUsage_PayloadParameter(), this.getReferenceUsage(), null, "payloadParameter", null, 1, 1, AcceptActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getAcceptActionUsage_ReceiverArgument(), this.getExpression(), null, "receiverArgument", null, 0, 1, AcceptActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEOperation(getAcceptActionUsage__IsTriggerAction(), ecorePackage.getEBoolean(), "isTriggerAction", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(actionDefinitionEClass, ActionDefinition.class, "ActionDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getActionDefinition_Action(), this.getActionUsage(), null, "action", null, 0, -1, ActionDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(actionUsageEClass, ActionUsage.class, "ActionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getActionUsage_ActionDefinition(), this.getBehavior(), null, "actionDefinition", null, 0, -1, ActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + EOperation op = initEOperation(getActionUsage__Argument__int(), this.getExpression(), "argument", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEInt(), "i", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getActionUsage__InputParameter__int(), this.getFeature(), "inputParameter", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEInt(), "i", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getActionUsage__InputParameters(), this.getFeature(), "inputParameters", 0, -1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getActionUsage__IsSubactionUsage(), ecorePackage.getEBoolean(), "isSubactionUsage", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(actorMembershipEClass, ActorMembership.class, "ActorMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getActorMembership_OwnedActorParameter(), this.getPartUsage(), null, "ownedActorParameter", null, 1, 1, ActorMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(allocationDefinitionEClass, AllocationDefinition.class, "AllocationDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAllocationDefinition_Allocation(), this.getAllocationUsage(), null, "allocation", null, 0, -1, AllocationDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(allocationUsageEClass, AllocationUsage.class, "AllocationUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAllocationUsage_AllocationDefinition(), this.getAllocationDefinition(), null, "allocationDefinition", null, 0, -1, AllocationUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(analysisCaseDefinitionEClass, AnalysisCaseDefinition.class, "AnalysisCaseDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAnalysisCaseDefinition_ResultExpression(), this.getExpression(), null, "resultExpression", null, 0, 1, AnalysisCaseDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(analysisCaseUsageEClass, AnalysisCaseUsage.class, "AnalysisCaseUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAnalysisCaseUsage_AnalysisCaseDefinition(), this.getAnalysisCaseDefinition(), null, "analysisCaseDefinition", null, 0, 1, AnalysisCaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getAnalysisCaseUsage_ResultExpression(), this.getExpression(), null, "resultExpression", null, 0, 1, AnalysisCaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(annotatingElementEClass, AnnotatingElement.class, "AnnotatingElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAnnotatingElement_AnnotatedElement(), this.getElement(), null, "annotatedElement", null, 1, -1, AnnotatingElement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getAnnotatingElement_Annotation(), this.getAnnotation(), this.getAnnotation_AnnotatingElement(), "annotation", null, 0, -1, AnnotatingElement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getAnnotatingElement_OwnedAnnotatingRelationship(), this.getAnnotation(), this.getAnnotation_OwningAnnotatingElement(), "ownedAnnotatingRelationship", null, 0, -1, AnnotatingElement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getAnnotatingElement_OwningAnnotatingRelationship(), this.getAnnotation(), this.getAnnotation_OwnedAnnotatingElement(), "owningAnnotatingRelationship", null, 0, 1, AnnotatingElement.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(annotationEClass, Annotation.class, "Annotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAnnotation_AnnotatedElement(), this.getElement(), null, "annotatedElement", null, 1, 1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getAnnotation_AnnotatingElement(), this.getAnnotatingElement(), this.getAnnotatingElement_Annotation(), "annotatingElement", null, 1, 1, Annotation.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getAnnotation_OwnedAnnotatingElement(), this.getAnnotatingElement(), this.getAnnotatingElement_OwningAnnotatingRelationship(), "ownedAnnotatingElement", null, 0, 1, Annotation.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getAnnotation_OwningAnnotatedElement(), this.getElement(), this.getElement_OwnedAnnotation(), "owningAnnotatedElement", null, 0, 1, Annotation.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getAnnotation_OwningAnnotatingElement(), this.getAnnotatingElement(), this.getAnnotatingElement_OwnedAnnotatingRelationship(), "owningAnnotatingElement", null, 0, 1, Annotation.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(assertConstraintUsageEClass, AssertConstraintUsage.class, "AssertConstraintUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAssertConstraintUsage_AssertedConstraint(), this.getConstraintUsage(), null, "assertedConstraint", null, 1, 1, AssertConstraintUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(assignmentActionUsageEClass, AssignmentActionUsage.class, "AssignmentActionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAssignmentActionUsage_Referent(), this.getFeature(), null, "referent", null, 1, 1, AssignmentActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getAssignmentActionUsage_TargetArgument(), this.getExpression(), null, "targetArgument", null, 0, 1, AssignmentActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getAssignmentActionUsage_ValueExpression(), this.getExpression(), null, "valueExpression", null, 0, 1, AssignmentActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(associationEClass, Association.class, "Association", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAssociation_AssociationEnd(), this.getFeature(), null, "associationEnd", null, 0, -1, Association.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getAssociation_RelatedType(), this.getType(), null, "relatedType", null, 0, -1, Association.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getAssociation_SourceType(), this.getType(), null, "sourceType", null, 0, 1, Association.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getAssociation_TargetType(), this.getType(), null, "targetType", null, 0, -1, Association.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(associationStructureEClass, AssociationStructure.class, "AssociationStructure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(attributeDefinitionEClass, AttributeDefinition.class, "AttributeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(attributeUsageEClass, AttributeUsage.class, "AttributeUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAttributeUsage_AttributeDefinition(), this.getDataType(), null, "attributeDefinition", null, 0, -1, AttributeUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(behaviorEClass, Behavior.class, "Behavior", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBehavior_Parameter(), this.getFeature(), null, "parameter", null, 0, -1, Behavior.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getBehavior_Step(), this.getStep(), null, "step", null, 0, -1, Behavior.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(bindingConnectorEClass, BindingConnector.class, "BindingConnector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(bindingConnectorAsUsageEClass, BindingConnectorAsUsage.class, "BindingConnectorAsUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(booleanExpressionEClass, BooleanExpression.class, "BooleanExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBooleanExpression_Predicate(), this.getPredicate(), null, "predicate", null, 0, 1, BooleanExpression.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(calculationDefinitionEClass, CalculationDefinition.class, "CalculationDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCalculationDefinition_Calculation(), this.getCalculationUsage(), null, "calculation", null, 0, -1, CalculationDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(calculationUsageEClass, CalculationUsage.class, "CalculationUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCalculationUsage_CalculationDefinition(), this.getFunction(), null, "calculationDefinition", null, 0, 1, CalculationUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(caseDefinitionEClass, CaseDefinition.class, "CaseDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCaseDefinition_ActorParameter(), this.getPartUsage(), null, "actorParameter", null, 0, -1, CaseDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getCaseDefinition_ObjectiveRequirement(), this.getRequirementUsage(), null, "objectiveRequirement", null, 0, 1, CaseDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getCaseDefinition_SubjectParameter(), this.getUsage(), null, "subjectParameter", null, 1, 1, CaseDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(caseUsageEClass, CaseUsage.class, "CaseUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCaseUsage_ActorParameter(), this.getPartUsage(), null, "actorParameter", null, 0, -1, CaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getCaseUsage_CaseDefinition(), this.getCaseDefinition(), null, "caseDefinition", null, 0, 1, CaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getCaseUsage_ObjectiveRequirement(), this.getRequirementUsage(), null, "objectiveRequirement", null, 0, 1, CaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getCaseUsage_SubjectParameter(), this.getUsage(), null, "subjectParameter", null, 1, 1, CaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(classEClass, org.omg.sysml.model.sysml.Class.class, "Class", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(classifierEClass, Classifier.class, "Classifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getClassifier_OwnedSubclassification(), this.getSubclassification(), this.getSubclassification_OwningClassifier(), "ownedSubclassification", null, 0, -1, Classifier.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(collectExpressionEClass, CollectExpression.class, "CollectExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(commentEClass, Comment.class, "Comment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getComment_Body(), ecorePackage.getEString(), "body", null, 1, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getComment_Locale(), ecorePackage.getEString(), "locale", null, 0, 1, Comment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(concernDefinitionEClass, ConcernDefinition.class, "ConcernDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(concernUsageEClass, ConcernUsage.class, "ConcernUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConcernUsage_ConcernDefinition(), this.getConcernDefinition(), null, "concernDefinition", null, 0, 1, ConcernUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(conjugatedPortDefinitionEClass, ConjugatedPortDefinition.class, "ConjugatedPortDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConjugatedPortDefinition_OriginalPortDefinition(), this.getPortDefinition(), this.getPortDefinition_ConjugatedPortDefinition(), "originalPortDefinition", null, 1, 1, ConjugatedPortDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getConjugatedPortDefinition_OwnedPortConjugator(), this.getPortConjugation(), this.getPortConjugation_ConjugatedPortDefinition(), "ownedPortConjugator", null, 1, 1, ConjugatedPortDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(conjugatedPortTypingEClass, ConjugatedPortTyping.class, "ConjugatedPortTyping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConjugatedPortTyping_ConjugatedPortDefinition(), this.getConjugatedPortDefinition(), null, "conjugatedPortDefinition", null, 1, 1, ConjugatedPortTyping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getConjugatedPortTyping_PortDefinition(), this.getPortDefinition(), null, "portDefinition", null, 1, 1, ConjugatedPortTyping.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(conjugationEClass, Conjugation.class, "Conjugation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConjugation_ConjugatedType(), this.getType(), null, "conjugatedType", null, 1, 1, Conjugation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getConjugation_OriginalType(), this.getType(), null, "originalType", null, 1, 1, Conjugation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getConjugation_OwningType(), this.getType(), this.getType_OwnedConjugator(), "owningType", null, 0, 1, Conjugation.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(connectionDefinitionEClass, ConnectionDefinition.class, "ConnectionDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConnectionDefinition_ConnectionEnd(), this.getUsage(), null, "connectionEnd", null, 0, -1, ConnectionDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(connectionUsageEClass, ConnectionUsage.class, "ConnectionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConnectionUsage_ConnectionDefinition(), this.getAssociationStructure(), null, "connectionDefinition", null, 0, -1, ConnectionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(connectorEClass, Connector.class, "Connector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConnector_Association(), this.getAssociation(), null, "association", null, 0, -1, Connector.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getConnector_ConnectorEnd(), this.getFeature(), null, "connectorEnd", null, 0, -1, Connector.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getConnector_DefaultFeaturingType(), this.getType(), null, "defaultFeaturingType", null, 0, 1, Connector.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getConnector_RelatedFeature(), this.getFeature(), null, "relatedFeature", null, 0, -1, Connector.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getConnector_SourceFeature(), this.getFeature(), null, "sourceFeature", null, 0, 1, Connector.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getConnector_TargetFeature(), this.getFeature(), null, "targetFeature", null, 0, -1, Connector.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(connectorAsUsageEClass, ConnectorAsUsage.class, "ConnectorAsUsage", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(constraintDefinitionEClass, ConstraintDefinition.class, "ConstraintDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(constraintUsageEClass, ConstraintUsage.class, "ConstraintUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConstraintUsage_ConstraintDefinition(), this.getPredicate(), null, "constraintDefinition", null, 0, 1, ConstraintUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(constructorExpressionEClass, ConstructorExpression.class, "ConstructorExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(controlNodeEClass, ControlNode.class, "ControlNode", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + op = initEOperation(getControlNode__MultiplicityHasBounds__Multiplicity_int_int(), ecorePackage.getEBoolean(), "multiplicityHasBounds", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getMultiplicity(), "mult", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEInt(), "lower", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEInt(), "upper", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(crossSubsettingEClass, CrossSubsetting.class, "CrossSubsetting", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getCrossSubsetting_CrossedFeature(), this.getFeature(), null, "crossedFeature", null, 1, 1, CrossSubsetting.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getCrossSubsetting_CrossingFeature(), this.getFeature(), this.getFeature_OwnedCrossSubsetting(), "crossingFeature", null, 1, 1, CrossSubsetting.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(dataTypeEClass, DataType.class, "DataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(decisionNodeEClass, DecisionNode.class, "DecisionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(definitionEClass, Definition.class, "Definition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getDefinition_IsVariation(), ecorePackage.getEBoolean(), "isVariation", null, 1, 1, Definition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getDefinition_DirectedUsage(), this.getUsage(), null, "directedUsage", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedAction(), this.getActionUsage(), null, "ownedAction", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedAllocation(), this.getAllocationUsage(), null, "ownedAllocation", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedAnalysisCase(), this.getAnalysisCaseUsage(), null, "ownedAnalysisCase", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedAttribute(), this.getAttributeUsage(), null, "ownedAttribute", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedCalculation(), this.getCalculationUsage(), null, "ownedCalculation", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedCase(), this.getCaseUsage(), null, "ownedCase", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedConcern(), this.getConcernUsage(), null, "ownedConcern", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getDefinition_OwnedConnection(), this.getConnectorAsUsage(), null, "ownedConnection", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedConstraint(), this.getConstraintUsage(), null, "ownedConstraint", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedEnumeration(), this.getEnumerationUsage(), null, "ownedEnumeration", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedFlow(), this.getFlowUsage(), null, "ownedFlow", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getDefinition_OwnedInterface(), this.getInterfaceUsage(), null, "ownedInterface", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedItem(), this.getItemUsage(), null, "ownedItem", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedMetadata(), this.getMetadataUsage(), null, "ownedMetadata", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedOccurrence(), this.getOccurrenceUsage(), null, "ownedOccurrence", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedPart(), this.getPartUsage(), null, "ownedPart", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedPort(), this.getPortUsage(), null, "ownedPort", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedReference(), this.getReferenceUsage(), null, "ownedReference", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedRendering(), this.getRenderingUsage(), null, "ownedRendering", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedRequirement(), this.getRequirementUsage(), null, "ownedRequirement", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedState(), this.getStateUsage(), null, "ownedState", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedTransition(), this.getTransitionUsage(), null, "ownedTransition", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getDefinition_OwnedUsage(), this.getUsage(), this.getUsage_OwningDefinition(), "ownedUsage", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedUseCase(), this.getUseCaseUsage(), null, "ownedUseCase", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedVerificationCase(), this.getVerificationCaseUsage(), null, "ownedVerificationCase", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedView(), this.getViewUsage(), null, "ownedView", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_OwnedViewpoint(), this.getViewpointUsage(), null, "ownedViewpoint", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_Usage(), this.getUsage(), null, "usage", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getDefinition_Variant(), this.getUsage(), null, "variant", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getDefinition_VariantMembership(), this.getVariantMembership(), null, "variantMembership", null, 0, -1, Definition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(dependencyEClass, Dependency.class, "Dependency", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDependency_Client(), this.getElement(), null, "client", null, 1, -1, Dependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getDependency_Supplier(), this.getElement(), null, "supplier", null, 1, -1, Dependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(differencingEClass, Differencing.class, "Differencing", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDifferencing_DifferencingType(), this.getType(), null, "differencingType", null, 1, 1, Differencing.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getDifferencing_TypeDifferenced(), this.getType(), this.getType_OwnedDifferencing(), "typeDifferenced", null, 1, 1, Differencing.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(disjoiningEClass, Disjoining.class, "Disjoining", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDisjoining_DisjoiningType(), this.getType(), null, "disjoiningType", null, 1, 1, Disjoining.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getDisjoining_OwningType(), this.getType(), this.getType_OwnedDisjoining(), "owningType", null, 0, 1, Disjoining.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getDisjoining_TypeDisjoined(), this.getType(), null, "typeDisjoined", null, 1, 1, Disjoining.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(documentationEClass, Documentation.class, "Documentation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDocumentation_DocumentedElement(), this.getElement(), this.getElement_Documentation(), "documentedElement", null, 1, 1, Documentation.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(elementEClass, Element.class, "Element", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getElement_AliasIds(), ecorePackage.getEString(), "aliasIds", null, 0, -1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getElement_DeclaredName(), ecorePackage.getEString(), "declaredName", null, 0, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getElement_DeclaredShortName(), ecorePackage.getEString(), "declaredShortName", null, 0, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getElement_ElementId(), ecorePackage.getEString(), "elementId", null, 1, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getElement_IsImpliedIncluded(), ecorePackage.getEBoolean(), "isImpliedIncluded", "false", 1, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getElement_IsLibraryElement(), ecorePackage.getEBoolean(), "isLibraryElement", null, 1, 1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEAttribute(getElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEAttribute(getElement_QualifiedName(), ecorePackage.getEString(), "qualifiedName", null, 0, 1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEAttribute(getElement_ShortName(), ecorePackage.getEString(), "shortName", null, 0, 1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getElement_Documentation(), this.getDocumentation(), this.getDocumentation_DocumentedElement(), "documentation", null, 0, -1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getElement_OwnedAnnotation(), this.getAnnotation(), this.getAnnotation_OwningAnnotatedElement(), "ownedAnnotation", null, 0, -1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getElement_OwnedElement(), this.getElement(), this.getElement_Owner(), "ownedElement", null, 0, -1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getElement_OwnedRelationship(), this.getRelationship(), this.getRelationship_OwningRelatedElement(), "ownedRelationship", null, 0, -1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getElement_Owner(), this.getElement(), this.getElement_OwnedElement(), "owner", null, 0, 1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getElement_OwningMembership(), this.getOwningMembership(), this.getOwningMembership_OwnedMemberElement(), "owningMembership", null, 0, 1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getElement_OwningNamespace(), this.getNamespace(), this.getNamespace_OwnedMember(), "owningNamespace", null, 0, 1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getElement_OwningRelationship(), this.getRelationship(), this.getRelationship_OwnedRelatedElement(), "owningRelationship", null, 0, 1, Element.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getElement_TextualRepresentation(), this.getTextualRepresentation(), this.getTextualRepresentation_RepresentedElement(), "textualRepresentation", null, 0, -1, Element.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEOperation(getElement__EffectiveName(), ecorePackage.getEString(), "effectiveName", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getElement__EffectiveShortName(), ecorePackage.getEString(), "effectiveShortName", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getElement__EscapedName(), ecorePackage.getEString(), "escapedName", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getElement__LibraryNamespace(), this.getNamespace(), "libraryNamespace", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getElement__Path(), ecorePackage.getEString(), "path", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(elementFilterMembershipEClass, ElementFilterMembership.class, "ElementFilterMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getElementFilterMembership_Condition(), this.getExpression(), null, "condition", null, 1, 1, ElementFilterMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(endFeatureMembershipEClass, EndFeatureMembership.class, "EndFeatureMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(enumerationDefinitionEClass, EnumerationDefinition.class, "EnumerationDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEnumerationDefinition_EnumeratedValue(), this.getEnumerationUsage(), null, "enumeratedValue", null, 0, -1, EnumerationDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(enumerationUsageEClass, EnumerationUsage.class, "EnumerationUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEnumerationUsage_EnumerationDefinition(), this.getEnumerationDefinition(), null, "enumerationDefinition", null, 1, 1, EnumerationUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(eventOccurrenceUsageEClass, EventOccurrenceUsage.class, "EventOccurrenceUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getEventOccurrenceUsage_EventOccurrence(), this.getOccurrenceUsage(), null, "eventOccurrence", null, 1, 1, EventOccurrenceUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(exhibitStateUsageEClass, ExhibitStateUsage.class, "ExhibitStateUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExhibitStateUsage_ExhibitedState(), this.getStateUsage(), null, "exhibitedState", null, 1, 1, ExhibitStateUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(exposeEClass, Expose.class, "Expose", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExpression_IsModelLevelEvaluable(), ecorePackage.getEBoolean(), "isModelLevelEvaluable", null, 1, 1, Expression.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getExpression_Function(), this.getFunction(), null, "function", null, 0, 1, Expression.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getExpression_Result(), this.getFeature(), null, "result", null, 1, 1, Expression.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + op = initEOperation(getExpression__CheckCondition__Element(), ecorePackage.getEBoolean(), "checkCondition", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getElement(), "target", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getExpression__Evaluate__Element(), this.getElement(), "evaluate", 0, -1, !IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getElement(), "target", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getExpression__ModelLevelEvaluable__EList(), ecorePackage.getEBoolean(), "modelLevelEvaluable", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getFeature(), "visited", 0, -1, IS_UNIQUE, !IS_ORDERED); + + initEClass(featureEClass, Feature.class, "Feature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getFeature_Direction(), this.getFeatureDirectionKind(), "direction", null, 0, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getFeature_IsComposite(), ecorePackage.getEBoolean(), "isComposite", "false", 1, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getFeature_IsConstant(), ecorePackage.getEBoolean(), "isConstant", "false", 1, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getFeature_IsDerived(), ecorePackage.getEBoolean(), "isDerived", "false", 1, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getFeature_IsEnd(), ecorePackage.getEBoolean(), "isEnd", "false", 1, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getFeature_IsNonunique(), ecorePackage.getEBoolean(), "isNonunique", "false", 1, 1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEAttribute(getFeature_IsOrdered(), ecorePackage.getEBoolean(), "isOrdered", "false", 1, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getFeature_IsPortion(), ecorePackage.getEBoolean(), "isPortion", "false", 1, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getFeature_IsUnique(), ecorePackage.getEBoolean(), "isUnique", "true", 1, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getFeature_IsVariable(), ecorePackage.getEBoolean(), "isVariable", "false", 1, 1, Feature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_ChainingFeature(), this.getFeature(), null, "chainingFeature", null, 0, -1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getFeature_CrossFeature(), this.getFeature(), null, "crossFeature", null, 0, 1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_EndOwningType(), this.getType(), this.getType_OwnedEndFeature(), "endOwningType", null, 0, 1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_FeatureTarget(), this.getFeature(), null, "featureTarget", null, 1, 1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_FeaturingType(), this.getType(), null, "featuringType", null, 0, -1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getFeature_OwnedCrossSubsetting(), this.getCrossSubsetting(), this.getCrossSubsetting_CrossingFeature(), "ownedCrossSubsetting", null, 0, 1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_OwnedFeatureChaining(), this.getFeatureChaining(), this.getFeatureChaining_FeatureChained(), "ownedFeatureChaining", null, 0, -1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getFeature_OwnedFeatureInverting(), this.getFeatureInverting(), this.getFeatureInverting_OwningFeature(), "ownedFeatureInverting", null, 0, -1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_OwnedRedefinition(), this.getRedefinition(), null, "ownedRedefinition", null, 0, -1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_OwnedReferenceSubsetting(), this.getReferenceSubsetting(), this.getReferenceSubsetting_ReferencingFeature(), "ownedReferenceSubsetting", null, 0, 1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_OwnedSubsetting(), this.getSubsetting(), this.getSubsetting_OwningFeature(), "ownedSubsetting", null, 0, -1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_OwnedTypeFeaturing(), this.getTypeFeaturing(), this.getTypeFeaturing_OwningFeatureOfType(), "ownedTypeFeaturing", null, 0, -1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getFeature_OwnedTyping(), this.getFeatureTyping(), this.getFeatureTyping_OwningFeature(), "ownedTyping", null, 0, -1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getFeature_OwningFeatureMembership(), this.getFeatureMembership(), this.getFeatureMembership_OwnedMemberFeature(), "owningFeatureMembership", null, 0, 1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_OwningType(), this.getType(), this.getType_OwnedFeature(), "owningType", null, 0, 1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeature_Type(), this.getType(), null, "type", null, 0, -1, Feature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEOperation(getFeature__AllRedefinedFeatures(), this.getFeature(), "allRedefinedFeatures", 0, -1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getFeature__AsCartesianProduct(), this.getType(), "asCartesianProduct", 0, -1, !IS_UNIQUE, IS_ORDERED); + + op = initEOperation(getFeature__CanAccess__Feature(), ecorePackage.getEBoolean(), "canAccess", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getFeature(), "feature", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getFeature__DirectionFor__Type(), this.getFeatureDirectionKind(), "directionFor", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getType(), "type", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getFeature__IsCartesianProduct(), ecorePackage.getEBoolean(), "isCartesianProduct", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getFeature__IsFeaturedWithin__Type(), ecorePackage.getEBoolean(), "isFeaturedWithin", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getType(), "type", 0, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getFeature__IsFeaturingType__Type(), ecorePackage.getEBoolean(), "isFeaturingType", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getType(), "type", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getFeature__IsOwnedCrossFeature(), ecorePackage.getEBoolean(), "isOwnedCrossFeature", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getFeature__NamingFeature(), this.getFeature(), "namingFeature", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getFeature__OwnedCrossFeature(), this.getFeature(), "ownedCrossFeature", 0, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getFeature__Redefines__Feature(), ecorePackage.getEBoolean(), "redefines", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getFeature(), "redefinedFeature", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getFeature__RedefinesFromLibrary__String(), ecorePackage.getEBoolean(), "redefinesFromLibrary", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "libraryFeatureName", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getFeature__SubsetsChain__Feature_Feature(), ecorePackage.getEBoolean(), "subsetsChain", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getFeature(), "first", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getFeature(), "second", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getFeature__TypingFeatures(), this.getFeature(), "typingFeatures", 0, -1, IS_UNIQUE, !IS_ORDERED); + + initEClass(featureChainExpressionEClass, FeatureChainExpression.class, "FeatureChainExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFeatureChainExpression_TargetFeature(), this.getFeature(), null, "targetFeature", null, 1, 1, FeatureChainExpression.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEOperation(getFeatureChainExpression__SourceTargetFeature(), this.getFeature(), "sourceTargetFeature", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(featureChainingEClass, FeatureChaining.class, "FeatureChaining", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFeatureChaining_ChainingFeature(), this.getFeature(), null, "chainingFeature", null, 1, 1, FeatureChaining.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getFeatureChaining_FeatureChained(), this.getFeature(), this.getFeature_OwnedFeatureChaining(), "featureChained", null, 1, 1, FeatureChaining.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(featureInvertingEClass, FeatureInverting.class, "FeatureInverting", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFeatureInverting_FeatureInverted(), this.getFeature(), null, "featureInverted", null, 1, 1, FeatureInverting.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getFeatureInverting_InvertingFeature(), this.getFeature(), null, "invertingFeature", null, 1, 1, FeatureInverting.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getFeatureInverting_OwningFeature(), this.getFeature(), this.getFeature_OwnedFeatureInverting(), "owningFeature", null, 0, 1, FeatureInverting.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(featureMembershipEClass, FeatureMembership.class, "FeatureMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFeatureMembership_OwnedMemberFeature(), this.getFeature(), this.getFeature_OwningFeatureMembership(), "ownedMemberFeature", null, 1, 1, FeatureMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeatureMembership_OwningType(), this.getType(), this.getType_OwnedFeatureMembership(), "owningType", null, 1, 1, FeatureMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(featureReferenceExpressionEClass, FeatureReferenceExpression.class, "FeatureReferenceExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFeatureReferenceExpression_Referent(), this.getFeature(), null, "referent", null, 1, 1, FeatureReferenceExpression.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(featureTypingEClass, FeatureTyping.class, "FeatureTyping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFeatureTyping_OwningFeature(), this.getFeature(), this.getFeature_OwnedTyping(), "owningFeature", null, 0, 1, FeatureTyping.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeatureTyping_Type(), this.getType(), null, "type", null, 1, 1, FeatureTyping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getFeatureTyping_TypedFeature(), this.getFeature(), null, "typedFeature", null, 1, 1, FeatureTyping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(featureValueEClass, FeatureValue.class, "FeatureValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getFeatureValue_IsDefault(), ecorePackage.getEBoolean(), "isDefault", "false", 1, 1, FeatureValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getFeatureValue_IsInitial(), ecorePackage.getEBoolean(), "isInitial", "false", 1, 1, FeatureValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getFeatureValue_FeatureWithValue(), this.getFeature(), null, "featureWithValue", null, 1, 1, FeatureValue.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFeatureValue_Value(), this.getExpression(), null, "value", null, 1, 1, FeatureValue.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(flowEClass, Flow.class, "Flow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFlow_FlowEnd(), this.getFlowEnd(), null, "flowEnd", null, 0, 2, Flow.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getFlow_Interaction(), this.getInteraction(), null, "interaction", null, 0, -1, Flow.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getFlow_PayloadFeature(), this.getPayloadFeature(), null, "payloadFeature", null, 0, 1, Flow.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFlow_PayloadType(), this.getClassifier(), null, "payloadType", null, 0, -1, Flow.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getFlow_SourceOutputFeature(), this.getFeature(), null, "sourceOutputFeature", null, 0, 1, Flow.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getFlow_TargetInputFeature(), this.getFeature(), null, "targetInputFeature", null, 0, 1, Flow.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(flowDefinitionEClass, FlowDefinition.class, "FlowDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFlowDefinition_FlowEnd(), this.getUsage(), null, "flowEnd", null, 0, -1, FlowDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(flowEndEClass, FlowEnd.class, "FlowEnd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(flowUsageEClass, FlowUsage.class, "FlowUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFlowUsage_FlowDefinition(), this.getInteraction(), null, "flowDefinition", null, 0, -1, FlowUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(forkNodeEClass, ForkNode.class, "ForkNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(forLoopActionUsageEClass, ForLoopActionUsage.class, "ForLoopActionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getForLoopActionUsage_LoopVariable(), this.getReferenceUsage(), null, "loopVariable", null, 1, 1, ForLoopActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getForLoopActionUsage_SeqArgument(), this.getExpression(), null, "seqArgument", null, 1, 1, ForLoopActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(framedConcernMembershipEClass, FramedConcernMembership.class, "FramedConcernMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFramedConcernMembership_OwnedConcern(), this.getConcernUsage(), null, "ownedConcern", null, 1, 1, FramedConcernMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFramedConcernMembership_ReferencedConcern(), this.getConcernUsage(), null, "referencedConcern", null, 1, 1, FramedConcernMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(functionEClass, Function.class, "Function", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getFunction_IsModelLevelEvaluable(), ecorePackage.getEBoolean(), "isModelLevelEvaluable", null, 1, 1, Function.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFunction_Expression(), this.getExpression(), null, "expression", null, 0, -1, Function.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getFunction_Result(), this.getFeature(), null, "result", null, 1, 1, Function.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(ifActionUsageEClass, IfActionUsage.class, "IfActionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getIfActionUsage_ElseAction(), this.getActionUsage(), null, "elseAction", null, 0, 1, IfActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getIfActionUsage_IfArgument(), this.getExpression(), null, "ifArgument", null, 1, 1, IfActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getIfActionUsage_ThenAction(), this.getActionUsage(), null, "thenAction", null, 1, 1, IfActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(importEClass, Import.class, "Import", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getImport_IsImportAll(), ecorePackage.getEBoolean(), "isImportAll", "false", 1, 1, Import.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getImport_IsRecursive(), ecorePackage.getEBoolean(), "isRecursive", "false", 1, 1, Import.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getImport_Visibility(), this.getVisibilityKind(), "visibility", "private", 1, 1, Import.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getImport_ImportedElement(), this.getElement(), null, "importedElement", null, 1, 1, Import.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getImport_ImportOwningNamespace(), this.getNamespace(), this.getNamespace_OwnedImport(), "importOwningNamespace", null, 1, 1, Import.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + op = initEOperation(getImport__ImportedMemberships__EList(), this.getMembership(), "importedMemberships", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getNamespace(), "excluded", 0, -1, IS_UNIQUE, !IS_ORDERED); + + initEClass(includeUseCaseUsageEClass, IncludeUseCaseUsage.class, "IncludeUseCaseUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getIncludeUseCaseUsage_UseCaseIncluded(), this.getUseCaseUsage(), null, "useCaseIncluded", null, 1, 1, IncludeUseCaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(indexExpressionEClass, IndexExpression.class, "IndexExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(instantiationExpressionEClass, InstantiationExpression.class, "InstantiationExpression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getInstantiationExpression_Argument(), this.getExpression(), null, "argument", null, 0, -1, InstantiationExpression.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getInstantiationExpression_InstantiatedType(), this.getType(), null, "instantiatedType", null, 1, 1, InstantiationExpression.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEOperation(getInstantiationExpression__InstantiatedType(), this.getType(), "instantiatedType", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(interactionEClass, Interaction.class, "Interaction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(interfaceDefinitionEClass, InterfaceDefinition.class, "InterfaceDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getInterfaceDefinition_InterfaceEnd(), this.getPortUsage(), null, "interfaceEnd", null, 0, -1, InterfaceDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(interfaceUsageEClass, InterfaceUsage.class, "InterfaceUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getInterfaceUsage_InterfaceDefinition(), this.getInterfaceDefinition(), null, "interfaceDefinition", null, 0, -1, InterfaceUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(intersectingEClass, Intersecting.class, "Intersecting", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getIntersecting_IntersectingType(), this.getType(), null, "intersectingType", null, 1, 1, Intersecting.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getIntersecting_TypeIntersected(), this.getType(), this.getType_OwnedIntersecting(), "typeIntersected", null, 1, 1, Intersecting.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(invariantEClass, Invariant.class, "Invariant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getInvariant_IsNegated(), ecorePackage.getEBoolean(), "isNegated", "false", 1, 1, Invariant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(invocationExpressionEClass, InvocationExpression.class, "InvocationExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getInvocationExpression_Operand(), this.getExpression(), null, "operand", null, 0, -1, InvocationExpression.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(itemDefinitionEClass, ItemDefinition.class, "ItemDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(itemUsageEClass, ItemUsage.class, "ItemUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getItemUsage_ItemDefinition(), this.getStructure(), null, "itemDefinition", null, 0, -1, ItemUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(joinNodeEClass, JoinNode.class, "JoinNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(libraryPackageEClass, LibraryPackage.class, "LibraryPackage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLibraryPackage_IsStandard(), ecorePackage.getEBoolean(), "isStandard", "false", 1, 1, LibraryPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(literalBooleanEClass, LiteralBoolean.class, "LiteralBoolean", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLiteralBoolean_Value(), ecorePackage.getEBoolean(), "value", null, 1, 1, LiteralBoolean.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(literalExpressionEClass, LiteralExpression.class, "LiteralExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(literalInfinityEClass, LiteralInfinity.class, "LiteralInfinity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(literalIntegerEClass, LiteralInteger.class, "LiteralInteger", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLiteralInteger_Value(), ecorePackage.getEInt(), "value", null, 1, 1, LiteralInteger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(literalRationalEClass, LiteralRational.class, "LiteralRational", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLiteralRational_Value(), ecorePackage.getEDouble(), "value", null, 1, 1, LiteralRational.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(literalStringEClass, LiteralString.class, "LiteralString", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getLiteralString_Value(), ecorePackage.getEString(), "value", null, 1, 1, LiteralString.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(loopActionUsageEClass, LoopActionUsage.class, "LoopActionUsage", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getLoopActionUsage_BodyAction(), this.getActionUsage(), null, "bodyAction", null, 1, 1, LoopActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(membershipEClass, Membership.class, "Membership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getMembership_MemberElementId(), ecorePackage.getEString(), "memberElementId", null, 1, 1, Membership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEAttribute(getMembership_MemberName(), ecorePackage.getEString(), "memberName", null, 0, 1, Membership.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getMembership_MemberShortName(), ecorePackage.getEString(), "memberShortName", null, 0, 1, Membership.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getMembership_Visibility(), this.getVisibilityKind(), "visibility", "public", 1, 1, Membership.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getMembership_MemberElement(), this.getElement(), null, "memberElement", null, 1, 1, Membership.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getMembership_MembershipOwningNamespace(), this.getNamespace(), this.getNamespace_OwnedMembership(), "membershipOwningNamespace", null, 1, 1, Membership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + op = initEOperation(getMembership__IsDistinguishableFrom__Membership(), ecorePackage.getEBoolean(), "isDistinguishableFrom", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getMembership(), "other", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(membershipExposeEClass, MembershipExpose.class, "MembershipExpose", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(membershipImportEClass, MembershipImport.class, "MembershipImport", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMembershipImport_ImportedMembership(), this.getMembership(), null, "importedMembership", null, 1, 1, MembershipImport.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(mergeNodeEClass, MergeNode.class, "MergeNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(metaclassEClass, Metaclass.class, "Metaclass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(metadataAccessExpressionEClass, MetadataAccessExpression.class, "MetadataAccessExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMetadataAccessExpression_ReferencedElement(), this.getElement(), null, "referencedElement", null, 1, 1, MetadataAccessExpression.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEOperation(getMetadataAccessExpression__MetaclassFeature(), this.getMetadataFeature(), "metaclassFeature", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(metadataDefinitionEClass, MetadataDefinition.class, "MetadataDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(metadataFeatureEClass, MetadataFeature.class, "MetadataFeature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMetadataFeature_Metaclass(), this.getMetaclass(), null, "metaclass", null, 0, 1, MetadataFeature.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + op = initEOperation(getMetadataFeature__EvaluateFeature__Feature(), this.getElement(), "evaluateFeature", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getFeature(), "baseFeature", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getMetadataFeature__IsSemantic(), ecorePackage.getEBoolean(), "isSemantic", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getMetadataFeature__IsSyntactic(), ecorePackage.getEBoolean(), "isSyntactic", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getMetadataFeature__SyntaxElement(), this.getElement(), "syntaxElement", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(metadataUsageEClass, MetadataUsage.class, "MetadataUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMetadataUsage_MetadataDefinition(), this.getMetaclass(), null, "metadataDefinition", null, 0, 1, MetadataUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(multiplicityEClass, Multiplicity.class, "Multiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(multiplicityRangeEClass, MultiplicityRange.class, "MultiplicityRange", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMultiplicityRange_Bound(), this.getExpression(), null, "bound", null, 1, 2, MultiplicityRange.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getMultiplicityRange_LowerBound(), this.getExpression(), null, "lowerBound", null, 0, 1, MultiplicityRange.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getMultiplicityRange_UpperBound(), this.getExpression(), null, "upperBound", null, 1, 1, MultiplicityRange.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + op = initEOperation(getMultiplicityRange__HasBounds__int_int(), ecorePackage.getEBoolean(), "hasBounds", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEInt(), "lower", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEInt(), "upper", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getMultiplicityRange__ValueOf__Expression(), ecorePackage.getEInt(), "valueOf", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getExpression(), "bound", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(namespaceEClass, Namespace.class, "Namespace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getNamespace_ImportedMembership(), this.getMembership(), null, "importedMembership", null, 0, -1, Namespace.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getNamespace_Member(), this.getElement(), null, "member", null, 0, -1, Namespace.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getNamespace_Membership(), this.getMembership(), null, "membership", null, 0, -1, Namespace.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getNamespace_OwnedImport(), this.getImport(), this.getImport_ImportOwningNamespace(), "ownedImport", null, 0, -1, Namespace.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getNamespace_OwnedMember(), this.getElement(), this.getElement_OwningNamespace(), "ownedMember", null, 0, -1, Namespace.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getNamespace_OwnedMembership(), this.getMembership(), this.getMembership_MembershipOwningNamespace(), "ownedMembership", null, 0, -1, Namespace.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + op = initEOperation(getNamespace__ImportedMemberships__EList(), this.getMembership(), "importedMemberships", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getNamespace(), "excluded", 0, -1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getNamespace__MembershipsOfVisibility__VisibilityKind_EList(), this.getMembership(), "membershipsOfVisibility", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getVisibilityKind(), "visibility", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getNamespace(), "excluded", 0, -1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getNamespace__NamesOf__Element(), ecorePackage.getEString(), "namesOf", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getElement(), "element", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getNamespace__QualificationOf__String(), ecorePackage.getEString(), "qualificationOf", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "qualifiedName", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getNamespace__Resolve__String(), this.getMembership(), "resolve", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "qualifiedName", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getNamespace__ResolveGlobal__String(), this.getMembership(), "resolveGlobal", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "qualifiedName", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getNamespace__ResolveLocal__String(), this.getMembership(), "resolveLocal", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "name", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getNamespace__ResolveVisible__String(), this.getMembership(), "resolveVisible", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "name", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getNamespace__UnqualifiedNameOf__String(), ecorePackage.getEString(), "unqualifiedNameOf", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "qualifiedName", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getNamespace__VisibilityOf__Membership(), this.getVisibilityKind(), "visibilityOf", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getMembership(), "mem", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getNamespace__VisibleMemberships__EList_boolean_boolean(), this.getMembership(), "visibleMemberships", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getNamespace(), "excluded", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEBoolean(), "isRecursive", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEBoolean(), "includeAll", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(namespaceExposeEClass, NamespaceExpose.class, "NamespaceExpose", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(namespaceImportEClass, NamespaceImport.class, "NamespaceImport", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getNamespaceImport_ImportedNamespace(), this.getNamespace(), null, "importedNamespace", null, 1, 1, NamespaceImport.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(nullExpressionEClass, NullExpression.class, "NullExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(objectiveMembershipEClass, ObjectiveMembership.class, "ObjectiveMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getObjectiveMembership_OwnedObjectiveRequirement(), this.getRequirementUsage(), null, "ownedObjectiveRequirement", null, 1, 1, ObjectiveMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(occurrenceDefinitionEClass, OccurrenceDefinition.class, "OccurrenceDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getOccurrenceDefinition_IsIndividual(), ecorePackage.getEBoolean(), "isIndividual", "false", 1, 1, OccurrenceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(occurrenceUsageEClass, OccurrenceUsage.class, "OccurrenceUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getOccurrenceUsage_IsIndividual(), ecorePackage.getEBoolean(), "isIndividual", "false", 1, 1, OccurrenceUsage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getOccurrenceUsage_PortionKind(), this.getPortionKind(), "portionKind", null, 0, 1, OccurrenceUsage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getOccurrenceUsage_IndividualDefinition(), this.getOccurrenceDefinition(), null, "individualDefinition", null, 0, 1, OccurrenceUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getOccurrenceUsage_OccurrenceDefinition(), this.getClass_(), null, "occurrenceDefinition", null, 0, -1, OccurrenceUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(operatorExpressionEClass, OperatorExpression.class, "OperatorExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getOperatorExpression_Operator(), ecorePackage.getEString(), "operator", null, 1, 1, OperatorExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(owningMembershipEClass, OwningMembership.class, "OwningMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getOwningMembership_OwnedMemberElementId(), ecorePackage.getEString(), "ownedMemberElementId", null, 1, 1, OwningMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEAttribute(getOwningMembership_OwnedMemberName(), ecorePackage.getEString(), "ownedMemberName", null, 0, 1, OwningMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEAttribute(getOwningMembership_OwnedMemberShortName(), ecorePackage.getEString(), "ownedMemberShortName", null, 0, 1, OwningMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getOwningMembership_OwnedMemberElement(), this.getElement(), this.getElement_OwningMembership(), "ownedMemberElement", null, 1, 1, OwningMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(packageEClass, org.omg.sysml.model.sysml.Package.class, "Package", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPackage_FilterCondition(), this.getExpression(), null, "filterCondition", null, 0, -1, org.omg.sysml.model.sysml.Package.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + op = initEOperation(getPackage__IncludeAsMember__Element(), ecorePackage.getEBoolean(), "includeAsMember", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getElement(), "element", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(parameterMembershipEClass, ParameterMembership.class, "ParameterMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getParameterMembership_OwnedMemberParameter(), this.getFeature(), null, "ownedMemberParameter", null, 1, 1, ParameterMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEOperation(getParameterMembership__ParameterDirection(), this.getFeatureDirectionKind(), "parameterDirection", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(partDefinitionEClass, PartDefinition.class, "PartDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(partUsageEClass, PartUsage.class, "PartUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPartUsage_PartDefinition(), this.getPartDefinition(), null, "partDefinition", null, 0, -1, PartUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(payloadFeatureEClass, PayloadFeature.class, "PayloadFeature", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(performActionUsageEClass, PerformActionUsage.class, "PerformActionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPerformActionUsage_PerformedAction(), this.getActionUsage(), null, "performedAction", null, 1, 1, PerformActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(portConjugationEClass, PortConjugation.class, "PortConjugation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPortConjugation_ConjugatedPortDefinition(), this.getConjugatedPortDefinition(), this.getConjugatedPortDefinition_OwnedPortConjugator(), "conjugatedPortDefinition", null, 1, 1, PortConjugation.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getPortConjugation_OriginalPortDefinition(), this.getPortDefinition(), null, "originalPortDefinition", null, 1, 1, PortConjugation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(portDefinitionEClass, PortDefinition.class, "PortDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPortDefinition_ConjugatedPortDefinition(), this.getConjugatedPortDefinition(), this.getConjugatedPortDefinition_OriginalPortDefinition(), "conjugatedPortDefinition", null, 0, 1, PortDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(portUsageEClass, PortUsage.class, "PortUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getPortUsage_PortDefinition(), this.getPortDefinition(), null, "portDefinition", null, 0, -1, PortUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(predicateEClass, Predicate.class, "Predicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(redefinitionEClass, Redefinition.class, "Redefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getRedefinition_RedefinedFeature(), this.getFeature(), null, "redefinedFeature", null, 1, 1, Redefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getRedefinition_RedefiningFeature(), this.getFeature(), null, "redefiningFeature", null, 1, 1, Redefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(referenceSubsettingEClass, ReferenceSubsetting.class, "ReferenceSubsetting", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getReferenceSubsetting_ReferencedFeature(), this.getFeature(), null, "referencedFeature", null, 1, 1, ReferenceSubsetting.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getReferenceSubsetting_ReferencingFeature(), this.getFeature(), this.getFeature_OwnedReferenceSubsetting(), "referencingFeature", null, 1, 1, ReferenceSubsetting.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(referenceUsageEClass, ReferenceUsage.class, "ReferenceUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(relationshipEClass, Relationship.class, "Relationship", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getRelationship_IsImplied(), ecorePackage.getEBoolean(), "isImplied", "false", 1, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getRelationship_OwnedRelatedElement(), this.getElement(), this.getElement_OwningRelationship(), "ownedRelatedElement", null, 0, -1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getRelationship_OwningRelatedElement(), this.getElement(), this.getElement_OwnedRelationship(), "owningRelatedElement", null, 0, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getRelationship_RelatedElement(), this.getElement(), null, "relatedElement", null, 0, -1, Relationship.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRelationship_Source(), this.getElement(), null, "source", null, 0, -1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getRelationship_Target(), this.getElement(), null, "target", null, 0, -1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(renderingDefinitionEClass, RenderingDefinition.class, "RenderingDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getRenderingDefinition_Rendering(), this.getRenderingUsage(), null, "rendering", null, 0, -1, RenderingDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(renderingUsageEClass, RenderingUsage.class, "RenderingUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getRenderingUsage_RenderingDefinition(), this.getRenderingDefinition(), null, "renderingDefinition", null, 0, 1, RenderingUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(requirementConstraintMembershipEClass, RequirementConstraintMembership.class, "RequirementConstraintMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getRequirementConstraintMembership_Kind(), this.getRequirementConstraintKind(), "kind", null, 1, 1, RequirementConstraintMembership.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getRequirementConstraintMembership_OwnedConstraint(), this.getConstraintUsage(), null, "ownedConstraint", null, 1, 1, RequirementConstraintMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getRequirementConstraintMembership_ReferencedConstraint(), this.getConstraintUsage(), null, "referencedConstraint", null, 1, 1, RequirementConstraintMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(requirementDefinitionEClass, RequirementDefinition.class, "RequirementDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getRequirementDefinition_ReqId(), ecorePackage.getEString(), "reqId", null, 0, 1, RequirementDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getRequirementDefinition_Text(), ecorePackage.getEString(), "text", null, 0, -1, RequirementDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getRequirementDefinition_ActorParameter(), this.getPartUsage(), null, "actorParameter", null, 0, -1, RequirementDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRequirementDefinition_AssumedConstraint(), this.getConstraintUsage(), null, "assumedConstraint", null, 0, -1, RequirementDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRequirementDefinition_FramedConcern(), this.getConcernUsage(), null, "framedConcern", null, 0, -1, RequirementDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRequirementDefinition_RequiredConstraint(), this.getConstraintUsage(), null, "requiredConstraint", null, 0, -1, RequirementDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRequirementDefinition_StakeholderParameter(), this.getPartUsage(), null, "stakeholderParameter", null, 0, -1, RequirementDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRequirementDefinition_SubjectParameter(), this.getUsage(), null, "subjectParameter", null, 1, 1, RequirementDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(requirementUsageEClass, RequirementUsage.class, "RequirementUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getRequirementUsage_ReqId(), ecorePackage.getEString(), "reqId", null, 0, 1, RequirementUsage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getRequirementUsage_Text(), ecorePackage.getEString(), "text", null, 0, -1, RequirementUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getRequirementUsage_ActorParameter(), this.getPartUsage(), null, "actorParameter", null, 0, -1, RequirementUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRequirementUsage_AssumedConstraint(), this.getConstraintUsage(), null, "assumedConstraint", null, 0, -1, RequirementUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRequirementUsage_FramedConcern(), this.getConcernUsage(), null, "framedConcern", null, 0, -1, RequirementUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRequirementUsage_RequiredConstraint(), this.getConstraintUsage(), null, "requiredConstraint", null, 0, -1, RequirementUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRequirementUsage_RequirementDefinition(), this.getRequirementDefinition(), null, "requirementDefinition", null, 0, 1, RequirementUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getRequirementUsage_StakeholderParameter(), this.getPartUsage(), null, "stakeholderParameter", null, 0, -1, RequirementUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getRequirementUsage_SubjectParameter(), this.getUsage(), null, "subjectParameter", null, 1, 1, RequirementUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(requirementVerificationMembershipEClass, RequirementVerificationMembership.class, "RequirementVerificationMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getRequirementVerificationMembership_OwnedRequirement(), this.getRequirementUsage(), null, "ownedRequirement", null, 1, 1, RequirementVerificationMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getRequirementVerificationMembership_VerifiedRequirement(), this.getRequirementUsage(), null, "verifiedRequirement", null, 1, 1, RequirementVerificationMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(resultExpressionMembershipEClass, ResultExpressionMembership.class, "ResultExpressionMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getResultExpressionMembership_OwnedResultExpression(), this.getExpression(), null, "ownedResultExpression", null, 1, 1, ResultExpressionMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(returnParameterMembershipEClass, ReturnParameterMembership.class, "ReturnParameterMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(satisfyRequirementUsageEClass, SatisfyRequirementUsage.class, "SatisfyRequirementUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSatisfyRequirementUsage_SatisfiedRequirement(), this.getRequirementUsage(), null, "satisfiedRequirement", null, 1, 1, SatisfyRequirementUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getSatisfyRequirementUsage_SatisfyingFeature(), this.getFeature(), null, "satisfyingFeature", null, 1, 1, SatisfyRequirementUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(selectExpressionEClass, SelectExpression.class, "SelectExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(sendActionUsageEClass, SendActionUsage.class, "SendActionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSendActionUsage_PayloadArgument(), this.getExpression(), null, "payloadArgument", null, 1, 1, SendActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getSendActionUsage_ReceiverArgument(), this.getExpression(), null, "receiverArgument", null, 0, 1, SendActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getSendActionUsage_SenderArgument(), this.getExpression(), null, "senderArgument", null, 0, 1, SendActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(specializationEClass, Specialization.class, "Specialization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSpecialization_General(), this.getType(), null, "general", null, 1, 1, Specialization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getSpecialization_OwningType(), this.getType(), this.getType_OwnedSpecialization(), "owningType", null, 0, 1, Specialization.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getSpecialization_Specific(), this.getType(), null, "specific", null, 1, 1, Specialization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(stakeholderMembershipEClass, StakeholderMembership.class, "StakeholderMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getStakeholderMembership_OwnedStakeholderParameter(), this.getPartUsage(), null, "ownedStakeholderParameter", null, 1, 1, StakeholderMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(stateDefinitionEClass, StateDefinition.class, "StateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStateDefinition_IsParallel(), ecorePackage.getEBoolean(), "isParallel", "false", 1, 1, StateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getStateDefinition_DoAction(), this.getActionUsage(), null, "doAction", null, 0, 1, StateDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getStateDefinition_EntryAction(), this.getActionUsage(), null, "entryAction", null, 0, 1, StateDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getStateDefinition_ExitAction(), this.getActionUsage(), null, "exitAction", null, 0, 1, StateDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getStateDefinition_State(), this.getStateUsage(), null, "state", null, 0, -1, StateDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(stateSubactionMembershipEClass, StateSubactionMembership.class, "StateSubactionMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStateSubactionMembership_Kind(), this.getStateSubactionKind(), "kind", null, 1, 1, StateSubactionMembership.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getStateSubactionMembership_Action(), this.getActionUsage(), null, "action", null, 1, 1, StateSubactionMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(stateUsageEClass, StateUsage.class, "StateUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStateUsage_IsParallel(), ecorePackage.getEBoolean(), "isParallel", "false", 1, 1, StateUsage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getStateUsage_DoAction(), this.getActionUsage(), null, "doAction", null, 0, 1, StateUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getStateUsage_EntryAction(), this.getActionUsage(), null, "entryAction", null, 0, 1, StateUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getStateUsage_ExitAction(), this.getActionUsage(), null, "exitAction", null, 0, 1, StateUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getStateUsage_StateDefinition(), this.getBehavior(), null, "stateDefinition", null, 0, -1, StateUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + op = initEOperation(getStateUsage__IsSubstateUsage__boolean(), ecorePackage.getEBoolean(), "isSubstateUsage", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEBoolean(), "isParallel", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(stepEClass, Step.class, "Step", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getStep_Behavior(), this.getBehavior(), null, "behavior", null, 0, -1, Step.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getStep_Parameter(), this.getFeature(), null, "parameter", null, 0, -1, Step.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(structureEClass, Structure.class, "Structure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(subclassificationEClass, Subclassification.class, "Subclassification", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSubclassification_OwningClassifier(), this.getClassifier(), this.getClassifier_OwnedSubclassification(), "owningClassifier", null, 0, 1, Subclassification.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getSubclassification_Subclassifier(), this.getClassifier(), null, "subclassifier", null, 1, 1, Subclassification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getSubclassification_Superclassifier(), this.getClassifier(), null, "superclassifier", null, 1, 1, Subclassification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(subjectMembershipEClass, SubjectMembership.class, "SubjectMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSubjectMembership_OwnedSubjectParameter(), this.getUsage(), null, "ownedSubjectParameter", null, 1, 1, SubjectMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(subsettingEClass, Subsetting.class, "Subsetting", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSubsetting_OwningFeature(), this.getFeature(), this.getFeature_OwnedSubsetting(), "owningFeature", null, 0, 1, Subsetting.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getSubsetting_SubsettedFeature(), this.getFeature(), null, "subsettedFeature", null, 1, 1, Subsetting.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getSubsetting_SubsettingFeature(), this.getFeature(), null, "subsettingFeature", null, 1, 1, Subsetting.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(successionEClass, Succession.class, "Succession", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(successionAsUsageEClass, SuccessionAsUsage.class, "SuccessionAsUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(successionFlowEClass, SuccessionFlow.class, "SuccessionFlow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(successionFlowUsageEClass, SuccessionFlowUsage.class, "SuccessionFlowUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(terminateActionUsageEClass, TerminateActionUsage.class, "TerminateActionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTerminateActionUsage_TerminatedOccurrenceArgument(), this.getExpression(), null, "terminatedOccurrenceArgument", null, 0, 1, TerminateActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(textualRepresentationEClass, TextualRepresentation.class, "TextualRepresentation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getTextualRepresentation_Body(), ecorePackage.getEString(), "body", null, 1, 1, TextualRepresentation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getTextualRepresentation_Language(), ecorePackage.getEString(), "language", null, 1, 1, TextualRepresentation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getTextualRepresentation_RepresentedElement(), this.getElement(), this.getElement_TextualRepresentation(), "representedElement", null, 1, 1, TextualRepresentation.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(transitionFeatureMembershipEClass, TransitionFeatureMembership.class, "TransitionFeatureMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getTransitionFeatureMembership_Kind(), this.getTransitionFeatureKind(), "kind", null, 1, 1, TransitionFeatureMembership.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getTransitionFeatureMembership_TransitionFeature(), this.getStep(), null, "transitionFeature", null, 1, 1, TransitionFeatureMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(transitionUsageEClass, TransitionUsage.class, "TransitionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTransitionUsage_EffectAction(), this.getActionUsage(), null, "effectAction", null, 0, -1, TransitionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getTransitionUsage_GuardExpression(), this.getExpression(), null, "guardExpression", null, 0, -1, TransitionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getTransitionUsage_Source(), this.getActionUsage(), null, "source", null, 1, 1, TransitionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getTransitionUsage_Succession(), this.getSuccession(), null, "succession", null, 1, 1, TransitionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getTransitionUsage_Target(), this.getActionUsage(), null, "target", null, 1, 1, TransitionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getTransitionUsage_TriggerAction(), this.getAcceptActionUsage(), null, "triggerAction", null, 0, -1, TransitionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEOperation(getTransitionUsage__SourceFeature(), this.getFeature(), "sourceFeature", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getTransitionUsage__TriggerPayloadParameter(), this.getReferenceUsage(), "triggerPayloadParameter", 0, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(triggerInvocationExpressionEClass, TriggerInvocationExpression.class, "TriggerInvocationExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getTriggerInvocationExpression_Kind(), this.getTriggerKind(), "kind", null, 1, 1, TriggerInvocationExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(typeEClass, Type.class, "Type", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getType_IsAbstract(), ecorePackage.getEBoolean(), "isAbstract", "false", 1, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getType_IsConjugated(), ecorePackage.getEBoolean(), "isConjugated", null, 1, 1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEAttribute(getType_IsSufficient(), ecorePackage.getEBoolean(), "isSufficient", "false", 1, 1, Type.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getType_DifferencingType(), this.getType(), null, "differencingType", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_DirectedFeature(), this.getFeature(), null, "directedFeature", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_EndFeature(), this.getFeature(), null, "endFeature", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_Feature(), this.getFeature(), null, "feature", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_FeatureMembership(), this.getFeatureMembership(), null, "featureMembership", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_InheritedFeature(), this.getFeature(), null, "inheritedFeature", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_InheritedMembership(), this.getMembership(), null, "inheritedMembership", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_Input(), this.getFeature(), null, "input", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_IntersectingType(), this.getType(), null, "intersectingType", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_Multiplicity(), this.getMultiplicity(), null, "multiplicity", null, 0, 1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getType_Output(), this.getFeature(), null, "output", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_OwnedConjugator(), this.getConjugation(), this.getConjugation_OwningType(), "ownedConjugator", null, 0, 1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getType_OwnedDifferencing(), this.getDifferencing(), this.getDifferencing_TypeDifferenced(), "ownedDifferencing", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_OwnedDisjoining(), this.getDisjoining(), this.getDisjoining_OwningType(), "ownedDisjoining", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getType_OwnedEndFeature(), this.getFeature(), this.getFeature_EndOwningType(), "ownedEndFeature", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_OwnedFeature(), this.getFeature(), this.getFeature_OwningType(), "ownedFeature", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_OwnedFeatureMembership(), this.getFeatureMembership(), this.getFeatureMembership_OwningType(), "ownedFeatureMembership", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_OwnedIntersecting(), this.getIntersecting(), this.getIntersecting_TypeIntersected(), "ownedIntersecting", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_OwnedSpecialization(), this.getSpecialization(), this.getSpecialization_OwningType(), "ownedSpecialization", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_OwnedUnioning(), this.getUnioning(), this.getUnioning_TypeUnioned(), "ownedUnioning", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getType_UnioningType(), this.getType(), null, "unioningType", null, 0, -1, Type.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + op = initEOperation(getType__AllRedefinedFeaturesOf__Membership(), this.getFeature(), "allRedefinedFeaturesOf", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getMembership(), "membership", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getType__AllSupertypes(), this.getType(), "allSupertypes", 0, -1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getType__DirectionOf__Feature(), this.getFeatureDirectionKind(), "directionOf", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getFeature(), "feature", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getType__DirectionOfExcluding__Feature_EList(), this.getFeatureDirectionKind(), "directionOfExcluding", 0, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getFeature(), "feature", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getType(), "excluded", 0, -1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getType__InheritableMemberships__EList_EList_boolean(), this.getMembership(), "inheritableMemberships", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getNamespace(), "excludedNamespaces", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getType(), "excludedTypes", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEBoolean(), "excludeImplied", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getType__InheritedMemberships__EList_EList_boolean(), this.getMembership(), "inheritedMemberships", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getNamespace(), "excludedNamespaces", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getType(), "excludedTypes", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEBoolean(), "excludeImplied", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getType__IsCompatibleWith__Type(), ecorePackage.getEBoolean(), "isCompatibleWith", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getType(), "otherType", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEOperation(getType__Multiplicities(), this.getMultiplicity(), "multiplicities", 0, -1, IS_UNIQUE, IS_ORDERED); + + op = initEOperation(getType__NonPrivateMemberships__EList_EList_boolean(), this.getMembership(), "nonPrivateMemberships", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getNamespace(), "excludedNamespaces", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getType(), "excludedTypes", 0, -1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEBoolean(), "excludeImplied", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getType__RemoveRedefinedFeatures__EList(), this.getMembership(), "removeRedefinedFeatures", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getMembership(), "memberships", 0, -1, IS_UNIQUE, IS_ORDERED); + + op = initEOperation(getType__Specializes__Type(), ecorePackage.getEBoolean(), "specializes", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getType(), "supertype", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getType__SpecializesFromLibrary__String(), ecorePackage.getEBoolean(), "specializesFromLibrary", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, ecorePackage.getEString(), "libraryTypeName", 1, 1, IS_UNIQUE, !IS_ORDERED); + + op = initEOperation(getType__Supertypes__boolean(), this.getType(), "supertypes", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, ecorePackage.getEBoolean(), "excludeImplied", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(typeFeaturingEClass, TypeFeaturing.class, "TypeFeaturing", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getTypeFeaturing_FeatureOfType(), this.getFeature(), null, "featureOfType", null, 1, 1, TypeFeaturing.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getTypeFeaturing_FeaturingType(), this.getType(), null, "featuringType", null, 1, 1, TypeFeaturing.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getTypeFeaturing_OwningFeatureOfType(), this.getFeature(), this.getFeature_OwnedTypeFeaturing(), "owningFeatureOfType", null, 0, 1, TypeFeaturing.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(unioningEClass, Unioning.class, "Unioning", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getUnioning_TypeUnioned(), this.getType(), this.getType_OwnedUnioning(), "typeUnioned", null, 1, 1, Unioning.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getUnioning_UnioningType(), this.getType(), null, "unioningType", null, 1, 1, Unioning.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(usageEClass, Usage.class, "Usage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getUsage_IsReference(), ecorePackage.getEBoolean(), "isReference", null, 1, 1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEAttribute(getUsage_IsVariation(), ecorePackage.getEBoolean(), "isVariation", null, 1, 1, Usage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEAttribute(getUsage_MayTimeVary(), ecorePackage.getEBoolean(), "mayTimeVary", null, 1, 1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getUsage_Definition(), this.getClassifier(), null, "definition", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_DirectedUsage(), this.getUsage(), null, "directedUsage", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedAction(), this.getActionUsage(), null, "nestedAction", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedAllocation(), this.getAllocationUsage(), null, "nestedAllocation", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedAnalysisCase(), this.getAnalysisCaseUsage(), null, "nestedAnalysisCase", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedAttribute(), this.getAttributeUsage(), null, "nestedAttribute", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedCalculation(), this.getCalculationUsage(), null, "nestedCalculation", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedCase(), this.getCaseUsage(), null, "nestedCase", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedConcern(), this.getConcernUsage(), null, "nestedConcern", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getUsage_NestedConnection(), this.getConnectorAsUsage(), null, "nestedConnection", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedConstraint(), this.getConstraintUsage(), null, "nestedConstraint", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedEnumeration(), this.getEnumerationUsage(), null, "nestedEnumeration", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedFlow(), this.getFlowUsage(), null, "nestedFlow", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getUsage_NestedInterface(), this.getInterfaceUsage(), null, "nestedInterface", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedItem(), this.getItemUsage(), null, "nestedItem", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedMetadata(), this.getMetadataUsage(), null, "nestedMetadata", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedOccurrence(), this.getOccurrenceUsage(), null, "nestedOccurrence", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedPart(), this.getPartUsage(), null, "nestedPart", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedPort(), this.getPortUsage(), null, "nestedPort", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedReference(), this.getReferenceUsage(), null, "nestedReference", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedRendering(), this.getRenderingUsage(), null, "nestedRendering", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedRequirement(), this.getRequirementUsage(), null, "nestedRequirement", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedState(), this.getStateUsage(), null, "nestedState", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedTransition(), this.getTransitionUsage(), null, "nestedTransition", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getUsage_NestedUsage(), this.getUsage(), this.getUsage_OwningUsage(), "nestedUsage", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedUseCase(), this.getUseCaseUsage(), null, "nestedUseCase", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedVerificationCase(), this.getVerificationCaseUsage(), null, "nestedVerificationCase", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedView(), this.getViewUsage(), null, "nestedView", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_NestedViewpoint(), this.getViewpointUsage(), null, "nestedViewpoint", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_OwningDefinition(), this.getDefinition(), this.getDefinition_OwnedUsage(), "owningDefinition", null, 0, 1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getUsage_OwningUsage(), this.getUsage(), this.getUsage_NestedUsage(), "owningUsage", null, 0, 1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getUsage_Usage(), this.getUsage(), null, "usage", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUsage_Variant(), this.getUsage(), null, "variant", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getUsage_VariantMembership(), this.getVariantMembership(), null, "variantMembership", null, 0, -1, Usage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEOperation(getUsage__ReferencedFeatureTarget(), this.getFeature(), "referencedFeatureTarget", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(useCaseDefinitionEClass, UseCaseDefinition.class, "UseCaseDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getUseCaseDefinition_IncludedUseCase(), this.getUseCaseUsage(), null, "includedUseCase", null, 0, -1, UseCaseDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(useCaseUsageEClass, UseCaseUsage.class, "UseCaseUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getUseCaseUsage_IncludedUseCase(), this.getUseCaseUsage(), null, "includedUseCase", null, 0, -1, UseCaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getUseCaseUsage_UseCaseDefinition(), this.getUseCaseDefinition(), null, "useCaseDefinition", null, 0, 1, UseCaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(variantMembershipEClass, VariantMembership.class, "VariantMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVariantMembership_OwnedVariantUsage(), this.getUsage(), null, "ownedVariantUsage", null, 1, 1, VariantMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(verificationCaseDefinitionEClass, VerificationCaseDefinition.class, "VerificationCaseDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVerificationCaseDefinition_VerifiedRequirement(), this.getRequirementUsage(), null, "verifiedRequirement", null, 0, -1, VerificationCaseDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(verificationCaseUsageEClass, VerificationCaseUsage.class, "VerificationCaseUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVerificationCaseUsage_VerificationCaseDefinition(), this.getVerificationCaseDefinition(), null, "verificationCaseDefinition", null, 0, 1, VerificationCaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getVerificationCaseUsage_VerifiedRequirement(), this.getRequirementUsage(), null, "verifiedRequirement", null, 0, -1, VerificationCaseUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(viewDefinitionEClass, ViewDefinition.class, "ViewDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getViewDefinition_SatisfiedViewpoint(), this.getViewpointUsage(), null, "satisfiedViewpoint", null, 0, -1, ViewDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getViewDefinition_View(), this.getViewUsage(), null, "view", null, 0, -1, ViewDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getViewDefinition_ViewCondition(), this.getExpression(), null, "viewCondition", null, 0, -1, ViewDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getViewDefinition_ViewRendering(), this.getRenderingUsage(), null, "viewRendering", null, 0, 1, ViewDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(viewpointDefinitionEClass, ViewpointDefinition.class, "ViewpointDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getViewpointDefinition_ViewpointStakeholder(), this.getPartUsage(), null, "viewpointStakeholder", null, 0, -1, ViewpointDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(viewpointUsageEClass, ViewpointUsage.class, "ViewpointUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getViewpointUsage_ViewpointDefinition(), this.getViewpointDefinition(), null, "viewpointDefinition", null, 0, 1, ViewpointUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getViewpointUsage_ViewpointStakeholder(), this.getPartUsage(), null, "viewpointStakeholder", null, 0, -1, ViewpointUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + + initEClass(viewRenderingMembershipEClass, ViewRenderingMembership.class, "ViewRenderingMembership", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getViewRenderingMembership_OwnedRendering(), this.getRenderingUsage(), null, "ownedRendering", null, 1, 1, ViewRenderingMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getViewRenderingMembership_ReferencedRendering(), this.getRenderingUsage(), null, "referencedRendering", null, 1, 1, ViewRenderingMembership.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + initEClass(viewUsageEClass, ViewUsage.class, "ViewUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getViewUsage_ExposedElement(), this.getElement(), null, "exposedElement", null, 0, -1, ViewUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getViewUsage_SatisfiedViewpoint(), this.getViewpointUsage(), null, "satisfiedViewpoint", null, 0, -1, ViewUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getViewUsage_ViewCondition(), this.getExpression(), null, "viewCondition", null, 0, -1, ViewUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEReference(getViewUsage_ViewDefinition(), this.getViewDefinition(), null, "viewDefinition", null, 0, 1, ViewUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getViewUsage_ViewRendering(), this.getRenderingUsage(), null, "viewRendering", null, 0, 1, ViewUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + op = initEOperation(getViewUsage__IncludeAsExposed__Element(), ecorePackage.getEBoolean(), "includeAsExposed", 1, 1, IS_UNIQUE, !IS_ORDERED); + addEParameter(op, this.getElement(), "element", 1, 1, IS_UNIQUE, !IS_ORDERED); + + initEClass(whileLoopActionUsageEClass, WhileLoopActionUsage.class, "WhileLoopActionUsage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getWhileLoopActionUsage_UntilArgument(), this.getExpression(), null, "untilArgument", null, 0, 1, WhileLoopActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + initEReference(getWhileLoopActionUsage_WhileArgument(), this.getExpression(), null, "whileArgument", null, 1, 1, WhileLoopActionUsage.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); + + // Initialize enums and add enum literals + initEEnum(featureDirectionKindEEnum, FeatureDirectionKind.class, "FeatureDirectionKind"); + addEEnumLiteral(featureDirectionKindEEnum, FeatureDirectionKind.IN); + addEEnumLiteral(featureDirectionKindEEnum, FeatureDirectionKind.INOUT); + addEEnumLiteral(featureDirectionKindEEnum, FeatureDirectionKind.OUT); + + initEEnum(portionKindEEnum, PortionKind.class, "PortionKind"); + addEEnumLiteral(portionKindEEnum, PortionKind.TIMESLICE); + addEEnumLiteral(portionKindEEnum, PortionKind.SNAPSHOT); + + initEEnum(requirementConstraintKindEEnum, RequirementConstraintKind.class, "RequirementConstraintKind"); + addEEnumLiteral(requirementConstraintKindEEnum, RequirementConstraintKind.ASSUMPTION); + addEEnumLiteral(requirementConstraintKindEEnum, RequirementConstraintKind.REQUIREMENT); + + initEEnum(stateSubactionKindEEnum, StateSubactionKind.class, "StateSubactionKind"); + addEEnumLiteral(stateSubactionKindEEnum, StateSubactionKind.ENTRY); + addEEnumLiteral(stateSubactionKindEEnum, StateSubactionKind.DO); + addEEnumLiteral(stateSubactionKindEEnum, StateSubactionKind.EXIT); + + initEEnum(transitionFeatureKindEEnum, TransitionFeatureKind.class, "TransitionFeatureKind"); + addEEnumLiteral(transitionFeatureKindEEnum, TransitionFeatureKind.TRIGGER); + addEEnumLiteral(transitionFeatureKindEEnum, TransitionFeatureKind.GUARD); + addEEnumLiteral(transitionFeatureKindEEnum, TransitionFeatureKind.EFFECT); + + initEEnum(triggerKindEEnum, TriggerKind.class, "TriggerKind"); + addEEnumLiteral(triggerKindEEnum, TriggerKind.WHEN); + addEEnumLiteral(triggerKindEEnum, TriggerKind.AT); + addEEnumLiteral(triggerKindEEnum, TriggerKind.AFTER); + + initEEnum(visibilityKindEEnum, VisibilityKind.class, "VisibilityKind"); + addEEnumLiteral(visibilityKindEEnum, VisibilityKind.PRIVATE); + addEEnumLiteral(visibilityKindEEnum, VisibilityKind.PROTECTED); + addEEnumLiteral(visibilityKindEEnum, VisibilityKind.PUBLIC); + + // Create resource + createResource(eNS_URI); + + // Create annotations + // http://www.eclipse.org/emf/2002/Ecore + createEcoreAnnotations(); + // http://www.omg.org/spec/SysML + createSysMLAnnotations(); + // http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName + createEmofAnnotations(); + // subsets + createSubsetsAnnotations(); + // redefines + createRedefinesAnnotations(); + // union + createUnionAnnotations(); + } + + /** + * Initializes the annotations for http://www.eclipse.org/emf/2002/Ecore. + * + * + * @generated + */ + protected void createEcoreAnnotations() { + String source = "http://www.eclipse.org/emf/2002/Ecore"; + addAnnotation + (this, + source, + new String[] { + "settingDelegates", "http://www.omg.org/spec/SysML", + "invocationDelegates", "http://www.omg.org/spec/SysML" + }); + } + + /** + * Initializes the annotations for http://www.omg.org/spec/SysML. + * + * + * @generated + */ + protected void createSysMLAnnotations() { + String source = "http://www.omg.org/spec/SysML"; + addAnnotation + (getAcceptActionUsage__IsTriggerAction(), + source, + new String[] { + }); + addAnnotation + (getAcceptActionUsage_PayloadArgument(), + source, + new String[] { + }); + addAnnotation + (getAcceptActionUsage_PayloadParameter(), + source, + new String[] { + }); + addAnnotation + (getAcceptActionUsage_ReceiverArgument(), + source, + new String[] { + }); + addAnnotation + (getActionDefinition_Action(), + source, + new String[] { + }); + addAnnotation + (getActionUsage__Argument__int(), + source, + new String[] { + }); + addAnnotation + (getActionUsage__InputParameter__int(), + source, + new String[] { + }); + addAnnotation + (getActionUsage__InputParameters(), + source, + new String[] { + }); + addAnnotation + (getActionUsage__IsSubactionUsage(), + source, + new String[] { + }); + addAnnotation + (getActionUsage_ActionDefinition(), + source, + new String[] { + }); + addAnnotation + (getActorMembership_OwnedActorParameter(), + source, + new String[] { + }); + addAnnotation + (getAllocationDefinition_Allocation(), + source, + new String[] { + }); + addAnnotation + (getAllocationUsage_AllocationDefinition(), + source, + new String[] { + }); + addAnnotation + (getAnalysisCaseDefinition_ResultExpression(), + source, + new String[] { + }); + addAnnotation + (getAnalysisCaseUsage_AnalysisCaseDefinition(), + source, + new String[] { + }); + addAnnotation + (getAnalysisCaseUsage_ResultExpression(), + source, + new String[] { + }); + addAnnotation + (getAnnotatingElement_AnnotatedElement(), + source, + new String[] { + }); + addAnnotation + (getAnnotatingElement_Annotation(), + source, + new String[] { + }); + addAnnotation + (getAnnotatingElement_OwnedAnnotatingRelationship(), + source, + new String[] { + }); + addAnnotation + (getAnnotatingElement_OwningAnnotatingRelationship(), + source, + new String[] { + }); + addAnnotation + (getAnnotation_AnnotatingElement(), + source, + new String[] { + }); + addAnnotation + (getAnnotation_OwnedAnnotatingElement(), + source, + new String[] { + }); + addAnnotation + (getAnnotation_OwningAnnotatedElement(), + source, + new String[] { + }); + addAnnotation + (getAnnotation_OwningAnnotatingElement(), + source, + new String[] { + }); + addAnnotation + (getAssertConstraintUsage_AssertedConstraint(), + source, + new String[] { + }); + addAnnotation + (getAssignmentActionUsage_Referent(), + source, + new String[] { + }); + addAnnotation + (getAssignmentActionUsage_TargetArgument(), + source, + new String[] { + }); + addAnnotation + (getAssignmentActionUsage_ValueExpression(), + source, + new String[] { + }); + addAnnotation + (getAssociation_AssociationEnd(), + source, + new String[] { + }); + addAnnotation + (getAssociation_RelatedType(), + source, + new String[] { + }); + addAnnotation + (getAssociation_SourceType(), + source, + new String[] { + }); + addAnnotation + (getAssociation_TargetType(), + source, + new String[] { + }); + addAnnotation + (getAttributeUsage_AttributeDefinition(), + source, + new String[] { + }); + addAnnotation + (getBehavior_Parameter(), + source, + new String[] { + }); + addAnnotation + (getBehavior_Step(), + source, + new String[] { + }); + addAnnotation + (getBooleanExpression_Predicate(), + source, + new String[] { + }); + addAnnotation + (getCalculationDefinition_Calculation(), + source, + new String[] { + }); + addAnnotation + (getCalculationUsage_CalculationDefinition(), + source, + new String[] { + }); + addAnnotation + (getCaseDefinition_ActorParameter(), + source, + new String[] { + }); + addAnnotation + (getCaseDefinition_ObjectiveRequirement(), + source, + new String[] { + }); + addAnnotation + (getCaseDefinition_SubjectParameter(), + source, + new String[] { + }); + addAnnotation + (getCaseUsage_ActorParameter(), + source, + new String[] { + }); + addAnnotation + (getCaseUsage_CaseDefinition(), + source, + new String[] { + }); + addAnnotation + (getCaseUsage_ObjectiveRequirement(), + source, + new String[] { + }); + addAnnotation + (getCaseUsage_SubjectParameter(), + source, + new String[] { + }); + addAnnotation + (getClassifier_OwnedSubclassification(), + source, + new String[] { + }); + addAnnotation + (getConcernUsage_ConcernDefinition(), + source, + new String[] { + }); + addAnnotation + (getConjugatedPortDefinition_OriginalPortDefinition(), + source, + new String[] { + }); + addAnnotation + (getConjugatedPortDefinition_OwnedPortConjugator(), + source, + new String[] { + }); + addAnnotation + (getConjugatedPortTyping_PortDefinition(), + source, + new String[] { + }); + addAnnotation + (getConjugation_OwningType(), + source, + new String[] { + }); + addAnnotation + (getConnectionDefinition_ConnectionEnd(), + source, + new String[] { + }); + addAnnotation + (getConnectionUsage_ConnectionDefinition(), + source, + new String[] { + }); + addAnnotation + (getConnector_Association(), + source, + new String[] { + }); + addAnnotation + (getConnector_ConnectorEnd(), + source, + new String[] { + }); + addAnnotation + (getConnector_DefaultFeaturingType(), + source, + new String[] { + }); + addAnnotation + (getConnector_RelatedFeature(), + source, + new String[] { + }); + addAnnotation + (getConnector_SourceFeature(), + source, + new String[] { + }); + addAnnotation + (getConnector_TargetFeature(), + source, + new String[] { + }); + addAnnotation + (getConstraintUsage_ConstraintDefinition(), + source, + new String[] { + }); + addAnnotation + (getControlNode__MultiplicityHasBounds__Multiplicity_int_int(), + source, + new String[] { + }); + addAnnotation + (getCrossSubsetting_CrossingFeature(), + source, + new String[] { + }); + addAnnotation + (getDefinition_DirectedUsage(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedAction(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedAllocation(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedAnalysisCase(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedAttribute(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedCalculation(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedCase(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedConcern(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedConnection(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedConstraint(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedEnumeration(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedFlow(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedInterface(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedItem(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedMetadata(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedOccurrence(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedPart(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedPort(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedReference(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedRendering(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedRequirement(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedState(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedTransition(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedUsage(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedUseCase(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedVerificationCase(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedView(), + source, + new String[] { + }); + addAnnotation + (getDefinition_OwnedViewpoint(), + source, + new String[] { + }); + addAnnotation + (getDefinition_Usage(), + source, + new String[] { + }); + addAnnotation + (getDefinition_Variant(), + source, + new String[] { + }); + addAnnotation + (getDefinition_VariantMembership(), + source, + new String[] { + }); + addAnnotation + (getDifferencing_TypeDifferenced(), + source, + new String[] { + }); + addAnnotation + (getDisjoining_OwningType(), + source, + new String[] { + }); + addAnnotation + (getDocumentation_DocumentedElement(), + source, + new String[] { + }); + addAnnotation + (getElement__EffectiveName(), + source, + new String[] { + }); + addAnnotation + (getElement__EffectiveShortName(), + source, + new String[] { + }); + addAnnotation + (getElement__EscapedName(), + source, + new String[] { + }); + addAnnotation + (getElement__LibraryNamespace(), + source, + new String[] { + }); + addAnnotation + (getElement__Path(), + source, + new String[] { + }); + addAnnotation + (getElement_IsLibraryElement(), + source, + new String[] { + }); + addAnnotation + (getElement_Name(), + source, + new String[] { + }); + addAnnotation + (getElement_QualifiedName(), + source, + new String[] { + }); + addAnnotation + (getElement_ShortName(), + source, + new String[] { + }); + addAnnotation + (getElement_Documentation(), + source, + new String[] { + }); + addAnnotation + (getElement_OwnedAnnotation(), + source, + new String[] { + }); + addAnnotation + (getElement_OwnedElement(), + source, + new String[] { + }); + addAnnotation + (getElement_Owner(), + source, + new String[] { + }); + addAnnotation + (getElement_OwningMembership(), + source, + new String[] { + }); + addAnnotation + (getElement_OwningNamespace(), + source, + new String[] { + }); + addAnnotation + (getElement_TextualRepresentation(), + source, + new String[] { + }); + addAnnotation + (getElementFilterMembership_Condition(), + source, + new String[] { + }); + addAnnotation + (getEnumerationDefinition_EnumeratedValue(), + source, + new String[] { + }); + addAnnotation + (getEnumerationUsage_EnumerationDefinition(), + source, + new String[] { + }); + addAnnotation + (getEventOccurrenceUsage_EventOccurrence(), + source, + new String[] { + }); + addAnnotation + (getExhibitStateUsage_ExhibitedState(), + source, + new String[] { + }); + addAnnotation + (getExpression__CheckCondition__Element(), + source, + new String[] { + }); + addAnnotation + (getExpression__Evaluate__Element(), + source, + new String[] { + }); + addAnnotation + (getExpression__ModelLevelEvaluable__EList(), + source, + new String[] { + }); + addAnnotation + (getExpression_IsModelLevelEvaluable(), + source, + new String[] { + }); + addAnnotation + (getExpression_Function(), + source, + new String[] { + }); + addAnnotation + (getExpression_Result(), + source, + new String[] { + }); + addAnnotation + (getFeature__AllRedefinedFeatures(), + source, + new String[] { + }); + addAnnotation + (getFeature__AsCartesianProduct(), + source, + new String[] { + }); + addAnnotation + (getFeature__CanAccess__Feature(), + source, + new String[] { + }); + addAnnotation + (getFeature__DirectionFor__Type(), + source, + new String[] { + }); + addAnnotation + (getFeature__IsCartesianProduct(), + source, + new String[] { + }); + addAnnotation + (getFeature__IsFeaturedWithin__Type(), + source, + new String[] { + }); + addAnnotation + (getFeature__IsFeaturingType__Type(), + source, + new String[] { + }); + addAnnotation + (getFeature__IsOwnedCrossFeature(), + source, + new String[] { + }); + addAnnotation + (getFeature__NamingFeature(), + source, + new String[] { + }); + addAnnotation + (getFeature__OwnedCrossFeature(), + source, + new String[] { + }); + addAnnotation + (getFeature__Redefines__Feature(), + source, + new String[] { + }); + addAnnotation + (getFeature__RedefinesFromLibrary__String(), + source, + new String[] { + }); + addAnnotation + (getFeature__SubsetsChain__Feature_Feature(), + source, + new String[] { + }); + addAnnotation + (getFeature__TypingFeatures(), + source, + new String[] { + }); + addAnnotation + (getFeature_ChainingFeature(), + source, + new String[] { + }); + addAnnotation + (getFeature_CrossFeature(), + source, + new String[] { + }); + addAnnotation + (getFeature_EndOwningType(), + source, + new String[] { + }); + addAnnotation + (getFeature_FeatureTarget(), + source, + new String[] { + }); + addAnnotation + (getFeature_FeaturingType(), + source, + new String[] { + }); + addAnnotation + (getFeature_OwnedCrossSubsetting(), + source, + new String[] { + }); + addAnnotation + (getFeature_OwnedFeatureChaining(), + source, + new String[] { + }); + addAnnotation + (getFeature_OwnedFeatureInverting(), + source, + new String[] { + }); + addAnnotation + (getFeature_OwnedRedefinition(), + source, + new String[] { + }); + addAnnotation + (getFeature_OwnedReferenceSubsetting(), + source, + new String[] { + }); + addAnnotation + (getFeature_OwnedSubsetting(), + source, + new String[] { + }); + addAnnotation + (getFeature_OwnedTypeFeaturing(), + source, + new String[] { + }); + addAnnotation + (getFeature_OwnedTyping(), + source, + new String[] { + }); + addAnnotation + (getFeature_OwningFeatureMembership(), + source, + new String[] { + }); + addAnnotation + (getFeature_OwningType(), + source, + new String[] { + }); + addAnnotation + (getFeature_Type(), + source, + new String[] { + }); + addAnnotation + (getFeatureChainExpression__SourceTargetFeature(), + source, + new String[] { + }); + addAnnotation + (getFeatureChainExpression_TargetFeature(), + source, + new String[] { + }); + addAnnotation + (getFeatureChaining_FeatureChained(), + source, + new String[] { + }); + addAnnotation + (getFeatureInverting_OwningFeature(), + source, + new String[] { + }); + addAnnotation + (getFeatureMembership_OwnedMemberFeature(), + source, + new String[] { + }); + addAnnotation + (getFeatureMembership_OwningType(), + source, + new String[] { + }); + addAnnotation + (getFeatureReferenceExpression_Referent(), + source, + new String[] { + }); + addAnnotation + (getFeatureTyping_OwningFeature(), + source, + new String[] { + }); + addAnnotation + (getFeatureValue_FeatureWithValue(), + source, + new String[] { + }); + addAnnotation + (getFeatureValue_Value(), + source, + new String[] { + }); + addAnnotation + (getFlow_FlowEnd(), + source, + new String[] { + }); + addAnnotation + (getFlow_Interaction(), + source, + new String[] { + }); + addAnnotation + (getFlow_PayloadFeature(), + source, + new String[] { + }); + addAnnotation + (getFlow_PayloadType(), + source, + new String[] { + }); + addAnnotation + (getFlow_SourceOutputFeature(), + source, + new String[] { + }); + addAnnotation + (getFlow_TargetInputFeature(), + source, + new String[] { + }); + addAnnotation + (getFlowDefinition_FlowEnd(), + source, + new String[] { + }); + addAnnotation + (getFlowUsage_FlowDefinition(), + source, + new String[] { + }); + addAnnotation + (getForLoopActionUsage_LoopVariable(), + source, + new String[] { + }); + addAnnotation + (getForLoopActionUsage_SeqArgument(), + source, + new String[] { + }); + addAnnotation + (getFramedConcernMembership_OwnedConcern(), + source, + new String[] { + }); + addAnnotation + (getFramedConcernMembership_ReferencedConcern(), + source, + new String[] { + }); + addAnnotation + (getFunction_IsModelLevelEvaluable(), + source, + new String[] { + }); + addAnnotation + (getFunction_Expression(), + source, + new String[] { + }); + addAnnotation + (getFunction_Result(), + source, + new String[] { + }); + addAnnotation + (getIfActionUsage_ElseAction(), + source, + new String[] { + }); + addAnnotation + (getIfActionUsage_IfArgument(), + source, + new String[] { + }); + addAnnotation + (getIfActionUsage_ThenAction(), + source, + new String[] { + }); + addAnnotation + (getImport__ImportedMemberships__EList(), + source, + new String[] { + }); + addAnnotation + (getImport_ImportedElement(), + source, + new String[] { + }); + addAnnotation + (getImport_ImportOwningNamespace(), + source, + new String[] { + }); + addAnnotation + (getIncludeUseCaseUsage_UseCaseIncluded(), + source, + new String[] { + }); + addAnnotation + (getInstantiationExpression__InstantiatedType(), + source, + new String[] { + }); + addAnnotation + (getInstantiationExpression_Argument(), + source, + new String[] { + }); + addAnnotation + (getInstantiationExpression_InstantiatedType(), + source, + new String[] { + }); + addAnnotation + (getInterfaceDefinition_InterfaceEnd(), + source, + new String[] { + }); + addAnnotation + (getInterfaceUsage_InterfaceDefinition(), + source, + new String[] { + }); + addAnnotation + (getIntersecting_TypeIntersected(), + source, + new String[] { + }); + addAnnotation + (getItemUsage_ItemDefinition(), + source, + new String[] { + }); + addAnnotation + (getLoopActionUsage_BodyAction(), + source, + new String[] { + }); + addAnnotation + (getMembership__IsDistinguishableFrom__Membership(), + source, + new String[] { + }); + addAnnotation + (getMembership_MemberElementId(), + source, + new String[] { + }); + addAnnotation + (getMembership_MembershipOwningNamespace(), + source, + new String[] { + }); + addAnnotation + (getMetadataAccessExpression__MetaclassFeature(), + source, + new String[] { + }); + addAnnotation + (getMetadataAccessExpression_ReferencedElement(), + source, + new String[] { + }); + addAnnotation + (getMetadataFeature__EvaluateFeature__Feature(), + source, + new String[] { + }); + addAnnotation + (getMetadataFeature__IsSemantic(), + source, + new String[] { + }); + addAnnotation + (getMetadataFeature__IsSyntactic(), + source, + new String[] { + }); + addAnnotation + (getMetadataFeature__SyntaxElement(), + source, + new String[] { + }); + addAnnotation + (getMetadataFeature_Metaclass(), + source, + new String[] { + }); + addAnnotation + (getMetadataUsage_MetadataDefinition(), + source, + new String[] { + }); + addAnnotation + (getMultiplicityRange__HasBounds__int_int(), + source, + new String[] { + }); + addAnnotation + (getMultiplicityRange__ValueOf__Expression(), + source, + new String[] { + }); + addAnnotation + (getMultiplicityRange_Bound(), + source, + new String[] { + }); + addAnnotation + (getMultiplicityRange_LowerBound(), + source, + new String[] { + }); + addAnnotation + (getMultiplicityRange_UpperBound(), + source, + new String[] { + }); + addAnnotation + (getNamespace__ImportedMemberships__EList(), + source, + new String[] { + }); + addAnnotation + (getNamespace__MembershipsOfVisibility__VisibilityKind_EList(), + source, + new String[] { + }); + addAnnotation + (getNamespace__NamesOf__Element(), + source, + new String[] { + }); + addAnnotation + (getNamespace__QualificationOf__String(), + source, + new String[] { + }); + addAnnotation + (getNamespace__Resolve__String(), + source, + new String[] { + }); + addAnnotation + (getNamespace__ResolveGlobal__String(), + source, + new String[] { + }); + addAnnotation + (getNamespace__ResolveLocal__String(), + source, + new String[] { + }); + addAnnotation + (getNamespace__ResolveVisible__String(), + source, + new String[] { + }); + addAnnotation + (getNamespace__UnqualifiedNameOf__String(), + source, + new String[] { + }); + addAnnotation + (getNamespace__VisibilityOf__Membership(), + source, + new String[] { + }); + addAnnotation + (getNamespace__VisibleMemberships__EList_boolean_boolean(), + source, + new String[] { + }); + addAnnotation + (getNamespace_ImportedMembership(), + source, + new String[] { + }); + addAnnotation + (getNamespace_Member(), + source, + new String[] { + }); + addAnnotation + (getNamespace_OwnedImport(), + source, + new String[] { + }); + addAnnotation + (getNamespace_OwnedMember(), + source, + new String[] { + }); + addAnnotation + (getNamespace_OwnedMembership(), + source, + new String[] { + }); + addAnnotation + (getObjectiveMembership_OwnedObjectiveRequirement(), + source, + new String[] { + }); + addAnnotation + (getOccurrenceUsage_IndividualDefinition(), + source, + new String[] { + }); + addAnnotation + (getOccurrenceUsage_OccurrenceDefinition(), + source, + new String[] { + }); + addAnnotation + (getOwningMembership_OwnedMemberElementId(), + source, + new String[] { + }); + addAnnotation + (getOwningMembership_OwnedMemberName(), + source, + new String[] { + }); + addAnnotation + (getOwningMembership_OwnedMemberShortName(), + source, + new String[] { + }); + addAnnotation + (getOwningMembership_OwnedMemberElement(), + source, + new String[] { + }); + addAnnotation + (getPackage__IncludeAsMember__Element(), + source, + new String[] { + }); + addAnnotation + (getPackage_FilterCondition(), + source, + new String[] { + }); + addAnnotation + (getParameterMembership__ParameterDirection(), + source, + new String[] { + }); + addAnnotation + (getParameterMembership_OwnedMemberParameter(), + source, + new String[] { + }); + addAnnotation + (getPartUsage_PartDefinition(), + source, + new String[] { + }); + addAnnotation + (getPerformActionUsage_PerformedAction(), + source, + new String[] { + }); + addAnnotation + (getPortConjugation_ConjugatedPortDefinition(), + source, + new String[] { + }); + addAnnotation + (getPortDefinition_ConjugatedPortDefinition(), + source, + new String[] { + }); + addAnnotation + (getPortUsage_PortDefinition(), + source, + new String[] { + }); + addAnnotation + (getReferenceSubsetting_ReferencingFeature(), + source, + new String[] { + }); + addAnnotation + (getRelationship_RelatedElement(), + source, + new String[] { + }); + addAnnotation + (getRenderingDefinition_Rendering(), + source, + new String[] { + }); + addAnnotation + (getRenderingUsage_RenderingDefinition(), + source, + new String[] { + }); + addAnnotation + (getRequirementConstraintMembership_OwnedConstraint(), + source, + new String[] { + }); + addAnnotation + (getRequirementConstraintMembership_ReferencedConstraint(), + source, + new String[] { + }); + addAnnotation + (getRequirementDefinition_Text(), + source, + new String[] { + }); + addAnnotation + (getRequirementDefinition_ActorParameter(), + source, + new String[] { + }); + addAnnotation + (getRequirementDefinition_AssumedConstraint(), + source, + new String[] { + }); + addAnnotation + (getRequirementDefinition_FramedConcern(), + source, + new String[] { + }); + addAnnotation + (getRequirementDefinition_RequiredConstraint(), + source, + new String[] { + }); + addAnnotation + (getRequirementDefinition_StakeholderParameter(), + source, + new String[] { + }); + addAnnotation + (getRequirementDefinition_SubjectParameter(), + source, + new String[] { + }); + addAnnotation + (getRequirementUsage_Text(), + source, + new String[] { + }); + addAnnotation + (getRequirementUsage_ActorParameter(), + source, + new String[] { + }); + addAnnotation + (getRequirementUsage_AssumedConstraint(), + source, + new String[] { + }); + addAnnotation + (getRequirementUsage_FramedConcern(), + source, + new String[] { + }); + addAnnotation + (getRequirementUsage_RequiredConstraint(), + source, + new String[] { + }); + addAnnotation + (getRequirementUsage_RequirementDefinition(), + source, + new String[] { + }); + addAnnotation + (getRequirementUsage_StakeholderParameter(), + source, + new String[] { + }); + addAnnotation + (getRequirementUsage_SubjectParameter(), + source, + new String[] { + }); + addAnnotation + (getRequirementVerificationMembership_OwnedRequirement(), + source, + new String[] { + }); + addAnnotation + (getRequirementVerificationMembership_VerifiedRequirement(), + source, + new String[] { + }); + addAnnotation + (getResultExpressionMembership_OwnedResultExpression(), + source, + new String[] { + }); + addAnnotation + (getSatisfyRequirementUsage_SatisfiedRequirement(), + source, + new String[] { + }); + addAnnotation + (getSatisfyRequirementUsage_SatisfyingFeature(), + source, + new String[] { + }); + addAnnotation + (getSendActionUsage_PayloadArgument(), + source, + new String[] { + }); + addAnnotation + (getSendActionUsage_ReceiverArgument(), + source, + new String[] { + }); + addAnnotation + (getSendActionUsage_SenderArgument(), + source, + new String[] { + }); + addAnnotation + (getSpecialization_OwningType(), + source, + new String[] { + }); + addAnnotation + (getStakeholderMembership_OwnedStakeholderParameter(), + source, + new String[] { + }); + addAnnotation + (getStateDefinition_DoAction(), + source, + new String[] { + }); + addAnnotation + (getStateDefinition_EntryAction(), + source, + new String[] { + }); + addAnnotation + (getStateDefinition_ExitAction(), + source, + new String[] { + }); + addAnnotation + (getStateDefinition_State(), + source, + new String[] { + }); + addAnnotation + (getStateSubactionMembership_Action(), + source, + new String[] { + }); + addAnnotation + (getStateUsage__IsSubstateUsage__boolean(), + source, + new String[] { + }); + addAnnotation + (getStateUsage_DoAction(), + source, + new String[] { + }); + addAnnotation + (getStateUsage_EntryAction(), + source, + new String[] { + }); + addAnnotation + (getStateUsage_ExitAction(), + source, + new String[] { + }); + addAnnotation + (getStateUsage_StateDefinition(), + source, + new String[] { + }); + addAnnotation + (getStep_Behavior(), + source, + new String[] { + }); + addAnnotation + (getStep_Parameter(), + source, + new String[] { + }); + addAnnotation + (getSubclassification_OwningClassifier(), + source, + new String[] { + }); + addAnnotation + (getSubjectMembership_OwnedSubjectParameter(), + source, + new String[] { + }); + addAnnotation + (getSubsetting_OwningFeature(), + source, + new String[] { + }); + addAnnotation + (getTerminateActionUsage_TerminatedOccurrenceArgument(), + source, + new String[] { + }); + addAnnotation + (getTextualRepresentation_RepresentedElement(), + source, + new String[] { + }); + addAnnotation + (getTransitionFeatureMembership_TransitionFeature(), + source, + new String[] { + }); + addAnnotation + (getTransitionUsage__SourceFeature(), + source, + new String[] { + }); + addAnnotation + (getTransitionUsage__TriggerPayloadParameter(), + source, + new String[] { + }); + addAnnotation + (getTransitionUsage_EffectAction(), + source, + new String[] { + }); + addAnnotation + (getTransitionUsage_GuardExpression(), + source, + new String[] { + }); + addAnnotation + (getTransitionUsage_Source(), + source, + new String[] { + }); + addAnnotation + (getTransitionUsage_Succession(), + source, + new String[] { + }); + addAnnotation + (getTransitionUsage_Target(), + source, + new String[] { + }); + addAnnotation + (getTransitionUsage_TriggerAction(), + source, + new String[] { + }); + addAnnotation + (getType__AllRedefinedFeaturesOf__Membership(), + source, + new String[] { + }); + addAnnotation + (getType__AllSupertypes(), + source, + new String[] { + }); + addAnnotation + (getType__DirectionOf__Feature(), + source, + new String[] { + }); + addAnnotation + (getType__DirectionOfExcluding__Feature_EList(), + source, + new String[] { + }); + addAnnotation + (getType__InheritableMemberships__EList_EList_boolean(), + source, + new String[] { + }); + addAnnotation + (getType__InheritedMemberships__EList_EList_boolean(), + source, + new String[] { + }); + addAnnotation + (getType__IsCompatibleWith__Type(), + source, + new String[] { + }); + addAnnotation + (getType__Multiplicities(), + source, + new String[] { + }); + addAnnotation + (getType__NonPrivateMemberships__EList_EList_boolean(), + source, + new String[] { + }); + addAnnotation + (getType__RemoveRedefinedFeatures__EList(), + source, + new String[] { + }); + addAnnotation + (getType__Specializes__Type(), + source, + new String[] { + }); + addAnnotation + (getType__SpecializesFromLibrary__String(), + source, + new String[] { + }); + addAnnotation + (getType__Supertypes__boolean(), + source, + new String[] { + }); + addAnnotation + (getType_IsConjugated(), + source, + new String[] { + }); + addAnnotation + (getType_DifferencingType(), + source, + new String[] { + }); + addAnnotation + (getType_DirectedFeature(), + source, + new String[] { + }); + addAnnotation + (getType_EndFeature(), + source, + new String[] { + }); + addAnnotation + (getType_Feature(), + source, + new String[] { + }); + addAnnotation + (getType_FeatureMembership(), + source, + new String[] { + }); + addAnnotation + (getType_InheritedFeature(), + source, + new String[] { + }); + addAnnotation + (getType_InheritedMembership(), + source, + new String[] { + }); + addAnnotation + (getType_Input(), + source, + new String[] { + }); + addAnnotation + (getType_IntersectingType(), + source, + new String[] { + }); + addAnnotation + (getType_Multiplicity(), + source, + new String[] { + }); + addAnnotation + (getType_Output(), + source, + new String[] { + }); + addAnnotation + (getType_OwnedConjugator(), + source, + new String[] { + }); + addAnnotation + (getType_OwnedDifferencing(), + source, + new String[] { + }); + addAnnotation + (getType_OwnedDisjoining(), + source, + new String[] { + }); + addAnnotation + (getType_OwnedEndFeature(), + source, + new String[] { + }); + addAnnotation + (getType_OwnedFeature(), + source, + new String[] { + }); + addAnnotation + (getType_OwnedFeatureMembership(), + source, + new String[] { + }); + addAnnotation + (getType_OwnedIntersecting(), + source, + new String[] { + }); + addAnnotation + (getType_OwnedSpecialization(), + source, + new String[] { + }); + addAnnotation + (getType_OwnedUnioning(), + source, + new String[] { + }); + addAnnotation + (getType_UnioningType(), + source, + new String[] { + }); + addAnnotation + (getTypeFeaturing_OwningFeatureOfType(), + source, + new String[] { + }); + addAnnotation + (getUnioning_TypeUnioned(), + source, + new String[] { + }); + addAnnotation + (getUsage__ReferencedFeatureTarget(), + source, + new String[] { + }); + addAnnotation + (getUsage_IsReference(), + source, + new String[] { + }); + addAnnotation + (getUsage_MayTimeVary(), + source, + new String[] { + }); + addAnnotation + (getUsage_Definition(), + source, + new String[] { + }); + addAnnotation + (getUsage_DirectedUsage(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedAction(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedAllocation(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedAnalysisCase(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedAttribute(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedCalculation(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedCase(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedConcern(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedConnection(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedConstraint(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedEnumeration(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedFlow(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedInterface(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedItem(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedMetadata(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedOccurrence(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedPart(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedPort(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedReference(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedRendering(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedRequirement(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedState(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedTransition(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedUsage(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedUseCase(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedVerificationCase(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedView(), + source, + new String[] { + }); + addAnnotation + (getUsage_NestedViewpoint(), + source, + new String[] { + }); + addAnnotation + (getUsage_OwningDefinition(), + source, + new String[] { + }); + addAnnotation + (getUsage_OwningUsage(), + source, + new String[] { + }); + addAnnotation + (getUsage_Usage(), + source, + new String[] { + }); + addAnnotation + (getUsage_Variant(), + source, + new String[] { + }); + addAnnotation + (getUsage_VariantMembership(), + source, + new String[] { + }); + addAnnotation + (getUseCaseDefinition_IncludedUseCase(), + source, + new String[] { + }); + addAnnotation + (getUseCaseUsage_IncludedUseCase(), + source, + new String[] { + }); + addAnnotation + (getUseCaseUsage_UseCaseDefinition(), + source, + new String[] { + }); + addAnnotation + (getVariantMembership_OwnedVariantUsage(), + source, + new String[] { + }); + addAnnotation + (getVerificationCaseDefinition_VerifiedRequirement(), + source, + new String[] { + }); + addAnnotation + (getVerificationCaseUsage_VerificationCaseDefinition(), + source, + new String[] { + }); + addAnnotation + (getVerificationCaseUsage_VerifiedRequirement(), + source, + new String[] { + }); + addAnnotation + (getViewDefinition_SatisfiedViewpoint(), + source, + new String[] { + }); + addAnnotation + (getViewDefinition_View(), + source, + new String[] { + }); + addAnnotation + (getViewDefinition_ViewCondition(), + source, + new String[] { + }); + addAnnotation + (getViewDefinition_ViewRendering(), + source, + new String[] { + }); + addAnnotation + (getViewpointDefinition_ViewpointStakeholder(), + source, + new String[] { + }); + addAnnotation + (getViewpointUsage_ViewpointDefinition(), + source, + new String[] { + }); + addAnnotation + (getViewpointUsage_ViewpointStakeholder(), + source, + new String[] { + }); + addAnnotation + (getViewRenderingMembership_OwnedRendering(), + source, + new String[] { + }); + addAnnotation + (getViewRenderingMembership_ReferencedRendering(), + source, + new String[] { + }); + addAnnotation + (getViewUsage__IncludeAsExposed__Element(), + source, + new String[] { + }); + addAnnotation + (getViewUsage_ExposedElement(), + source, + new String[] { + }); + addAnnotation + (getViewUsage_SatisfiedViewpoint(), + source, + new String[] { + }); + addAnnotation + (getViewUsage_ViewCondition(), + source, + new String[] { + }); + addAnnotation + (getViewUsage_ViewDefinition(), + source, + new String[] { + }); + addAnnotation + (getViewUsage_ViewRendering(), + source, + new String[] { + }); + addAnnotation + (getWhileLoopActionUsage_UntilArgument(), + source, + new String[] { + }); + addAnnotation + (getWhileLoopActionUsage_WhileArgument(), + source, + new String[] { + }); + } + + /** + * Initializes the annotations for http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName. + * + * + * @generated + */ + protected void createEmofAnnotations() { + String source = "http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"; + addAnnotation + (getAcceptActionUsage_PayloadArgument(), + source, + new String[] { + "body", "acceptingActionUsage" + }); + addAnnotation + (getAcceptActionUsage_PayloadParameter(), + source, + new String[] { + "body", "owningAcceptActionUsage" + }); + addAnnotation + (getAcceptActionUsage_ReceiverArgument(), + source, + new String[] { + "body", "acceptActionUsage" + }); + addAnnotation + (getActionDefinition_Action(), + source, + new String[] { + "body", "featuringActionDefinition" + }); + addAnnotation + (getActionUsage_ActionDefinition(), + source, + new String[] { + "body", "definedAction" + }); + addAnnotation + (getActorMembership_OwnedActorParameter(), + source, + new String[] { + "body", "owningActorMembership" + }); + addAnnotation + (getAllocationDefinition_Allocation(), + source, + new String[] { + "body", "featuringAllocationDefinition" + }); + addAnnotation + (getAllocationUsage_AllocationDefinition(), + source, + new String[] { + "body", "definedAllocation" + }); + addAnnotation + (getAnalysisCaseDefinition_ResultExpression(), + source, + new String[] { + "body", "analysisCaseDefintion" + }); + addAnnotation + (getAnalysisCaseUsage_AnalysisCaseDefinition(), + source, + new String[] { + "body", "definedAnalysisCase" + }); + addAnnotation + (getAnalysisCaseUsage_ResultExpression(), + source, + new String[] { + "body", "analysisCase" + }); + addAnnotation + (getAnnotatingElement_AnnotatedElement(), + source, + new String[] { + "body", "annotatingElement" + }); + addAnnotation + (getAnnotation_AnnotatedElement(), + source, + new String[] { + "body", "annotation" + }); + addAnnotation + (getAssertConstraintUsage_AssertedConstraint(), + source, + new String[] { + "body", "constraintAssertion" + }); + addAnnotation + (getAssignmentActionUsage_Referent(), + source, + new String[] { + "body", "assignment" + }); + addAnnotation + (getAssignmentActionUsage_TargetArgument(), + source, + new String[] { + "body", "assignmentAction" + }); + addAnnotation + (getAssignmentActionUsage_ValueExpression(), + source, + new String[] { + "body", "assigningAction" + }); + addAnnotation + (getAssociation_AssociationEnd(), + source, + new String[] { + "body", "associationWithEnd" + }); + addAnnotation + (getAssociation_RelatedType(), + source, + new String[] { + "body", "association" + }); + addAnnotation + (getAssociation_SourceType(), + source, + new String[] { + "body", "sourceAssociation" + }); + addAnnotation + (getAssociation_TargetType(), + source, + new String[] { + "body", "targetAssociation" + }); + addAnnotation + (getAttributeUsage_AttributeDefinition(), + source, + new String[] { + "body", "definedAttribute" + }); + addAnnotation + (getBehavior_Parameter(), + source, + new String[] { + "body", "parameteredBehavior" + }); + addAnnotation + (getBehavior_Step(), + source, + new String[] { + "body", "featuringBehavior" + }); + addAnnotation + (getBooleanExpression_Predicate(), + source, + new String[] { + "body", "typedBooleanExpression" + }); + addAnnotation + (getCalculationDefinition_Calculation(), + source, + new String[] { + "body", "featuringCalculationDefinition" + }); + addAnnotation + (getCalculationUsage_CalculationDefinition(), + source, + new String[] { + "body", "definedCalculation" + }); + addAnnotation + (getCaseDefinition_ActorParameter(), + source, + new String[] { + "body", "actorOwningCaseDefinition" + }); + addAnnotation + (getCaseDefinition_ObjectiveRequirement(), + source, + new String[] { + "body", "objectiveOwningCaseDefinition" + }); + addAnnotation + (getCaseDefinition_SubjectParameter(), + source, + new String[] { + "body", "subjectOwningCaseDefinition" + }); + addAnnotation + (getCaseUsage_ActorParameter(), + source, + new String[] { + "body", "actorOwningCase" + }); + addAnnotation + (getCaseUsage_CaseDefinition(), + source, + new String[] { + "body", "definedCase" + }); + addAnnotation + (getCaseUsage_ObjectiveRequirement(), + source, + new String[] { + "body", "objectiveOwningCase" + }); + addAnnotation + (getCaseUsage_SubjectParameter(), + source, + new String[] { + "body", "subjectOwningCase" + }); + addAnnotation + (getConcernUsage_ConcernDefinition(), + source, + new String[] { + "body", "definedConcern" + }); + addAnnotation + (getConjugatedPortTyping_ConjugatedPortDefinition(), + source, + new String[] { + "body", "typingByConjugatedPort" + }); + addAnnotation + (getConjugatedPortTyping_PortDefinition(), + source, + new String[] { + "body", "conjugatedPortTyping" + }); + addAnnotation + (getConjugation_ConjugatedType(), + source, + new String[] { + "body", "conjugator" + }); + addAnnotation + (getConjugation_OriginalType(), + source, + new String[] { + "body", "conjugation" + }); + addAnnotation + (getConnectionDefinition_ConnectionEnd(), + source, + new String[] { + "body", "connectionDefinitionWithEnd" + }); + addAnnotation + (getConnectionUsage_ConnectionDefinition(), + source, + new String[] { + "body", "definedConnection" + }); + addAnnotation + (getConnector_Association(), + source, + new String[] { + "body", "typedConnector" + }); + addAnnotation + (getConnector_ConnectorEnd(), + source, + new String[] { + "body", "featuringConnector" + }); + addAnnotation + (getConnector_DefaultFeaturingType(), + source, + new String[] { + "body", "featuredConnector" + }); + addAnnotation + (getConnector_RelatedFeature(), + source, + new String[] { + "body", "connector" + }); + addAnnotation + (getConnector_SourceFeature(), + source, + new String[] { + "body", "sourceConnector" + }); + addAnnotation + (getConnector_TargetFeature(), + source, + new String[] { + "body", "targetConnector" + }); + addAnnotation + (getConstraintUsage_ConstraintDefinition(), + source, + new String[] { + "body", "definedConstraint" + }); + addAnnotation + (getCrossSubsetting_CrossedFeature(), + source, + new String[] { + "body", "crossSupersetting" + }); + addAnnotation + (getDefinition_DirectedUsage(), + source, + new String[] { + "body", "definitionWithDirectedUsage" + }); + addAnnotation + (getDefinition_OwnedAction(), + source, + new String[] { + "body", "actionOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedAllocation(), + source, + new String[] { + "body", "allocationOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedAnalysisCase(), + source, + new String[] { + "body", "analysisCaseOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedAttribute(), + source, + new String[] { + "body", "attributeOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedCalculation(), + source, + new String[] { + "body", "calculationOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedCase(), + source, + new String[] { + "body", "caseOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedConcern(), + source, + new String[] { + "body", "concernOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedConnection(), + source, + new String[] { + "body", "connectionOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedConstraint(), + source, + new String[] { + "body", "constraintOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedEnumeration(), + source, + new String[] { + "body", "enumerationOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedFlow(), + source, + new String[] { + "body", "flowOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedInterface(), + source, + new String[] { + "body", "interfaceOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedItem(), + source, + new String[] { + "body", "itemOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedMetadata(), + source, + new String[] { + "body", "metadataOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedOccurrence(), + source, + new String[] { + "body", "occurrenceOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedPart(), + source, + new String[] { + "body", "partOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedPort(), + source, + new String[] { + "body", "portOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedReference(), + source, + new String[] { + "body", "referenceOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedRendering(), + source, + new String[] { + "body", "redenderingOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedRequirement(), + source, + new String[] { + "body", "requirementOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedState(), + source, + new String[] { + "body", "stateOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedTransition(), + source, + new String[] { + "body", "transitionOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedUseCase(), + source, + new String[] { + "body", "useCaseOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedVerificationCase(), + source, + new String[] { + "body", "verificationCaseOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedView(), + source, + new String[] { + "body", "viewOwningDefinition" + }); + addAnnotation + (getDefinition_OwnedViewpoint(), + source, + new String[] { + "body", "viewpointOwningDefinition" + }); + addAnnotation + (getDefinition_Usage(), + source, + new String[] { + "body", "featuringDefinition" + }); + addAnnotation + (getDefinition_Variant(), + source, + new String[] { + "body", "owningVariationDefinition" + }); + addAnnotation + (getDefinition_VariantMembership(), + source, + new String[] { + "body", "owningVariationDefinition" + }); + addAnnotation + (getDependency_Client(), + source, + new String[] { + "body", "clientDependency" + }); + addAnnotation + (getDependency_Supplier(), + source, + new String[] { + "body", "supplierDependency" + }); + addAnnotation + (getDifferencing_DifferencingType(), + source, + new String[] { + "body", "differencedDifferencing" + }); + addAnnotation + (getDisjoining_DisjoiningType(), + source, + new String[] { + "body", "disjoinedTypeDisjoining" + }); + addAnnotation + (getDisjoining_TypeDisjoined(), + source, + new String[] { + "body", "disjoiningTypeDisjoining" + }); + addAnnotation + (getElementFilterMembership_Condition(), + source, + new String[] { + "body", "owningFilter" + }); + addAnnotation + (getEnumerationDefinition_EnumeratedValue(), + source, + new String[] { + "body", "owningEnumerationDefinition" + }); + addAnnotation + (getEnumerationUsage_EnumerationDefinition(), + source, + new String[] { + "body", "definedEnumeration" + }); + addAnnotation + (getEventOccurrenceUsage_EventOccurrence(), + source, + new String[] { + "body", "referencingOccurrence" + }); + addAnnotation + (getExhibitStateUsage_ExhibitedState(), + source, + new String[] { + "body", "exhibitingState" + }); + addAnnotation + (getExpression_Function(), + source, + new String[] { + "body", "typedExpression" + }); + addAnnotation + (getExpression_Result(), + source, + new String[] { + "body", "computingExpression" + }); + addAnnotation + (getFeature_ChainingFeature(), + source, + new String[] { + "body", "chainedFeature" + }); + addAnnotation + (getFeature_CrossFeature(), + source, + new String[] { + "body", "featureCrossing" + }); + addAnnotation + (getFeature_FeatureTarget(), + source, + new String[] { + "body", "baseFeature" + }); + addAnnotation + (getFeature_FeaturingType(), + source, + new String[] { + "body", "featureOfType" + }); + addAnnotation + (getFeature_OwnedRedefinition(), + source, + new String[] { + "body", "owningFeature" + }); + addAnnotation + (getFeature_Type(), + source, + new String[] { + "body", "typedFeature" + }); + addAnnotation + (getFeatureChainExpression_TargetFeature(), + source, + new String[] { + "body", "chainExpression" + }); + addAnnotation + (getFeatureChaining_ChainingFeature(), + source, + new String[] { + "body", "chainedFeatureChaining" + }); + addAnnotation + (getFeatureInverting_FeatureInverted(), + source, + new String[] { + "body", "invertingFeatureInverting" + }); + addAnnotation + (getFeatureInverting_InvertingFeature(), + source, + new String[] { + "body", "invertedFeatureInverting" + }); + addAnnotation + (getFeatureReferenceExpression_Referent(), + source, + new String[] { + "body", "referenceExpression" + }); + addAnnotation + (getFeatureTyping_Type(), + source, + new String[] { + "body", "typingByType" + }); + addAnnotation + (getFeatureTyping_TypedFeature(), + source, + new String[] { + "body", "typing" + }); + addAnnotation + (getFeatureValue_FeatureWithValue(), + source, + new String[] { + "body", "valuation" + }); + addAnnotation + (getFeatureValue_Value(), + source, + new String[] { + "body", "expressedValuation" + }); + addAnnotation + (getFlow_FlowEnd(), + source, + new String[] { + "body", "featuringFlow" + }); + addAnnotation + (getFlow_Interaction(), + source, + new String[] { + "body", "typedFlow" + }); + addAnnotation + (getFlow_PayloadFeature(), + source, + new String[] { + "body", "flowWithPayloadFeature" + }); + addAnnotation + (getFlow_PayloadType(), + source, + new String[] { + "body", "flowForPayloadType" + }); + addAnnotation + (getFlow_SourceOutputFeature(), + source, + new String[] { + "body", "flowFromOutput" + }); + addAnnotation + (getFlow_TargetInputFeature(), + source, + new String[] { + "body", "flowToInput" + }); + addAnnotation + (getFlowDefinition_FlowEnd(), + source, + new String[] { + "body", "flowDefinitionWithEnd" + }); + addAnnotation + (getFlowUsage_FlowDefinition(), + source, + new String[] { + "body", "definedFlow" + }); + addAnnotation + (getForLoopActionUsage_LoopVariable(), + source, + new String[] { + "body", "forLoopAction" + }); + addAnnotation + (getForLoopActionUsage_SeqArgument(), + source, + new String[] { + "body", "forLoopAction" + }); + addAnnotation + (getFramedConcernMembership_OwnedConcern(), + source, + new String[] { + "body", "framedConstraintMembership" + }); + addAnnotation + (getFramedConcernMembership_ReferencedConcern(), + source, + new String[] { + "body", "referencingConcernMembership" + }); + addAnnotation + (getFunction_Expression(), + source, + new String[] { + "body", "computedFunction" + }); + addAnnotation + (getFunction_Result(), + source, + new String[] { + "body", "computingFunction" + }); + addAnnotation + (getIfActionUsage_ElseAction(), + source, + new String[] { + "body", "ifElseAction" + }); + addAnnotation + (getIfActionUsage_IfArgument(), + source, + new String[] { + "body", "ifAction" + }); + addAnnotation + (getIfActionUsage_ThenAction(), + source, + new String[] { + "body", "ifThenAction" + }); + addAnnotation + (getImport_ImportedElement(), + source, + new String[] { + "body", "membershipImport" + }); + addAnnotation + (getIncludeUseCaseUsage_UseCaseIncluded(), + source, + new String[] { + "body", "useCaseInclusion" + }); + addAnnotation + (getInstantiationExpression_Argument(), + source, + new String[] { + "body", "instantiation" + }); + addAnnotation + (getInstantiationExpression_InstantiatedType(), + source, + new String[] { + "body", "instantiationExpression" + }); + addAnnotation + (getInterfaceDefinition_InterfaceEnd(), + source, + new String[] { + "body", "interfaceDefinitionWithEnd" + }); + addAnnotation + (getInterfaceUsage_InterfaceDefinition(), + source, + new String[] { + "body", "definedInterface" + }); + addAnnotation + (getIntersecting_IntersectingType(), + source, + new String[] { + "body", "intersectedIntersecting" + }); + addAnnotation + (getItemUsage_ItemDefinition(), + source, + new String[] { + "body", "definedItem" + }); + addAnnotation + (getLoopActionUsage_BodyAction(), + source, + new String[] { + "body", "loopAction" + }); + addAnnotation + (getMembership_MemberElement(), + source, + new String[] { + "body", "membership" + }); + addAnnotation + (getMembershipImport_ImportedMembership(), + source, + new String[] { + "body", "import" + }); + addAnnotation + (getMetadataAccessExpression_ReferencedElement(), + source, + new String[] { + "body", "accessExpression" + }); + addAnnotation + (getMetadataFeature_Metaclass(), + source, + new String[] { + "body", "typedMetadata" + }); + addAnnotation + (getMetadataUsage_MetadataDefinition(), + source, + new String[] { + "body", "definedMetadata" + }); + addAnnotation + (getMultiplicityRange_Bound(), + source, + new String[] { + "body", "multiplicity" + }); + addAnnotation + (getMultiplicityRange_LowerBound(), + source, + new String[] { + "body", "multiplicity" + }); + addAnnotation + (getMultiplicityRange_UpperBound(), + source, + new String[] { + "body", "multiplicity" + }); + addAnnotation + (getNamespace_ImportedMembership(), + source, + new String[] { + "body", "importingNamespace" + }); + addAnnotation + (getNamespace_Member(), + source, + new String[] { + "body", "namespace" + }); + addAnnotation + (getNamespace_Membership(), + source, + new String[] { + "body", "membershipNamespace" + }); + addAnnotation + (getNamespaceImport_ImportedNamespace(), + source, + new String[] { + "body", "import" + }); + addAnnotation + (getObjectiveMembership_OwnedObjectiveRequirement(), + source, + new String[] { + "body", "owningObjectiveMembership" + }); + addAnnotation + (getOccurrenceUsage_IndividualDefinition(), + source, + new String[] { + "body", "individualUsage" + }); + addAnnotation + (getOccurrenceUsage_OccurrenceDefinition(), + source, + new String[] { + "body", "definedOccurrence" + }); + addAnnotation + (getPackage_FilterCondition(), + source, + new String[] { + "body", "conditionedPackage" + }); + addAnnotation + (getParameterMembership_OwnedMemberParameter(), + source, + new String[] { + "body", "owningParameterMembership" + }); + addAnnotation + (getPartUsage_PartDefinition(), + source, + new String[] { + "body", "definedPart" + }); + addAnnotation + (getPerformActionUsage_PerformedAction(), + source, + new String[] { + "body", "performingAction" + }); + addAnnotation + (getPortConjugation_OriginalPortDefinition(), + source, + new String[] { + "body", "portConjugation" + }); + addAnnotation + (getPortUsage_PortDefinition(), + source, + new String[] { + "body", "definedPort" + }); + addAnnotation + (getRedefinition_RedefinedFeature(), + source, + new String[] { + "body", "redefining" + }); + addAnnotation + (getRedefinition_RedefiningFeature(), + source, + new String[] { + "body", "redefinition" + }); + addAnnotation + (getReferenceSubsetting_ReferencedFeature(), + source, + new String[] { + "body", "referencing" + }); + addAnnotation + (getRelationship_RelatedElement(), + source, + new String[] { + "body", "relationship" + }); + addAnnotation + (getRelationship_Source(), + source, + new String[] { + "body", "sourceRelationship" + }); + addAnnotation + (getRelationship_Target(), + source, + new String[] { + "body", "targetRelationship" + }); + addAnnotation + (getRenderingDefinition_Rendering(), + source, + new String[] { + "body", "featuringRenderingDefinition" + }); + addAnnotation + (getRenderingUsage_RenderingDefinition(), + source, + new String[] { + "body", "definedRendering" + }); + addAnnotation + (getRequirementConstraintMembership_OwnedConstraint(), + source, + new String[] { + "body", "requirementConstraintMembership" + }); + addAnnotation + (getRequirementConstraintMembership_ReferencedConstraint(), + source, + new String[] { + "body", "referencingConstraintMembership" + }); + addAnnotation + (getRequirementDefinition_ActorParameter(), + source, + new String[] { + "body", "actorOwningRequirementDefinition" + }); + addAnnotation + (getRequirementDefinition_AssumedConstraint(), + source, + new String[] { + "body", "assumingRequirementDefinition" + }); + addAnnotation + (getRequirementDefinition_FramedConcern(), + source, + new String[] { + "body", "framingRequirementDefinition" + }); + addAnnotation + (getRequirementDefinition_RequiredConstraint(), + source, + new String[] { + "body", "requiringRequirementDefinition" + }); + addAnnotation + (getRequirementDefinition_StakeholderParameter(), + source, + new String[] { + "body", "stakholderOwiningRequirementDefinition" + }); + addAnnotation + (getRequirementDefinition_SubjectParameter(), + source, + new String[] { + "body", "subjectOwningRequirementDefinition" + }); + addAnnotation + (getRequirementUsage_ActorParameter(), + source, + new String[] { + "body", "actorOwningRequirement" + }); + addAnnotation + (getRequirementUsage_AssumedConstraint(), + source, + new String[] { + "body", "assumingRequirement" + }); + addAnnotation + (getRequirementUsage_FramedConcern(), + source, + new String[] { + "body", "framingRequirement" + }); + addAnnotation + (getRequirementUsage_RequiredConstraint(), + source, + new String[] { + "body", "requiringRequirement" + }); + addAnnotation + (getRequirementUsage_RequirementDefinition(), + source, + new String[] { + "body", "definedRequirement" + }); + addAnnotation + (getRequirementUsage_StakeholderParameter(), + source, + new String[] { + "body", "stakholderOwningRequirement" + }); + addAnnotation + (getRequirementUsage_SubjectParameter(), + source, + new String[] { + "body", "subjectOwningRequirement" + }); + addAnnotation + (getRequirementVerificationMembership_OwnedRequirement(), + source, + new String[] { + "body", "requirementVerificationMembership" + }); + addAnnotation + (getRequirementVerificationMembership_VerifiedRequirement(), + source, + new String[] { + "body", "requirementVerification" + }); + addAnnotation + (getResultExpressionMembership_OwnedResultExpression(), + source, + new String[] { + "body", "owningResultExpressionMembership" + }); + addAnnotation + (getSatisfyRequirementUsage_SatisfiedRequirement(), + source, + new String[] { + "body", "requirementSatisfaction" + }); + addAnnotation + (getSatisfyRequirementUsage_SatisfyingFeature(), + source, + new String[] { + "body", "satisfiedRequirement" + }); + addAnnotation + (getSendActionUsage_PayloadArgument(), + source, + new String[] { + "body", "sendingActionUsage" + }); + addAnnotation + (getSendActionUsage_ReceiverArgument(), + source, + new String[] { + "body", "sendActionUsage" + }); + addAnnotation + (getSendActionUsage_SenderArgument(), + source, + new String[] { + "body", "senderActionUsage" + }); + addAnnotation + (getSpecialization_General(), + source, + new String[] { + "body", "generalization" + }); + addAnnotation + (getSpecialization_Specific(), + source, + new String[] { + "body", "specialization" + }); + addAnnotation + (getStakeholderMembership_OwnedStakeholderParameter(), + source, + new String[] { + "body", "owningStakeholderMembership" + }); + addAnnotation + (getStateDefinition_DoAction(), + source, + new String[] { + "body", "activeStateDefintion" + }); + addAnnotation + (getStateDefinition_EntryAction(), + source, + new String[] { + "body", "enteredStateDefinition" + }); + addAnnotation + (getStateDefinition_ExitAction(), + source, + new String[] { + "body", "exitedStateDefinition" + }); + addAnnotation + (getStateDefinition_State(), + source, + new String[] { + "body", "featuringStateDefinition" + }); + addAnnotation + (getStateSubactionMembership_Action(), + source, + new String[] { + "body", "stateSubactionMembership" + }); + addAnnotation + (getStateUsage_DoAction(), + source, + new String[] { + "body", "activeState" + }); + addAnnotation + (getStateUsage_EntryAction(), + source, + new String[] { + "body", "enteredState" + }); + addAnnotation + (getStateUsage_ExitAction(), + source, + new String[] { + "body", "exitedState" + }); + addAnnotation + (getStateUsage_StateDefinition(), + source, + new String[] { + "body", "definedState" + }); + addAnnotation + (getStep_Behavior(), + source, + new String[] { + "body", "typedStep" + }); + addAnnotation + (getStep_Parameter(), + source, + new String[] { + "body", "parameteredStep" + }); + addAnnotation + (getSubclassification_Subclassifier(), + source, + new String[] { + "body", "subclassification" + }); + addAnnotation + (getSubclassification_Superclassifier(), + source, + new String[] { + "body", "superclassification" + }); + addAnnotation + (getSubjectMembership_OwnedSubjectParameter(), + source, + new String[] { + "body", "owningSubjectMembership" + }); + addAnnotation + (getSubsetting_SubsettedFeature(), + source, + new String[] { + "body", "supersetting" + }); + addAnnotation + (getSubsetting_SubsettingFeature(), + source, + new String[] { + "body", "subsetting" + }); + addAnnotation + (getTerminateActionUsage_TerminatedOccurrenceArgument(), + source, + new String[] { + "body", "terminateActionUsage" + }); + addAnnotation + (getTransitionFeatureMembership_TransitionFeature(), + source, + new String[] { + "body", "transitionFeatureMembership" + }); + addAnnotation + (getTransitionUsage_EffectAction(), + source, + new String[] { + "body", "activeTransition" + }); + addAnnotation + (getTransitionUsage_GuardExpression(), + source, + new String[] { + "body", "guardedTransition" + }); + addAnnotation + (getTransitionUsage_Source(), + source, + new String[] { + "body", "outgoingTransition" + }); + addAnnotation + (getTransitionUsage_Succession(), + source, + new String[] { + "body", "linkedTransition" + }); + addAnnotation + (getTransitionUsage_Target(), + source, + new String[] { + "body", "incomingTransition" + }); + addAnnotation + (getTransitionUsage_TriggerAction(), + source, + new String[] { + "body", "triggeredTransition" + }); + addAnnotation + (getType_DifferencingType(), + source, + new String[] { + "body", "differencedType" + }); + addAnnotation + (getType_DirectedFeature(), + source, + new String[] { + "body", "typeWithDirectedFeature" + }); + addAnnotation + (getType_EndFeature(), + source, + new String[] { + "body", "typeWithEndFeature" + }); + addAnnotation + (getType_Feature(), + source, + new String[] { + "body", "typeWithFeature" + }); + addAnnotation + (getType_FeatureMembership(), + source, + new String[] { + "body", "type" + }); + addAnnotation + (getType_InheritedFeature(), + source, + new String[] { + "body", "inheritingType" + }); + addAnnotation + (getType_InheritedMembership(), + source, + new String[] { + "body", "inheritingType" + }); + addAnnotation + (getType_Input(), + source, + new String[] { + "body", "typeWithInput" + }); + addAnnotation + (getType_IntersectingType(), + source, + new String[] { + "body", "intersectedType" + }); + addAnnotation + (getType_Multiplicity(), + source, + new String[] { + "body", "typeWithMultiplicity" + }); + addAnnotation + (getType_Output(), + source, + new String[] { + "body", "typeWithOutput" + }); + addAnnotation + (getType_UnioningType(), + source, + new String[] { + "body", "unionedType" + }); + addAnnotation + (getTypeFeaturing_FeatureOfType(), + source, + new String[] { + "body", "typeFeaturing" + }); + addAnnotation + (getTypeFeaturing_FeaturingType(), + source, + new String[] { + "body", "typeFeaturingOfType" + }); + addAnnotation + (getUnioning_UnioningType(), + source, + new String[] { + "body", "unionedUnioning" + }); + addAnnotation + (getUsage_Definition(), + source, + new String[] { + "body", "definedUsage" + }); + addAnnotation + (getUsage_DirectedUsage(), + source, + new String[] { + "body", "usageWithDirectedUsage" + }); + addAnnotation + (getUsage_NestedAction(), + source, + new String[] { + "body", "actionOwningUsage" + }); + addAnnotation + (getUsage_NestedAllocation(), + source, + new String[] { + "body", "allocationOwningUsage" + }); + addAnnotation + (getUsage_NestedAnalysisCase(), + source, + new String[] { + "body", "analysisCaseOwningUsage" + }); + addAnnotation + (getUsage_NestedAttribute(), + source, + new String[] { + "body", "attributeOwningUsage" + }); + addAnnotation + (getUsage_NestedCalculation(), + source, + new String[] { + "body", "calculationOwningUsage" + }); + addAnnotation + (getUsage_NestedCase(), + source, + new String[] { + "body", "caseOwningUsage" + }); + addAnnotation + (getUsage_NestedConcern(), + source, + new String[] { + "body", "concernOwningUsage" + }); + addAnnotation + (getUsage_NestedConnection(), + source, + new String[] { + "body", "connectionOwningUsage" + }); + addAnnotation + (getUsage_NestedConstraint(), + source, + new String[] { + "body", "constraintOwningUsage" + }); + addAnnotation + (getUsage_NestedEnumeration(), + source, + new String[] { + "body", "enumerationOwningUsage" + }); + addAnnotation + (getUsage_NestedFlow(), + source, + new String[] { + "body", "flowOwningUsage" + }); + addAnnotation + (getUsage_NestedInterface(), + source, + new String[] { + "body", "interfaceOwningUsage" + }); + addAnnotation + (getUsage_NestedItem(), + source, + new String[] { + "body", "itemOwningUsage" + }); + addAnnotation + (getUsage_NestedMetadata(), + source, + new String[] { + "body", "metadataOwningUsage" + }); + addAnnotation + (getUsage_NestedOccurrence(), + source, + new String[] { + "body", "occurrenceOwningUsage" + }); + addAnnotation + (getUsage_NestedPart(), + source, + new String[] { + "body", "partOwningUsage" + }); + addAnnotation + (getUsage_NestedPort(), + source, + new String[] { + "body", "portOwningUsage" + }); + addAnnotation + (getUsage_NestedReference(), + source, + new String[] { + "body", "referenceOwningUsage" + }); + addAnnotation + (getUsage_NestedRendering(), + source, + new String[] { + "body", "renderingOwningUsage" + }); + addAnnotation + (getUsage_NestedRequirement(), + source, + new String[] { + "body", "requirementOwningUsage" + }); + addAnnotation + (getUsage_NestedState(), + source, + new String[] { + "body", "stateOwningUsage" + }); + addAnnotation + (getUsage_NestedTransition(), + source, + new String[] { + "body", "transitionOwningUsage" + }); + addAnnotation + (getUsage_NestedUseCase(), + source, + new String[] { + "body", "useCaseOwningUsage" + }); + addAnnotation + (getUsage_NestedVerificationCase(), + source, + new String[] { + "body", "verificationCaseOwningUsage" + }); + addAnnotation + (getUsage_NestedView(), + source, + new String[] { + "body", "viewOwningUsage" + }); + addAnnotation + (getUsage_NestedViewpoint(), + source, + new String[] { + "body", "viewpointOwningUsage" + }); + addAnnotation + (getUsage_Usage(), + source, + new String[] { + "body", "featuringUsage" + }); + addAnnotation + (getUsage_Variant(), + source, + new String[] { + "body", "owningVariationUsage" + }); + addAnnotation + (getUsage_VariantMembership(), + source, + new String[] { + "body", "owningVariationUsage" + }); + addAnnotation + (getUseCaseDefinition_IncludedUseCase(), + source, + new String[] { + "body", "includingUseCaseDefinition" + }); + addAnnotation + (getUseCaseUsage_IncludedUseCase(), + source, + new String[] { + "body", "includingUseCase" + }); + addAnnotation + (getUseCaseUsage_UseCaseDefinition(), + source, + new String[] { + "body", "definedUseCase" + }); + addAnnotation + (getVariantMembership_OwnedVariantUsage(), + source, + new String[] { + "body", "owningVariantMembership" + }); + addAnnotation + (getVerificationCaseDefinition_VerifiedRequirement(), + source, + new String[] { + "body", "verifyingCaseDefinition" + }); + addAnnotation + (getVerificationCaseUsage_VerificationCaseDefinition(), + source, + new String[] { + "body", "definedVerificationCase" + }); + addAnnotation + (getVerificationCaseUsage_VerifiedRequirement(), + source, + new String[] { + "body", "verifyingCase" + }); + addAnnotation + (getViewDefinition_SatisfiedViewpoint(), + source, + new String[] { + "body", "viewpointSatisfyingViewDefinition" + }); + addAnnotation + (getViewDefinition_View(), + source, + new String[] { + "body", "featuringView" + }); + addAnnotation + (getViewDefinition_ViewCondition(), + source, + new String[] { + "body", "owningViewDefinition" + }); + addAnnotation + (getViewDefinition_ViewRendering(), + source, + new String[] { + "body", "renderingOwningViewDefinition" + }); + addAnnotation + (getViewpointDefinition_ViewpointStakeholder(), + source, + new String[] { + "body", "viewpointDefinitionForStakeholder" + }); + addAnnotation + (getViewpointUsage_ViewpointDefinition(), + source, + new String[] { + "body", "definedViewpoint" + }); + addAnnotation + (getViewpointUsage_ViewpointStakeholder(), + source, + new String[] { + "body", "viewpointForStakeholder" + }); + addAnnotation + (getViewRenderingMembership_OwnedRendering(), + source, + new String[] { + "body", "viewRenderingMembership" + }); + addAnnotation + (getViewRenderingMembership_ReferencedRendering(), + source, + new String[] { + "body", "referencingRenderingMembership" + }); + addAnnotation + (getViewUsage_ExposedElement(), + source, + new String[] { + "body", "exposingView" + }); + addAnnotation + (getViewUsage_SatisfiedViewpoint(), + source, + new String[] { + "body", "viewpointSatisfyingView" + }); + addAnnotation + (getViewUsage_ViewCondition(), + source, + new String[] { + "body", "owningView" + }); + addAnnotation + (getViewUsage_ViewDefinition(), + source, + new String[] { + "body", "definedView" + }); + addAnnotation + (getViewUsage_ViewRendering(), + source, + new String[] { + "body", "renderingOwningView" + }); + addAnnotation + (getWhileLoopActionUsage_UntilArgument(), + source, + new String[] { + "body", "untilLoopAction" + }); + addAnnotation + (getWhileLoopActionUsage_WhileArgument(), + source, + new String[] { + "body", "whileLoopAction" + }); + } + + /** + * Initializes the annotations for subsets. + * + * + * @generated + */ + protected void createSubsetsAnnotations() { + String source = "subsets"; + addAnnotation + (getAcceptActionUsage_PayloadParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedReference"), + URI.createURI(eNS_URI).appendFragment("//Step/parameter") + }); + addAnnotation + (getActionDefinition_Action(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Behavior/step"), + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getAllocationDefinition_Allocation(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getAnalysisCaseDefinition_ResultExpression(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Function/expression"), + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature") + }); + addAnnotation + (getAnalysisCaseUsage_ResultExpression(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature") + }); + addAnnotation + (getAnnotatingElement_OwnedAnnotatingRelationship(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//AnnotatingElement/annotation"), + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getAnnotatingElement_OwningAnnotatingRelationship(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/owningRelationship"), + URI.createURI(eNS_URI).appendFragment("//AnnotatingElement/annotation") + }); + addAnnotation + (getAnnotation_OwnedAnnotatingElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Annotation/annotatingElement"), + URI.createURI(eNS_URI).appendFragment("//Relationship/ownedRelatedElement") + }); + addAnnotation + (getAnnotation_OwningAnnotatedElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Annotation/annotatedElement"), + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement") + }); + addAnnotation + (getAnnotation_OwningAnnotatingElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Annotation/annotatingElement"), + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement") + }); + addAnnotation + (getAssignmentActionUsage_Referent(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/member") + }); + addAnnotation + (getAssociation_SourceType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Association/relatedType") + }); + addAnnotation + (getAssociation_TargetType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Association/relatedType") + }); + addAnnotation + (getBehavior_Step(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/feature") + }); + addAnnotation + (getCalculationDefinition_Calculation(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ActionDefinition/action"), + URI.createURI(eNS_URI).appendFragment("//Function/expression") + }); + addAnnotation + (getCaseDefinition_ActorParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Behavior/parameter"), + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getCaseDefinition_ObjectiveRequirement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getCaseDefinition_SubjectParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Behavior/parameter"), + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getCaseUsage_ActorParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Step/parameter"), + URI.createURI(eNS_URI).appendFragment("//Usage/usage") + }); + addAnnotation + (getCaseUsage_ObjectiveRequirement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/usage") + }); + addAnnotation + (getCaseUsage_SubjectParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Step/parameter"), + URI.createURI(eNS_URI).appendFragment("//Usage/usage") + }); + addAnnotation + (getClassifier_OwnedSubclassification(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedSpecialization") + }); + addAnnotation + (getConjugation_OwningType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Conjugation/conjugatedType"), + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement") + }); + addAnnotation + (getConnectionUsage_ConnectionDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ItemUsage/itemDefinition") + }); + addAnnotation + (getConnector_SourceFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Connector/relatedFeature") + }); + addAnnotation + (getConnector_TargetFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Connector/relatedFeature") + }); + addAnnotation + (getDefinition_DirectedUsage(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/directedFeature"), + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getDefinition_OwnedAction(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedOccurrence") + }); + addAnnotation + (getDefinition_OwnedAllocation(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedConnection") + }); + addAnnotation + (getDefinition_OwnedAnalysisCase(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedCase") + }); + addAnnotation + (getDefinition_OwnedAttribute(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedUsage") + }); + addAnnotation + (getDefinition_OwnedCalculation(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedAction") + }); + addAnnotation + (getDefinition_OwnedCase(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedCalculation") + }); + addAnnotation + (getDefinition_OwnedConcern(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedRequirement") + }); + addAnnotation + (getDefinition_OwnedConnection(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedUsage") + }); + addAnnotation + (getDefinition_OwnedConstraint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedOccurrence") + }); + addAnnotation + (getDefinition_OwnedEnumeration(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedAttribute") + }); + addAnnotation + (getDefinition_OwnedFlow(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedConnection") + }); + addAnnotation + (getDefinition_OwnedInterface(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedConnection") + }); + addAnnotation + (getDefinition_OwnedItem(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedOccurrence") + }); + addAnnotation + (getDefinition_OwnedMetadata(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedItem") + }); + addAnnotation + (getDefinition_OwnedOccurrence(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedUsage") + }); + addAnnotation + (getDefinition_OwnedPart(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedItem") + }); + addAnnotation + (getDefinition_OwnedPort(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedUsage") + }); + addAnnotation + (getDefinition_OwnedReference(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedUsage") + }); + addAnnotation + (getDefinition_OwnedRendering(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedPart") + }); + addAnnotation + (getDefinition_OwnedRequirement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedConstraint") + }); + addAnnotation + (getDefinition_OwnedState(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedAction") + }); + addAnnotation + (getDefinition_OwnedTransition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedUsage") + }); + addAnnotation + (getDefinition_OwnedUsage(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature"), + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getDefinition_OwnedUseCase(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedCase") + }); + addAnnotation + (getDefinition_OwnedVerificationCase(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedCase") + }); + addAnnotation + (getDefinition_OwnedView(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedPart") + }); + addAnnotation + (getDefinition_OwnedViewpoint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedRequirement") + }); + addAnnotation + (getDefinition_Usage(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/feature") + }); + addAnnotation + (getDefinition_Variant(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMember") + }); + addAnnotation + (getDefinition_VariantMembership(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMembership") + }); + addAnnotation + (getDifferencing_TypeDifferenced(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement") + }); + addAnnotation + (getDisjoining_OwningType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement"), + URI.createURI(eNS_URI).appendFragment("//Disjoining/typeDisjoined") + }); + addAnnotation + (getDocumentation_DocumentedElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/owner") + }); + addAnnotation + (getElement_Documentation(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedElement") + }); + addAnnotation + (getElement_OwnedAnnotation(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getElement_OwningMembership(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/owningRelationship") + }); + addAnnotation + (getElement_TextualRepresentation(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedElement") + }); + addAnnotation + (getExpression_Result(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/output"), + URI.createURI(eNS_URI).appendFragment("//Step/parameter") + }); + addAnnotation + (getFeature_EndOwningType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/owningType") + }); + addAnnotation + (getFeature_OwnedCrossSubsetting(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/ownedSubsetting") + }); + addAnnotation + (getFeature_OwnedFeatureChaining(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getFeature_OwnedFeatureInverting(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getFeature_OwnedRedefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/ownedSubsetting") + }); + addAnnotation + (getFeature_OwnedReferenceSubsetting(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/ownedSubsetting") + }); + addAnnotation + (getFeature_OwnedSubsetting(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedSpecialization") + }); + addAnnotation + (getFeature_OwnedTypeFeaturing(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getFeature_OwnedTyping(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedSpecialization") + }); + addAnnotation + (getFeature_OwningFeatureMembership(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/owningMembership") + }); + addAnnotation + (getFeature_OwningType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/owningNamespace"), + URI.createURI(eNS_URI).appendFragment("//Feature/featuringType") + }); + addAnnotation + (getFeatureChainExpression_TargetFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/member") + }); + addAnnotation + (getFeatureChaining_FeatureChained(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement") + }); + addAnnotation + (getFeatureInverting_OwningFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//FeatureInverting/featureInverted"), + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement") + }); + addAnnotation + (getFeatureReferenceExpression_Referent(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/member") + }); + addAnnotation + (getFeatureTyping_OwningFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//FeatureTyping/typedFeature") + }); + addAnnotation + (getFeatureValue_FeatureWithValue(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Membership/membershipOwningNamespace") + }); + addAnnotation + (getFlow_FlowEnd(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Connector/connectorEnd") + }); + addAnnotation + (getFlow_PayloadFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature") + }); + addAnnotation + (getFunction_Expression(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Behavior/step") + }); + addAnnotation + (getFunction_Result(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/output"), + URI.createURI(eNS_URI).appendFragment("//Behavior/parameter") + }); + addAnnotation + (getImport_ImportOwningNamespace(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement") + }); + addAnnotation + (getInstantiationExpression_InstantiatedType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/member") + }); + addAnnotation + (getIntersecting_TypeIntersected(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement") + }); + addAnnotation + (getItemUsage_ItemDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//OccurrenceUsage/occurrenceDefinition") + }); + addAnnotation + (getMembership_MembershipOwningNamespace(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement") + }); + addAnnotation + (getMetadataAccessExpression_ReferencedElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/member") + }); + addAnnotation + (getMetadataFeature_Metaclass(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/type") + }); + addAnnotation + (getMultiplicityRange_Bound(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMember") + }); + addAnnotation + (getMultiplicityRange_LowerBound(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//MultiplicityRange/bound") + }); + addAnnotation + (getMultiplicityRange_UpperBound(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//MultiplicityRange/bound") + }); + addAnnotation + (getNamespace_ImportedMembership(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/membership") + }); + addAnnotation + (getNamespace_OwnedImport(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getNamespace_OwnedMember(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/member") + }); + addAnnotation + (getNamespace_OwnedMembership(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/membership"), + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getOccurrenceUsage_IndividualDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//OccurrenceUsage/occurrenceDefinition") + }); + addAnnotation + (getOwningMembership_OwnedMemberElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/ownedRelatedElement") + }); + addAnnotation + (getPackage_FilterCondition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMember") + }); + addAnnotation + (getPartUsage_PartDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ItemUsage/itemDefinition") + }); + addAnnotation + (getPortDefinition_ConjugatedPortDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMember") + }); + addAnnotation + (getRelationship_OwnedRelatedElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/relatedElement") + }); + addAnnotation + (getRelationship_OwningRelatedElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/relatedElement") + }); + addAnnotation + (getRelationship_Source(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/relatedElement") + }); + addAnnotation + (getRelationship_Target(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/relatedElement") + }); + addAnnotation + (getRenderingDefinition_Rendering(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getRequirementDefinition_ActorParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Behavior/parameter"), + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getRequirementDefinition_AssumedConstraint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature") + }); + addAnnotation + (getRequirementDefinition_FramedConcern(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//RequirementDefinition/requiredConstraint") + }); + addAnnotation + (getRequirementDefinition_RequiredConstraint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature") + }); + addAnnotation + (getRequirementDefinition_StakeholderParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Behavior/parameter"), + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getRequirementDefinition_SubjectParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Behavior/parameter"), + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getRequirementUsage_ActorParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Step/parameter"), + URI.createURI(eNS_URI).appendFragment("//Usage/usage") + }); + addAnnotation + (getRequirementUsage_AssumedConstraint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature") + }); + addAnnotation + (getRequirementUsage_FramedConcern(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//RequirementUsage/requiredConstraint") + }); + addAnnotation + (getRequirementUsage_RequiredConstraint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature") + }); + addAnnotation + (getRequirementUsage_StakeholderParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Step/parameter"), + URI.createURI(eNS_URI).appendFragment("//Usage/usage") + }); + addAnnotation + (getRequirementUsage_SubjectParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Step/parameter"), + URI.createURI(eNS_URI).appendFragment("//Usage/usage") + }); + addAnnotation + (getSpecialization_OwningType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement"), + URI.createURI(eNS_URI).appendFragment("//Specialization/specific") + }); + addAnnotation + (getStateDefinition_State(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ActionDefinition/action") + }); + addAnnotation + (getStep_Behavior(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/type") + }); + addAnnotation + (getSubsetting_OwningFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Subsetting/subsettingFeature") + }); + addAnnotation + (getTextualRepresentation_RepresentedElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/owner") + }); + addAnnotation + (getTransitionUsage_EffectAction(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/feature") + }); + addAnnotation + (getTransitionUsage_GuardExpression(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature") + }); + addAnnotation + (getTransitionUsage_Succession(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMember") + }); + addAnnotation + (getTransitionUsage_TriggerAction(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature") + }); + addAnnotation + (getType_DirectedFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/feature") + }); + addAnnotation + (getType_EndFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/feature") + }); + addAnnotation + (getType_Feature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/member") + }); + addAnnotation + (getType_InheritedFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/feature") + }); + addAnnotation + (getType_InheritedMembership(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/membership") + }); + addAnnotation + (getType_Input(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/directedFeature") + }); + addAnnotation + (getType_Multiplicity(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMember") + }); + addAnnotation + (getType_Output(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/directedFeature") + }); + addAnnotation + (getType_OwnedConjugator(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getType_OwnedDifferencing(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getType_OwnedDisjoining(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getType_OwnedEndFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/endFeature"), + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature") + }); + addAnnotation + (getType_OwnedFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMember") + }); + addAnnotation + (getType_OwnedFeatureMembership(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMembership"), + URI.createURI(eNS_URI).appendFragment("//Type/featureMembership") + }); + addAnnotation + (getType_OwnedIntersecting(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getType_OwnedSpecialization(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getType_OwnedUnioning(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/ownedRelationship") + }); + addAnnotation + (getTypeFeaturing_OwningFeatureOfType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement"), + URI.createURI(eNS_URI).appendFragment("//TypeFeaturing/featureOfType") + }); + addAnnotation + (getUnioning_TypeUnioned(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/owningRelatedElement") + }); + addAnnotation + (getUsage_DirectedUsage(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/directedFeature"), + URI.createURI(eNS_URI).appendFragment("//Usage/usage") + }); + addAnnotation + (getUsage_NestedAction(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedOccurrence") + }); + addAnnotation + (getUsage_NestedAllocation(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedConnection") + }); + addAnnotation + (getUsage_NestedAnalysisCase(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedCase") + }); + addAnnotation + (getUsage_NestedAttribute(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedUsage") + }); + addAnnotation + (getUsage_NestedCalculation(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedAction") + }); + addAnnotation + (getUsage_NestedCase(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedCalculation") + }); + addAnnotation + (getUsage_NestedConcern(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedRequirement") + }); + addAnnotation + (getUsage_NestedConnection(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedUsage") + }); + addAnnotation + (getUsage_NestedConstraint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedOccurrence") + }); + addAnnotation + (getUsage_NestedEnumeration(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedAttribute") + }); + addAnnotation + (getUsage_NestedFlow(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedConnection") + }); + addAnnotation + (getUsage_NestedInterface(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedConnection") + }); + addAnnotation + (getUsage_NestedItem(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedOccurrence") + }); + addAnnotation + (getUsage_NestedMetadata(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedItem") + }); + addAnnotation + (getUsage_NestedOccurrence(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedUsage") + }); + addAnnotation + (getUsage_NestedPart(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedItem") + }); + addAnnotation + (getUsage_NestedPort(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedUsage") + }); + addAnnotation + (getUsage_NestedReference(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedUsage") + }); + addAnnotation + (getUsage_NestedRendering(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedPart") + }); + addAnnotation + (getUsage_NestedRequirement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedConstraint") + }); + addAnnotation + (getUsage_NestedState(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedAction") + }); + addAnnotation + (getUsage_NestedTransition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedUsage") + }); + addAnnotation + (getUsage_NestedUsage(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedFeature"), + URI.createURI(eNS_URI).appendFragment("//Usage/usage") + }); + addAnnotation + (getUsage_NestedUseCase(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedCase") + }); + addAnnotation + (getUsage_NestedVerificationCase(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedCase") + }); + addAnnotation + (getUsage_NestedView(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedPart") + }); + addAnnotation + (getUsage_NestedViewpoint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedRequirement") + }); + addAnnotation + (getUsage_OwningDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/owningType") + }); + addAnnotation + (getUsage_OwningUsage(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/owningType") + }); + addAnnotation + (getUsage_Usage(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/feature") + }); + addAnnotation + (getUsage_Variant(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMember") + }); + addAnnotation + (getUsage_VariantMembership(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMembership") + }); + addAnnotation + (getVerificationCaseUsage_VerificationCaseDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//CaseUsage/caseDefinition") + }); + addAnnotation + (getViewDefinition_SatisfiedViewpoint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/ownedRequirement") + }); + addAnnotation + (getViewDefinition_View(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/usage") + }); + addAnnotation + (getViewDefinition_ViewCondition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMember") + }); + addAnnotation + (getViewUsage_ExposedElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/member") + }); + addAnnotation + (getViewUsage_SatisfiedViewpoint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/nestedRequirement") + }); + addAnnotation + (getViewUsage_ViewCondition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Namespace/ownedMember") + }); + } + + /** + * Initializes the annotations for redefines. + * + * + * @generated + */ + protected void createRedefinesAnnotations() { + String source = "redefines"; + addAnnotation + (getActionUsage_ActionDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Step/behavior"), + URI.createURI(eNS_URI).appendFragment("//OccurrenceUsage/occurrenceDefinition") + }); + addAnnotation + (getActorMembership_OwnedActorParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ParameterMembership/ownedMemberParameter") + }); + addAnnotation + (getAllocationUsage_AllocationDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ConnectionUsage/connectionDefinition") + }); + addAnnotation + (getAnalysisCaseUsage_AnalysisCaseDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//CaseUsage/caseDefinition") + }); + addAnnotation + (getAnnotation_AnnotatedElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getAnnotation_AnnotatingElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getAssociation_AssociationEnd(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/endFeature") + }); + addAnnotation + (getAssociation_RelatedType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/relatedElement") + }); + addAnnotation + (getAssociation_SourceType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getAssociation_TargetType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getAttributeUsage_AttributeDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/definition") + }); + addAnnotation + (getBehavior_Parameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/directedFeature") + }); + addAnnotation + (getBooleanExpression_Predicate(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Expression/function") + }); + addAnnotation + (getCalculationUsage_CalculationDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Expression/function"), + URI.createURI(eNS_URI).appendFragment("//ActionUsage/actionDefinition") + }); + addAnnotation + (getCaseUsage_CaseDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//CalculationUsage/calculationDefinition") + }); + addAnnotation + (getConcernUsage_ConcernDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//RequirementUsage/requirementDefinition") + }); + addAnnotation + (getConjugatedPortDefinition_OriginalPortDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/owningNamespace") + }); + addAnnotation + (getConjugatedPortDefinition_OwnedPortConjugator(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/ownedConjugator") + }); + addAnnotation + (getConjugatedPortTyping_ConjugatedPortDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//FeatureTyping/type") + }); + addAnnotation + (getConjugation_ConjugatedType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getConjugation_OriginalType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getConnectionDefinition_ConnectionEnd(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Association/associationEnd") + }); + addAnnotation + (getConnectionUsage_ConnectionDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Connector/association") + }); + addAnnotation + (getConnector_Association(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/type") + }); + addAnnotation + (getConnector_ConnectorEnd(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/endFeature") + }); + addAnnotation + (getConnector_RelatedFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/relatedElement") + }); + addAnnotation + (getConnector_SourceFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getConnector_TargetFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getConstraintUsage_ConstraintDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//BooleanExpression/predicate") + }); + addAnnotation + (getCrossSubsetting_CrossedFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Subsetting/subsettedFeature") + }); + addAnnotation + (getCrossSubsetting_CrossingFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Subsetting/owningFeature"), + URI.createURI(eNS_URI).appendFragment("//Subsetting/subsettingFeature") + }); + addAnnotation + (getDependency_Client(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getDependency_Supplier(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getDifferencing_DifferencingType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getDifferencing_TypeDifferenced(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getDisjoining_DisjoiningType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getDisjoining_TypeDisjoined(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getDocumentation_DocumentedElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//AnnotatingElement/annotatedElement") + }); + addAnnotation + (getElementFilterMembership_Condition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//OwningMembership/ownedMemberElement") + }); + addAnnotation + (getEnumerationDefinition_EnumeratedValue(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Definition/variant") + }); + addAnnotation + (getEnumerationUsage_EnumerationDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//AttributeUsage/attributeDefinition") + }); + addAnnotation + (getExhibitStateUsage_ExhibitedState(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//PerformActionUsage/performedAction") + }); + addAnnotation + (getExpression_Function(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Step/behavior") + }); + addAnnotation + (getFeatureChaining_ChainingFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getFeatureChaining_FeatureChained(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getFeatureInverting_FeatureInverted(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getFeatureInverting_InvertingFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getFeatureMembership_OwnedMemberFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//OwningMembership/ownedMemberElement") + }); + addAnnotation + (getFeatureMembership_OwningType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Membership/membershipOwningNamespace") + }); + addAnnotation + (getFeatureTyping_OwningFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Specialization/owningType") + }); + addAnnotation + (getFeatureTyping_Type(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Specialization/general") + }); + addAnnotation + (getFeatureTyping_TypedFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Specialization/specific") + }); + addAnnotation + (getFeatureValue_Value(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//OwningMembership/ownedMemberElement") + }); + addAnnotation + (getFlow_Interaction(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Connector/association"), + URI.createURI(eNS_URI).appendFragment("//Step/behavior") + }); + addAnnotation + (getFlowDefinition_FlowEnd(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Association/associationEnd") + }); + addAnnotation + (getFlowUsage_FlowDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ActionUsage/actionDefinition"), + URI.createURI(eNS_URI).appendFragment("//Flow/interaction") + }); + addAnnotation + (getFramedConcernMembership_OwnedConcern(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//RequirementConstraintMembership/ownedConstraint") + }); + addAnnotation + (getFramedConcernMembership_ReferencedConcern(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//RequirementConstraintMembership/referencedConstraint") + }); + addAnnotation + (getImport_ImportOwningNamespace(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getIncludeUseCaseUsage_UseCaseIncluded(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//PerformActionUsage/performedAction") + }); + addAnnotation + (getInterfaceDefinition_InterfaceEnd(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ConnectionDefinition/connectionEnd") + }); + addAnnotation + (getInterfaceUsage_InterfaceDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ConnectionUsage/connectionDefinition") + }); + addAnnotation + (getIntersecting_IntersectingType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getIntersecting_TypeIntersected(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getMembership_MemberElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getMembership_MembershipOwningNamespace(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getMembershipImport_ImportedMembership(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getMetadataUsage_MetadataDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ItemUsage/itemDefinition"), + URI.createURI(eNS_URI).appendFragment("//MetadataFeature/metaclass") + }); + addAnnotation + (getNamespaceImport_ImportedNamespace(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getObjectiveMembership_OwnedObjectiveRequirement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//FeatureMembership/ownedMemberFeature") + }); + addAnnotation + (getOccurrenceUsage_OccurrenceDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Usage/definition") + }); + addAnnotation + (getOwningMembership_OwnedMemberElementId(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Membership/memberElementId") + }); + addAnnotation + (getOwningMembership_OwnedMemberName(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Membership/memberName") + }); + addAnnotation + (getOwningMembership_OwnedMemberShortName(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Membership/memberShortName") + }); + addAnnotation + (getOwningMembership_OwnedMemberElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Membership/memberElement") + }); + addAnnotation + (getParameterMembership_OwnedMemberParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//FeatureMembership/ownedMemberFeature") + }); + addAnnotation + (getPerformActionUsage_PerformedAction(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//EventOccurrenceUsage/eventOccurrence") + }); + addAnnotation + (getPortConjugation_ConjugatedPortDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Conjugation/owningType") + }); + addAnnotation + (getPortConjugation_OriginalPortDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Conjugation/originalType") + }); + addAnnotation + (getPortUsage_PortDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//OccurrenceUsage/occurrenceDefinition") + }); + addAnnotation + (getRedefinition_RedefinedFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Subsetting/subsettedFeature") + }); + addAnnotation + (getRedefinition_RedefiningFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Subsetting/subsettingFeature") + }); + addAnnotation + (getReferenceSubsetting_ReferencedFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Subsetting/subsettedFeature") + }); + addAnnotation + (getReferenceSubsetting_ReferencingFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Subsetting/owningFeature"), + URI.createURI(eNS_URI).appendFragment("//Subsetting/subsettingFeature") + }); + addAnnotation + (getRenderingUsage_RenderingDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//PartUsage/partDefinition") + }); + addAnnotation + (getRequirementConstraintMembership_OwnedConstraint(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//FeatureMembership/ownedMemberFeature") + }); + addAnnotation + (getRequirementDefinition_ReqId(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/declaredShortName") + }); + addAnnotation + (getRequirementUsage_ReqId(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Element/declaredShortName") + }); + addAnnotation + (getRequirementUsage_RequirementDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ConstraintUsage/constraintDefinition") + }); + addAnnotation + (getRequirementVerificationMembership_OwnedRequirement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//RequirementConstraintMembership/ownedConstraint") + }); + addAnnotation + (getRequirementVerificationMembership_VerifiedRequirement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//RequirementConstraintMembership/referencedConstraint") + }); + addAnnotation + (getResultExpressionMembership_OwnedResultExpression(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//FeatureMembership/ownedMemberFeature") + }); + addAnnotation + (getSatisfyRequirementUsage_SatisfiedRequirement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//AssertConstraintUsage/assertedConstraint") + }); + addAnnotation + (getSpecialization_General(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getSpecialization_Specific(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getStakeholderMembership_OwnedStakeholderParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ParameterMembership/ownedMemberParameter") + }); + addAnnotation + (getStateSubactionMembership_Action(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//FeatureMembership/ownedMemberFeature") + }); + addAnnotation + (getStateUsage_StateDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ActionUsage/actionDefinition") + }); + addAnnotation + (getStep_Parameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Type/directedFeature") + }); + addAnnotation + (getSubclassification_OwningClassifier(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Specialization/owningType") + }); + addAnnotation + (getSubclassification_Subclassifier(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Specialization/specific") + }); + addAnnotation + (getSubclassification_Superclassifier(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Specialization/general") + }); + addAnnotation + (getSubjectMembership_OwnedSubjectParameter(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//ParameterMembership/ownedMemberParameter") + }); + addAnnotation + (getSubsetting_OwningFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Specialization/owningType") + }); + addAnnotation + (getSubsetting_SubsettedFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Specialization/general") + }); + addAnnotation + (getSubsetting_SubsettingFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Specialization/specific") + }); + addAnnotation + (getTextualRepresentation_RepresentedElement(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//AnnotatingElement/annotatedElement") + }); + addAnnotation + (getTransitionFeatureMembership_TransitionFeature(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//FeatureMembership/ownedMemberFeature") + }); + addAnnotation + (getTypeFeaturing_FeatureOfType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getTypeFeaturing_FeaturingType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getUnioning_TypeUnioned(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/source") + }); + addAnnotation + (getUnioning_UnioningType(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Relationship/target") + }); + addAnnotation + (getUsage_MayTimeVary(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/isVariable") + }); + addAnnotation + (getUsage_Definition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//Feature/type") + }); + addAnnotation + (getUseCaseUsage_UseCaseDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//CaseUsage/caseDefinition") + }); + addAnnotation + (getVariantMembership_OwnedVariantUsage(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//OwningMembership/ownedMemberElement") + }); + addAnnotation + (getViewpointUsage_ViewpointDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//RequirementUsage/requirementDefinition") + }); + addAnnotation + (getViewRenderingMembership_OwnedRendering(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//FeatureMembership/ownedMemberFeature") + }); + addAnnotation + (getViewUsage_ViewDefinition(), + source, + new String[] { + }, + new URI[] { + URI.createURI(eNS_URI).appendFragment("//PartUsage/partDefinition") + }); + } + + /** + * Initializes the annotations for union. + * + * + * @generated + */ + protected void createUnionAnnotations() { + String source = "union"; + addAnnotation + (getNamespace_Membership(), + source, + new String[] { + }); + } + +} //SysMLPackageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TerminateActionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TerminateActionUsageImpl.java new file mode 100644 index 000000000..3772fc38d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TerminateActionUsageImpl.java @@ -0,0 +1,81 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TerminateActionUsage; + +/** + * + * An implementation of the model object 'Terminate Action Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.TerminateActionUsageImpl#getTerminatedOccurrenceArgument Terminated Occurrence Argument}
  • + *
+ * + * @generated + */ +public class TerminateActionUsageImpl extends ActionUsageImpl implements TerminateActionUsage { + /** + * + * + * @generated + */ + protected TerminateActionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.TERMINATE_ACTION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public Expression getTerminatedOccurrenceArgument() { + return (Expression)eGet(SysMLPackage.Literals.TERMINATE_ACTION_USAGE__TERMINATED_OCCURRENCE_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTerminatedOccurrenceArgument(Expression newTerminatedOccurrenceArgument) { + eSet(SysMLPackage.Literals.TERMINATE_ACTION_USAGE__TERMINATED_OCCURRENCE_ARGUMENT, newTerminatedOccurrenceArgument); + } + +} //TerminateActionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TextualRepresentationImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TextualRepresentationImpl.java new file mode 100644 index 000000000..17e488851 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TextualRepresentationImpl.java @@ -0,0 +1,148 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TextualRepresentation; + +/** + * + * An implementation of the model object 'Textual Representation'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.TextualRepresentationImpl#getBody Body}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TextualRepresentationImpl#getLanguage Language}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TextualRepresentationImpl#getRepresentedElement Represented Element}
  • + *
+ * + * @generated + */ +public class TextualRepresentationImpl extends AnnotatingElementImpl implements TextualRepresentation { + /** + * + * + * @generated + */ + protected TextualRepresentationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.TEXTUAL_REPRESENTATION; + } + + /** + * + * + * @generated + */ + @Override + public String getBody() { + return (String)eGet(SysMLPackage.Literals.TEXTUAL_REPRESENTATION__BODY, true); + } + + /** + * + * + * @generated + */ + @Override + public void setBody(String newBody) { + eSet(SysMLPackage.Literals.TEXTUAL_REPRESENTATION__BODY, newBody); + } + + /** + * + * + * @generated + */ + @Override + public String getLanguage() { + return (String)eGet(SysMLPackage.Literals.TEXTUAL_REPRESENTATION__LANGUAGE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setLanguage(String newLanguage) { + eSet(SysMLPackage.Literals.TEXTUAL_REPRESENTATION__LANGUAGE, newLanguage); + } + + /** + * + * + * @generated + */ + @Override + public Element getRepresentedElement() { + return (Element)eGet(SysMLPackage.Literals.TEXTUAL_REPRESENTATION__REPRESENTED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setRepresentedElement(Element newRepresentedElement) { + eSet(SysMLPackage.Literals.TEXTUAL_REPRESENTATION__REPRESENTED_ELEMENT, newRepresentedElement); + } + + /** + * + * + * @generated + */ + @Override + public EList getAnnotatedElement() { + var sourceValue = this.getRepresentedElement(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //TextualRepresentationImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TransitionFeatureMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TransitionFeatureMembershipImpl.java new file mode 100644 index 000000000..0427e9bd0 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TransitionFeatureMembershipImpl.java @@ -0,0 +1,127 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TransitionFeatureKind; +import org.omg.sysml.model.sysml.TransitionFeatureMembership; + +/** + * + * An implementation of the model object 'Transition Feature Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.TransitionFeatureMembershipImpl#getKind Kind}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TransitionFeatureMembershipImpl#getTransitionFeature Transition Feature}
  • + *
+ * + * @generated + */ +public class TransitionFeatureMembershipImpl extends FeatureMembershipImpl implements TransitionFeatureMembership { + /** + * + * + * @generated + */ + protected TransitionFeatureMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.TRANSITION_FEATURE_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public TransitionFeatureKind getKind() { + return (TransitionFeatureKind)eGet(SysMLPackage.Literals.TRANSITION_FEATURE_MEMBERSHIP__KIND, true); + } + + /** + * + * + * @generated + */ + @Override + public void setKind(TransitionFeatureKind newKind) { + eSet(SysMLPackage.Literals.TRANSITION_FEATURE_MEMBERSHIP__KIND, newKind); + } + + /** + * + * + * @generated + */ + @Override + public Step getTransitionFeature() { + return (Step)eGet(SysMLPackage.Literals.TRANSITION_FEATURE_MEMBERSHIP__TRANSITION_FEATURE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTransitionFeature(Step newTransitionFeature) { + eSet(SysMLPackage.Literals.TRANSITION_FEATURE_MEMBERSHIP__TRANSITION_FEATURE, newTransitionFeature); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberFeature() { + var sourceValue = this.getTransitionFeature(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //TransitionFeatureMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TransitionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TransitionUsageImpl.java new file mode 100644 index 000000000..991ca8709 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TransitionUsageImpl.java @@ -0,0 +1,236 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.Succession; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TransitionUsage; + +/** + * + * An implementation of the model object 'Transition Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.TransitionUsageImpl#getEffectAction Effect Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TransitionUsageImpl#getGuardExpression Guard Expression}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TransitionUsageImpl#getSource Source}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TransitionUsageImpl#getSuccession Succession}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TransitionUsageImpl#getTarget Target}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TransitionUsageImpl#getTriggerAction Trigger Action}
  • + *
+ * + * @generated + */ +public class TransitionUsageImpl extends ActionUsageImpl implements TransitionUsage { + /** + * + * + * @generated + */ + protected TransitionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.TRANSITION_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getEffectAction() { + return (EList)eGet(SysMLPackage.Literals.TRANSITION_USAGE__EFFECT_ACTION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getGuardExpression() { + return (EList)eGet(SysMLPackage.Literals.TRANSITION_USAGE__GUARD_EXPRESSION, true); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getSource() { + return (ActionUsage)eGet(SysMLPackage.Literals.TRANSITION_USAGE__SOURCE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSource(ActionUsage newSource) { + eSet(SysMLPackage.Literals.TRANSITION_USAGE__SOURCE, newSource); + } + + /** + * + * + * @generated + */ + @Override + public Succession getSuccession() { + return (Succession)eGet(SysMLPackage.Literals.TRANSITION_USAGE__SUCCESSION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setSuccession(Succession newSuccession) { + eSet(SysMLPackage.Literals.TRANSITION_USAGE__SUCCESSION, newSuccession); + } + + /** + * + * + * @generated + */ + @Override + public ActionUsage getTarget() { + return (ActionUsage)eGet(SysMLPackage.Literals.TRANSITION_USAGE__TARGET, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTarget(ActionUsage newTarget) { + eSet(SysMLPackage.Literals.TRANSITION_USAGE__TARGET, newTarget); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getTriggerAction() { + return (EList)eGet(SysMLPackage.Literals.TRANSITION_USAGE__TRIGGER_ACTION, true); + } + + /** + * The cached invocation delegate for the '{@link #sourceFeature() Source Feature}' operation. + * + * + * @see #sourceFeature() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate SOURCE_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TRANSITION_USAGE___SOURCE_FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Feature sourceFeature() { + try { + return (Feature)SOURCE_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #triggerPayloadParameter() Trigger Payload Parameter}' operation. + * + * + * @see #triggerPayloadParameter() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate TRIGGER_PAYLOAD_PARAMETER__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TRANSITION_USAGE___TRIGGER_PAYLOAD_PARAMETER).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public ReferenceUsage triggerPayloadParameter() { + try { + return (ReferenceUsage)TRIGGER_PAYLOAD_PARAMETER__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.TRANSITION_USAGE___SOURCE_FEATURE: + return sourceFeature(); + case SysMLPackage.TRANSITION_USAGE___TRIGGER_PAYLOAD_PARAMETER: + return triggerPayloadParameter(); + } + return super.eInvoke(operationID, arguments); + } + +} //TransitionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TriggerInvocationExpressionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TriggerInvocationExpressionImpl.java new file mode 100644 index 000000000..6670cf495 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TriggerInvocationExpressionImpl.java @@ -0,0 +1,81 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TriggerInvocationExpression; +import org.omg.sysml.model.sysml.TriggerKind; + +/** + * + * An implementation of the model object 'Trigger Invocation Expression'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.TriggerInvocationExpressionImpl#getKind Kind}
  • + *
+ * + * @generated + */ +public class TriggerInvocationExpressionImpl extends InvocationExpressionImpl implements TriggerInvocationExpression { + /** + * + * + * @generated + */ + protected TriggerInvocationExpressionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.TRIGGER_INVOCATION_EXPRESSION; + } + + /** + * + * + * @generated + */ + @Override + public TriggerKind getKind() { + return (TriggerKind)eGet(SysMLPackage.Literals.TRIGGER_INVOCATION_EXPRESSION__KIND, true); + } + + /** + * + * + * @generated + */ + @Override + public void setKind(TriggerKind newKind) { + eSet(SysMLPackage.Literals.TRIGGER_INVOCATION_EXPRESSION__KIND, newKind); + } + +} //TriggerInvocationExpressionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TypeFeaturingImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TypeFeaturingImpl.java new file mode 100644 index 000000000..5321e3b43 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TypeFeaturingImpl.java @@ -0,0 +1,172 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.TypeFeaturing; + +/** + * + * An implementation of the model object 'Type Featuring'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.TypeFeaturingImpl#getFeatureOfType Feature Of Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeFeaturingImpl#getFeaturingType Featuring Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeFeaturingImpl#getOwningFeatureOfType Owning Feature Of Type}
  • + *
+ * + * @generated + */ +public class TypeFeaturingImpl extends RelationshipImpl implements TypeFeaturing { + /** + * + * + * @generated + */ + protected TypeFeaturingImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.TYPE_FEATURING; + } + + /** + * + * + * @generated + */ + @Override + public Feature getFeatureOfType() { + return (Feature)eGet(SysMLPackage.Literals.TYPE_FEATURING__FEATURE_OF_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setFeatureOfType(Feature newFeatureOfType) { + eSet(SysMLPackage.Literals.TYPE_FEATURING__FEATURE_OF_TYPE, newFeatureOfType); + } + + /** + * + * + * @generated + */ + @Override + public Type getFeaturingType() { + return (Type)eGet(SysMLPackage.Literals.TYPE_FEATURING__FEATURING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setFeaturingType(Type newFeaturingType) { + eSet(SysMLPackage.Literals.TYPE_FEATURING__FEATURING_TYPE, newFeaturingType); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwningFeatureOfType() { + return (Feature)eGet(SysMLPackage.Literals.TYPE_FEATURING__OWNING_FEATURE_OF_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningFeatureOfType(Feature newOwningFeatureOfType) { + eSet(SysMLPackage.Literals.TYPE_FEATURING__OWNING_FEATURE_OF_TYPE, newOwningFeatureOfType); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getFeatureOfType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getFeaturingType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //TypeFeaturingImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TypeImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TypeImpl.java new file mode 100644 index 000000000..13d2982de --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/TypeImpl.java @@ -0,0 +1,783 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Conjugation; +import org.omg.sysml.model.sysml.Differencing; +import org.omg.sysml.model.sysml.Disjoining; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureDirectionKind; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.Intersecting; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.Specialization; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.Unioning; + +/** + * + * An implementation of the model object 'Type'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#isIsAbstract Is Abstract}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#isIsConjugated Is Conjugated}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#isIsSufficient Is Sufficient}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getDifferencingType Differencing Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getDirectedFeature Directed Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getEndFeature End Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getFeature Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getFeatureMembership Feature Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getInheritedFeature Inherited Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getInheritedMembership Inherited Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getInput Input}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getIntersectingType Intersecting Type}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getMultiplicity Multiplicity}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getOutput Output}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getOwnedConjugator Owned Conjugator}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getOwnedDifferencing Owned Differencing}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getOwnedDisjoining Owned Disjoining}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getOwnedEndFeature Owned End Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getOwnedFeature Owned Feature}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getOwnedFeatureMembership Owned Feature Membership}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getOwnedIntersecting Owned Intersecting}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getOwnedSpecialization Owned Specialization}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getOwnedUnioning Owned Unioning}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.TypeImpl#getUnioningType Unioning Type}
  • + *
+ * + * @generated + */ +public class TypeImpl extends NamespaceImpl implements Type { + /** + * + * + * @generated + */ + protected TypeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.TYPE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsAbstract() { + return (Boolean)eGet(SysMLPackage.Literals.TYPE__IS_ABSTRACT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsAbstract(boolean newIsAbstract) { + eSet(SysMLPackage.Literals.TYPE__IS_ABSTRACT, newIsAbstract); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsConjugated() { + return (Boolean)eGet(SysMLPackage.Literals.TYPE__IS_CONJUGATED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsConjugated(boolean newIsConjugated) { + eSet(SysMLPackage.Literals.TYPE__IS_CONJUGATED, newIsConjugated); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsSufficient() { + return (Boolean)eGet(SysMLPackage.Literals.TYPE__IS_SUFFICIENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsSufficient(boolean newIsSufficient) { + eSet(SysMLPackage.Literals.TYPE__IS_SUFFICIENT, newIsSufficient); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getDifferencingType() { + return (EList)eGet(SysMLPackage.Literals.TYPE__DIFFERENCING_TYPE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getDirectedFeature() { + return (EList)eGet(SysMLPackage.Literals.TYPE__DIRECTED_FEATURE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getEndFeature() { + return (EList)eGet(SysMLPackage.Literals.TYPE__END_FEATURE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getFeature() { + return (EList)eGet(SysMLPackage.Literals.TYPE__FEATURE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getFeatureMembership() { + return (EList)eGet(SysMLPackage.Literals.TYPE__FEATURE_MEMBERSHIP, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getInheritedFeature() { + return (EList)eGet(SysMLPackage.Literals.TYPE__INHERITED_FEATURE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getInheritedMembership() { + return (EList)eGet(SysMLPackage.Literals.TYPE__INHERITED_MEMBERSHIP, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getInput() { + return (EList)eGet(SysMLPackage.Literals.TYPE__INPUT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getIntersectingType() { + return (EList)eGet(SysMLPackage.Literals.TYPE__INTERSECTING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public Multiplicity getMultiplicity() { + return (Multiplicity)eGet(SysMLPackage.Literals.TYPE__MULTIPLICITY, true); + } + + /** + * + * + * @generated + */ + @Override + public void setMultiplicity(Multiplicity newMultiplicity) { + eSet(SysMLPackage.Literals.TYPE__MULTIPLICITY, newMultiplicity); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOutput() { + return (EList)eGet(SysMLPackage.Literals.TYPE__OUTPUT, true); + } + + /** + * + * + * @generated + */ + @Override + public Conjugation getOwnedConjugator() { + return (Conjugation)eGet(SysMLPackage.Literals.TYPE__OWNED_CONJUGATOR, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedConjugator(Conjugation newOwnedConjugator) { + eSet(SysMLPackage.Literals.TYPE__OWNED_CONJUGATOR, newOwnedConjugator); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedDifferencing() { + return (EList)eGet(SysMLPackage.Literals.TYPE__OWNED_DIFFERENCING, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedDisjoining() { + return (EList)eGet(SysMLPackage.Literals.TYPE__OWNED_DISJOINING, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedEndFeature() { + return (EList)eGet(SysMLPackage.Literals.TYPE__OWNED_END_FEATURE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedFeature() { + return (EList)eGet(SysMLPackage.Literals.TYPE__OWNED_FEATURE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedFeatureMembership() { + return (EList)eGet(SysMLPackage.Literals.TYPE__OWNED_FEATURE_MEMBERSHIP, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedIntersecting() { + return (EList)eGet(SysMLPackage.Literals.TYPE__OWNED_INTERSECTING, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedSpecialization() { + return (EList)eGet(SysMLPackage.Literals.TYPE__OWNED_SPECIALIZATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getOwnedUnioning() { + return (EList)eGet(SysMLPackage.Literals.TYPE__OWNED_UNIONING, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getUnioningType() { + return (EList)eGet(SysMLPackage.Literals.TYPE__UNIONING_TYPE, true); + } + + /** + * The cached invocation delegate for the '{@link #allRedefinedFeaturesOf(org.omg.sysml.model.sysml.Membership) All Redefined Features Of}' operation. + * + * + * @see #allRedefinedFeaturesOf(org.omg.sysml.model.sysml.Membership) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_REDEFINED_FEATURES_OF_MEMBERSHIP__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allRedefinedFeaturesOf(Membership membership) { + try { + return (EList)ALL_REDEFINED_FEATURES_OF_MEMBERSHIP__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{membership})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #allSupertypes() All Supertypes}' operation. + * + * + * @see #allSupertypes() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate ALL_SUPERTYPES__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___ALL_SUPERTYPES).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList allSupertypes() { + try { + return (EList)ALL_SUPERTYPES__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #directionOf(org.omg.sysml.model.sysml.Feature) Direction Of}' operation. + * + * + * @see #directionOf(org.omg.sysml.model.sysml.Feature) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate DIRECTION_OF_FEATURE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___DIRECTION_OF__FEATURE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public FeatureDirectionKind directionOf(Feature feature) { + try { + return (FeatureDirectionKind)DIRECTION_OF_FEATURE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{feature})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #directionOfExcluding(org.omg.sysml.model.sysml.Feature, org.eclipse.emf.common.util.EList) Direction Of Excluding}' operation. + * + * + * @see #directionOfExcluding(org.omg.sysml.model.sysml.Feature, org.eclipse.emf.common.util.EList) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate DIRECTION_OF_EXCLUDING_FEATURE_ELIST__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public FeatureDirectionKind directionOfExcluding(Feature feature, EList excluded) { + try { + return (FeatureDirectionKind)DIRECTION_OF_EXCLUDING_FEATURE_ELIST__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(2, new Object[]{feature, excluded})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #inheritableMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) Inheritable Memberships}' operation. + * + * + * @see #inheritableMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate INHERITABLE_MEMBERSHIPS_ELIST_ELIST_BOOLEAN__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList inheritableMemberships(EList excludedNamespaces, EList excludedTypes, boolean excludeImplied) { + try { + return (EList)INHERITABLE_MEMBERSHIPS_ELIST_ELIST_BOOLEAN__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(3, new Object[]{excludedNamespaces, excludedTypes, excludeImplied})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #inheritedMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) Inherited Memberships}' operation. + * + * + * @see #inheritedMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate INHERITED_MEMBERSHIPS_ELIST_ELIST_BOOLEAN__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList inheritedMemberships(EList excludedNamespaces, EList excludedTypes, boolean excludeImplied) { + try { + return (EList)INHERITED_MEMBERSHIPS_ELIST_ELIST_BOOLEAN__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(3, new Object[]{excludedNamespaces, excludedTypes, excludeImplied})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #isCompatibleWith(org.omg.sysml.model.sysml.Type) Is Compatible With}' operation. + * + * + * @see #isCompatibleWith(org.omg.sysml.model.sysml.Type) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate IS_COMPATIBLE_WITH_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___IS_COMPATIBLE_WITH__TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean isCompatibleWith(Type otherType) { + try { + return (Boolean)IS_COMPATIBLE_WITH_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{otherType})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #multiplicities() Multiplicities}' operation. + * + * + * @see #multiplicities() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate MULTIPLICITIES__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___MULTIPLICITIES).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList multiplicities() { + try { + return (EList)MULTIPLICITIES__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #nonPrivateMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) Non Private Memberships}' operation. + * + * + * @see #nonPrivateMemberships(org.eclipse.emf.common.util.EList, org.eclipse.emf.common.util.EList, boolean) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate NON_PRIVATE_MEMBERSHIPS_ELIST_ELIST_BOOLEAN__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList nonPrivateMemberships(EList excludedNamespaces, EList excludedTypes, boolean excludeImplied) { + try { + return (EList)NON_PRIVATE_MEMBERSHIPS_ELIST_ELIST_BOOLEAN__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(3, new Object[]{excludedNamespaces, excludedTypes, excludeImplied})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #removeRedefinedFeatures(org.eclipse.emf.common.util.EList) Remove Redefined Features}' operation. + * + * + * @see #removeRedefinedFeatures(org.eclipse.emf.common.util.EList) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate REMOVE_REDEFINED_FEATURES_ELIST__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___REMOVE_REDEFINED_FEATURES__ELIST).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList removeRedefinedFeatures(EList memberships) { + try { + return (EList)REMOVE_REDEFINED_FEATURES_ELIST__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{memberships})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #specializes(org.omg.sysml.model.sysml.Type) Specializes}' operation. + * + * + * @see #specializes(org.omg.sysml.model.sysml.Type) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate SPECIALIZES_TYPE__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___SPECIALIZES__TYPE).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean specializes(Type supertype) { + try { + return (Boolean)SPECIALIZES_TYPE__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{supertype})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #specializesFromLibrary(java.lang.String) Specializes From Library}' operation. + * + * + * @see #specializesFromLibrary(java.lang.String) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate SPECIALIZES_FROM_LIBRARY_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___SPECIALIZES_FROM_LIBRARY__STRING).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean specializesFromLibrary(String libraryTypeName) { + try { + return (Boolean)SPECIALIZES_FROM_LIBRARY_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{libraryTypeName})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * The cached invocation delegate for the '{@link #supertypes(boolean) Supertypes}' operation. + * + * + * @see #supertypes(boolean) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate SUPERTYPES_BOOLEAN__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.TYPE___SUPERTYPES__BOOLEAN).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList supertypes(boolean excludeImplied) { + try { + return (EList)SUPERTYPES_BOOLEAN__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{excludeImplied})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + @SuppressWarnings("unchecked") + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.TYPE___ALL_REDEFINED_FEATURES_OF__MEMBERSHIP: + return allRedefinedFeaturesOf((Membership)arguments.get(0)); + case SysMLPackage.TYPE___ALL_SUPERTYPES: + return allSupertypes(); + case SysMLPackage.TYPE___DIRECTION_OF__FEATURE: + return directionOf((Feature)arguments.get(0)); + case SysMLPackage.TYPE___DIRECTION_OF_EXCLUDING__FEATURE_ELIST: + return directionOfExcluding((Feature)arguments.get(0), (EList)arguments.get(1)); + case SysMLPackage.TYPE___INHERITABLE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN: + return inheritableMemberships((EList)arguments.get(0), (EList)arguments.get(1), (Boolean)arguments.get(2)); + case SysMLPackage.TYPE___INHERITED_MEMBERSHIPS__ELIST_ELIST_BOOLEAN: + return inheritedMemberships((EList)arguments.get(0), (EList)arguments.get(1), (Boolean)arguments.get(2)); + case SysMLPackage.TYPE___IS_COMPATIBLE_WITH__TYPE: + return isCompatibleWith((Type)arguments.get(0)); + case SysMLPackage.TYPE___MULTIPLICITIES: + return multiplicities(); + case SysMLPackage.TYPE___NON_PRIVATE_MEMBERSHIPS__ELIST_ELIST_BOOLEAN: + return nonPrivateMemberships((EList)arguments.get(0), (EList)arguments.get(1), (Boolean)arguments.get(2)); + case SysMLPackage.TYPE___REMOVE_REDEFINED_FEATURES__ELIST: + return removeRedefinedFeatures((EList)arguments.get(0)); + case SysMLPackage.TYPE___SPECIALIZES__TYPE: + return specializes((Type)arguments.get(0)); + case SysMLPackage.TYPE___SPECIALIZES_FROM_LIBRARY__STRING: + return specializesFromLibrary((String)arguments.get(0)); + case SysMLPackage.TYPE___SUPERTYPES__BOOLEAN: + return supertypes((Boolean)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + +} //TypeImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UnioningImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UnioningImpl.java new file mode 100644 index 000000000..4ca68b055 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UnioningImpl.java @@ -0,0 +1,150 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.Unioning; + +/** + * + * An implementation of the model object 'Unioning'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.UnioningImpl#getTypeUnioned Type Unioned}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UnioningImpl#getUnioningType Unioning Type}
  • + *
+ * + * @generated + */ +public class UnioningImpl extends RelationshipImpl implements Unioning { + /** + * + * + * @generated + */ + protected UnioningImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.UNIONING; + } + + /** + * + * + * @generated + */ + @Override + public Type getTypeUnioned() { + return (Type)eGet(SysMLPackage.Literals.UNIONING__TYPE_UNIONED, true); + } + + /** + * + * + * @generated + */ + @Override + public void setTypeUnioned(Type newTypeUnioned) { + eSet(SysMLPackage.Literals.UNIONING__TYPE_UNIONED, newTypeUnioned); + } + + /** + * + * + * @generated + */ + @Override + public Type getUnioningType() { + return (Type)eGet(SysMLPackage.Literals.UNIONING__UNIONING_TYPE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setUnioningType(Type newUnioningType) { + eSet(SysMLPackage.Literals.UNIONING__UNIONING_TYPE, newUnioningType); + } + + /** + * + * + * @generated + */ + @Override + public EList getSource() { + var sourceValue = this.getTypeUnioned(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public EList getTarget() { + var sourceValue = this.getUnioningType(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Element typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //UnioningImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UsageImpl.java new file mode 100644 index 000000000..610d79ab3 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UsageImpl.java @@ -0,0 +1,659 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.AllocationUsage; +import org.omg.sysml.model.sysml.AnalysisCaseUsage; +import org.omg.sysml.model.sysml.AttributeUsage; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.ConnectorAsUsage; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.EnumerationUsage; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FlowUsage; +import org.omg.sysml.model.sysml.InterfaceUsage; +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.MetadataUsage; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TransitionUsage; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.UseCaseUsage; +import org.omg.sysml.model.sysml.VariantMembership; +import org.omg.sysml.model.sysml.VerificationCaseUsage; +import org.omg.sysml.model.sysml.ViewUsage; +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * + * An implementation of the model object 'Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#isIsReference Is Reference}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#isIsVariation Is Variation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#isMayTimeVary May Time Vary}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getDefinition Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getDirectedUsage Directed Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedAction Nested Action}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedAllocation Nested Allocation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedAnalysisCase Nested Analysis Case}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedAttribute Nested Attribute}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedCalculation Nested Calculation}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedCase Nested Case}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedConcern Nested Concern}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedConnection Nested Connection}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedConstraint Nested Constraint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedEnumeration Nested Enumeration}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedFlow Nested Flow}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedInterface Nested Interface}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedItem Nested Item}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedMetadata Nested Metadata}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedOccurrence Nested Occurrence}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedPart Nested Part}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedPort Nested Port}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedReference Nested Reference}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedRendering Nested Rendering}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedRequirement Nested Requirement}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedState Nested State}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedTransition Nested Transition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedUsage Nested Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedUseCase Nested Use Case}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedVerificationCase Nested Verification Case}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedView Nested View}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getNestedViewpoint Nested Viewpoint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getOwningDefinition Owning Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getOwningUsage Owning Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getUsage Usage}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getVariant Variant}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UsageImpl#getVariantMembership Variant Membership}
  • + *
+ * + * @generated + */ +public class UsageImpl extends FeatureImpl implements Usage { + /** + * + * + * @generated + */ + protected UsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.USAGE; + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsReference() { + return (Boolean)eGet(SysMLPackage.Literals.USAGE__IS_REFERENCE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsReference(boolean newIsReference) { + eSet(SysMLPackage.Literals.USAGE__IS_REFERENCE, newIsReference); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsVariation() { + return (Boolean)eGet(SysMLPackage.Literals.USAGE__IS_VARIATION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setIsVariation(boolean newIsVariation) { + eSet(SysMLPackage.Literals.USAGE__IS_VARIATION, newIsVariation); + } + + /** + * + * + * @generated + */ + @Override + public boolean isMayTimeVary() { + return (Boolean)eGet(SysMLPackage.Literals.USAGE__MAY_TIME_VARY, true); + } + + /** + * + * + * @generated + */ + @Override + public void setMayTimeVary(boolean newMayTimeVary) { + eSet(SysMLPackage.Literals.USAGE__MAY_TIME_VARY, newMayTimeVary); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getDefinition() { + return (EList)eGet(SysMLPackage.Literals.USAGE__DEFINITION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getDirectedUsage() { + return (EList)eGet(SysMLPackage.Literals.USAGE__DIRECTED_USAGE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedAction() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_ACTION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedAllocation() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_ALLOCATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedAnalysisCase() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_ANALYSIS_CASE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedAttribute() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_ATTRIBUTE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedCalculation() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_CALCULATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedCase() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_CASE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedConcern() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_CONCERN, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedConnection() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_CONNECTION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedConstraint() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_CONSTRAINT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedEnumeration() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_ENUMERATION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedFlow() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_FLOW, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedInterface() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_INTERFACE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedItem() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_ITEM, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedMetadata() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_METADATA, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedOccurrence() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_OCCURRENCE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedPart() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_PART, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedPort() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_PORT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedReference() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_REFERENCE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedRendering() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_RENDERING, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedRequirement() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_REQUIREMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedState() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_STATE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedTransition() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_TRANSITION, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedUsage() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_USAGE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedUseCase() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_USE_CASE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedVerificationCase() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_VERIFICATION_CASE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedView() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_VIEW, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getNestedViewpoint() { + return (EList)eGet(SysMLPackage.Literals.USAGE__NESTED_VIEWPOINT, true); + } + + /** + * + * + * @generated + */ + @Override + public Definition getOwningDefinition() { + return (Definition)eGet(SysMLPackage.Literals.USAGE__OWNING_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningDefinition(Definition newOwningDefinition) { + eSet(SysMLPackage.Literals.USAGE__OWNING_DEFINITION, newOwningDefinition); + } + + /** + * + * + * @generated + */ + @Override + public Usage getOwningUsage() { + return (Usage)eGet(SysMLPackage.Literals.USAGE__OWNING_USAGE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwningUsage(Usage newOwningUsage) { + eSet(SysMLPackage.Literals.USAGE__OWNING_USAGE, newOwningUsage); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getUsage() { + return (EList)eGet(SysMLPackage.Literals.USAGE__USAGE, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getVariant() { + return (EList)eGet(SysMLPackage.Literals.USAGE__VARIANT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getVariantMembership() { + return (EList)eGet(SysMLPackage.Literals.USAGE__VARIANT_MEMBERSHIP, true); + } + + /** + * The cached invocation delegate for the '{@link #referencedFeatureTarget() Referenced Feature Target}' operation. + * + * + * @see #referencedFeatureTarget() + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate REFERENCED_FEATURE_TARGET__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.USAGE___REFERENCED_FEATURE_TARGET).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public Feature referencedFeatureTarget() { + try { + return (Feature)REFERENCED_FEATURE_TARGET__EINVOCATION_DELEGATE.dynamicInvoke(this, null); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.USAGE___REFERENCED_FEATURE_TARGET: + return referencedFeatureTarget(); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public EList getType() { + var sourceValue = this.getDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Type typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof Type typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + + /** + * + * + * @generated + */ + @Override + public boolean isIsVariable() { + var sourceValue = this.isMayTimeVary(); + Object source = sourceValue; + return sourceValue; + } + +} //UsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UseCaseDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UseCaseDefinitionImpl.java new file mode 100644 index 000000000..981e30593 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UseCaseDefinitionImpl.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.UseCaseDefinition; +import org.omg.sysml.model.sysml.UseCaseUsage; + +/** + * + * An implementation of the model object 'Use Case Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.UseCaseDefinitionImpl#getIncludedUseCase Included Use Case}
  • + *
+ * + * @generated + */ +public class UseCaseDefinitionImpl extends CaseDefinitionImpl implements UseCaseDefinition { + /** + * + * + * @generated + */ + protected UseCaseDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.USE_CASE_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getIncludedUseCase() { + return (EList)eGet(SysMLPackage.Literals.USE_CASE_DEFINITION__INCLUDED_USE_CASE, true); + } + +} //UseCaseDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UseCaseUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UseCaseUsageImpl.java new file mode 100644 index 000000000..ebd795d83 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/UseCaseUsageImpl.java @@ -0,0 +1,118 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.UseCaseDefinition; +import org.omg.sysml.model.sysml.UseCaseUsage; + +/** + * + * An implementation of the model object 'Use Case Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.UseCaseUsageImpl#getIncludedUseCase Included Use Case}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.UseCaseUsageImpl#getUseCaseDefinition Use Case Definition}
  • + *
+ * + * @generated + */ +public class UseCaseUsageImpl extends CaseUsageImpl implements UseCaseUsage { + /** + * + * + * @generated + */ + protected UseCaseUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.USE_CASE_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getIncludedUseCase() { + return (EList)eGet(SysMLPackage.Literals.USE_CASE_USAGE__INCLUDED_USE_CASE, true); + } + + /** + * + * + * @generated + */ + @Override + public UseCaseDefinition getUseCaseDefinition() { + return (UseCaseDefinition)eGet(SysMLPackage.Literals.USE_CASE_USAGE__USE_CASE_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setUseCaseDefinition(UseCaseDefinition newUseCaseDefinition) { + eSet(SysMLPackage.Literals.USE_CASE_USAGE__USE_CASE_DEFINITION, newUseCaseDefinition); + } + + /** + * + * + * @generated + */ + @Override + public CaseDefinition getCaseDefinition() { + var sourceValue = this.getUseCaseDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof CaseDefinition typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof CaseDefinition typedValue) { + return typedValue; + } + return null; + } + +} //UseCaseUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/VariantMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/VariantMembershipImpl.java new file mode 100644 index 000000000..065d0705b --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/VariantMembershipImpl.java @@ -0,0 +1,105 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.VariantMembership; + +/** + * + * An implementation of the model object 'Variant Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.VariantMembershipImpl#getOwnedVariantUsage Owned Variant Usage}
  • + *
+ * + * @generated + */ +public class VariantMembershipImpl extends OwningMembershipImpl implements VariantMembership { + /** + * + * + * @generated + */ + protected VariantMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.VARIANT_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public Usage getOwnedVariantUsage() { + return (Usage)eGet(SysMLPackage.Literals.VARIANT_MEMBERSHIP__OWNED_VARIANT_USAGE, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedVariantUsage(Usage newOwnedVariantUsage) { + eSet(SysMLPackage.Literals.VARIANT_MEMBERSHIP__OWNED_VARIANT_USAGE, newOwnedVariantUsage); + } + + /** + * + * + * @generated + */ + @Override + public Element getOwnedMemberElement() { + var sourceValue = this.getOwnedVariantUsage(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Element typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Element typedValue) { + return typedValue; + } + return null; + } + +} //VariantMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/VerificationCaseDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/VerificationCaseDefinitionImpl.java new file mode 100644 index 000000000..3910df9ce --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/VerificationCaseDefinitionImpl.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.VerificationCaseDefinition; + +/** + * + * An implementation of the model object 'Verification Case Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.VerificationCaseDefinitionImpl#getVerifiedRequirement Verified Requirement}
  • + *
+ * + * @generated + */ +public class VerificationCaseDefinitionImpl extends CaseDefinitionImpl implements VerificationCaseDefinition { + /** + * + * + * @generated + */ + protected VerificationCaseDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.VERIFICATION_CASE_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getVerifiedRequirement() { + return (EList)eGet(SysMLPackage.Literals.VERIFICATION_CASE_DEFINITION__VERIFIED_REQUIREMENT, true); + } + +} //VerificationCaseDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/VerificationCaseUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/VerificationCaseUsageImpl.java new file mode 100644 index 000000000..f54ddd67d --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/VerificationCaseUsageImpl.java @@ -0,0 +1,96 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.VerificationCaseDefinition; +import org.omg.sysml.model.sysml.VerificationCaseUsage; + +/** + * + * An implementation of the model object 'Verification Case Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.VerificationCaseUsageImpl#getVerificationCaseDefinition Verification Case Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.VerificationCaseUsageImpl#getVerifiedRequirement Verified Requirement}
  • + *
+ * + * @generated + */ +public class VerificationCaseUsageImpl extends CaseUsageImpl implements VerificationCaseUsage { + /** + * + * + * @generated + */ + protected VerificationCaseUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.VERIFICATION_CASE_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public VerificationCaseDefinition getVerificationCaseDefinition() { + return (VerificationCaseDefinition)eGet(SysMLPackage.Literals.VERIFICATION_CASE_USAGE__VERIFICATION_CASE_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setVerificationCaseDefinition(VerificationCaseDefinition newVerificationCaseDefinition) { + eSet(SysMLPackage.Literals.VERIFICATION_CASE_USAGE__VERIFICATION_CASE_DEFINITION, newVerificationCaseDefinition); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getVerifiedRequirement() { + return (EList)eGet(SysMLPackage.Literals.VERIFICATION_CASE_USAGE__VERIFIED_REQUIREMENT, true); + } + +} //VerificationCaseUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewDefinitionImpl.java new file mode 100644 index 000000000..1e75f0f0e --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewDefinitionImpl.java @@ -0,0 +1,122 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ViewDefinition; +import org.omg.sysml.model.sysml.ViewUsage; +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * + * An implementation of the model object 'View Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ViewDefinitionImpl#getSatisfiedViewpoint Satisfied Viewpoint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ViewDefinitionImpl#getView View}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ViewDefinitionImpl#getViewCondition View Condition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ViewDefinitionImpl#getViewRendering View Rendering}
  • + *
+ * + * @generated + */ +public class ViewDefinitionImpl extends PartDefinitionImpl implements ViewDefinition { + /** + * + * + * @generated + */ + protected ViewDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.VIEW_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getSatisfiedViewpoint() { + return (EList)eGet(SysMLPackage.Literals.VIEW_DEFINITION__SATISFIED_VIEWPOINT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getView() { + return (EList)eGet(SysMLPackage.Literals.VIEW_DEFINITION__VIEW, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getViewCondition() { + return (EList)eGet(SysMLPackage.Literals.VIEW_DEFINITION__VIEW_CONDITION, true); + } + + /** + * + * + * @generated + */ + @Override + public RenderingUsage getViewRendering() { + return (RenderingUsage)eGet(SysMLPackage.Literals.VIEW_DEFINITION__VIEW_RENDERING, true); + } + + /** + * + * + * @generated + */ + @Override + public void setViewRendering(RenderingUsage newViewRendering) { + eSet(SysMLPackage.Literals.VIEW_DEFINITION__VIEW_RENDERING, newViewRendering); + } + +} //ViewDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewRenderingMembershipImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewRenderingMembershipImpl.java new file mode 100644 index 000000000..3b6123366 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewRenderingMembershipImpl.java @@ -0,0 +1,126 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ViewRenderingMembership; + +/** + * + * An implementation of the model object 'View Rendering Membership'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ViewRenderingMembershipImpl#getOwnedRendering Owned Rendering}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ViewRenderingMembershipImpl#getReferencedRendering Referenced Rendering}
  • + *
+ * + * @generated + */ +public class ViewRenderingMembershipImpl extends FeatureMembershipImpl implements ViewRenderingMembership { + /** + * + * + * @generated + */ + protected ViewRenderingMembershipImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.VIEW_RENDERING_MEMBERSHIP; + } + + /** + * + * + * @generated + */ + @Override + public RenderingUsage getOwnedRendering() { + return (RenderingUsage)eGet(SysMLPackage.Literals.VIEW_RENDERING_MEMBERSHIP__OWNED_RENDERING, true); + } + + /** + * + * + * @generated + */ + @Override + public void setOwnedRendering(RenderingUsage newOwnedRendering) { + eSet(SysMLPackage.Literals.VIEW_RENDERING_MEMBERSHIP__OWNED_RENDERING, newOwnedRendering); + } + + /** + * + * + * @generated + */ + @Override + public RenderingUsage getReferencedRendering() { + return (RenderingUsage)eGet(SysMLPackage.Literals.VIEW_RENDERING_MEMBERSHIP__REFERENCED_RENDERING, true); + } + + /** + * + * + * @generated + */ + @Override + public void setReferencedRendering(RenderingUsage newReferencedRendering) { + eSet(SysMLPackage.Literals.VIEW_RENDERING_MEMBERSHIP__REFERENCED_RENDERING, newReferencedRendering); + } + + /** + * + * + * @generated + */ + @Override + public Feature getOwnedMemberFeature() { + var sourceValue = this.getOwnedRendering(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof Feature typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof Feature typedValue) { + return typedValue; + } + return null; + } + +} //ViewRenderingMembershipImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewUsageImpl.java new file mode 100644 index 000000000..8aa15b53c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewUsageImpl.java @@ -0,0 +1,211 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.ECollections; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EOperation; + +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.PartDefinition; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ViewDefinition; +import org.omg.sysml.model.sysml.ViewUsage; +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * + * An implementation of the model object 'View Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ViewUsageImpl#getExposedElement Exposed Element}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ViewUsageImpl#getSatisfiedViewpoint Satisfied Viewpoint}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ViewUsageImpl#getViewCondition View Condition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ViewUsageImpl#getViewDefinition View Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ViewUsageImpl#getViewRendering View Rendering}
  • + *
+ * + * @generated + */ +public class ViewUsageImpl extends PartUsageImpl implements ViewUsage { + /** + * + * + * @generated + */ + protected ViewUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.VIEW_USAGE; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getExposedElement() { + return (EList)eGet(SysMLPackage.Literals.VIEW_USAGE__EXPOSED_ELEMENT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getSatisfiedViewpoint() { + return (EList)eGet(SysMLPackage.Literals.VIEW_USAGE__SATISFIED_VIEWPOINT, true); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getViewCondition() { + return (EList)eGet(SysMLPackage.Literals.VIEW_USAGE__VIEW_CONDITION, true); + } + + /** + * + * + * @generated + */ + @Override + public ViewDefinition getViewDefinition() { + return (ViewDefinition)eGet(SysMLPackage.Literals.VIEW_USAGE__VIEW_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setViewDefinition(ViewDefinition newViewDefinition) { + eSet(SysMLPackage.Literals.VIEW_USAGE__VIEW_DEFINITION, newViewDefinition); + } + + /** + * + * + * @generated + */ + @Override + public RenderingUsage getViewRendering() { + return (RenderingUsage)eGet(SysMLPackage.Literals.VIEW_USAGE__VIEW_RENDERING, true); + } + + /** + * + * + * @generated + */ + @Override + public void setViewRendering(RenderingUsage newViewRendering) { + eSet(SysMLPackage.Literals.VIEW_USAGE__VIEW_RENDERING, newViewRendering); + } + + /** + * The cached invocation delegate for the '{@link #includeAsExposed(org.omg.sysml.model.sysml.Element) Include As Exposed}' operation. + * + * + * @see #includeAsExposed(org.omg.sysml.model.sysml.Element) + * @generated + * @ordered + */ + protected static final EOperation.Internal.InvocationDelegate INCLUDE_AS_EXPOSED_ELEMENT__EINVOCATION_DELEGATE = ((EOperation.Internal)SysMLPackage.Literals.VIEW_USAGE___INCLUDE_AS_EXPOSED__ELEMENT).getInvocationDelegate(); + + /** + * + * + * @generated + */ + @Override + public boolean includeAsExposed(Element element) { + try { + return (Boolean)INCLUDE_AS_EXPOSED_ELEMENT__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList(1, new Object[]{element})); + } + catch (InvocationTargetException ite) { + throw new WrappedException(ite); + } + } + + /** + * + * + * @generated + */ + @Override + public Object eInvoke(int operationID, EList arguments) throws InvocationTargetException { + switch (operationID) { + case SysMLPackage.VIEW_USAGE___INCLUDE_AS_EXPOSED__ELEMENT: + return includeAsExposed((Element)arguments.get(0)); + } + return super.eInvoke(operationID, arguments); + } + + /** + * + * + * @generated + */ + @Override + public EList getPartDefinition() { + var sourceValue = this.getViewDefinition(); + Object source = sourceValue; + var result = new BasicEList(); + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof PartDefinition typedValue) { + result.add(typedValue); + } + } + } else if (sourceValue instanceof PartDefinition typedValue) { + result.add(typedValue); + } + return ECollections.unmodifiableEList(result); + } + +} //ViewUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewpointDefinitionImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewpointDefinitionImpl.java new file mode 100644 index 000000000..980ac0c1c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewpointDefinitionImpl.java @@ -0,0 +1,74 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ViewpointDefinition; + +/** + * + * An implementation of the model object 'Viewpoint Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ViewpointDefinitionImpl#getViewpointStakeholder Viewpoint Stakeholder}
  • + *
+ * + * @generated + */ +public class ViewpointDefinitionImpl extends RequirementDefinitionImpl implements ViewpointDefinition { + /** + * + * + * @generated + */ + protected ViewpointDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.VIEWPOINT_DEFINITION; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getViewpointStakeholder() { + return (EList)eGet(SysMLPackage.Literals.VIEWPOINT_DEFINITION__VIEWPOINT_STAKEHOLDER, true); + } + +} //ViewpointDefinitionImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewpointUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewpointUsageImpl.java new file mode 100644 index 000000000..0117b91e2 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/ViewpointUsageImpl.java @@ -0,0 +1,119 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.ViewpointDefinition; +import org.omg.sysml.model.sysml.ViewpointUsage; + +/** + * + * An implementation of the model object 'Viewpoint Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.ViewpointUsageImpl#getViewpointDefinition Viewpoint Definition}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.ViewpointUsageImpl#getViewpointStakeholder Viewpoint Stakeholder}
  • + *
+ * + * @generated + */ +public class ViewpointUsageImpl extends RequirementUsageImpl implements ViewpointUsage { + /** + * + * + * @generated + */ + protected ViewpointUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.VIEWPOINT_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public ViewpointDefinition getViewpointDefinition() { + return (ViewpointDefinition)eGet(SysMLPackage.Literals.VIEWPOINT_USAGE__VIEWPOINT_DEFINITION, true); + } + + /** + * + * + * @generated + */ + @Override + public void setViewpointDefinition(ViewpointDefinition newViewpointDefinition) { + eSet(SysMLPackage.Literals.VIEWPOINT_USAGE__VIEWPOINT_DEFINITION, newViewpointDefinition); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public EList getViewpointStakeholder() { + return (EList)eGet(SysMLPackage.Literals.VIEWPOINT_USAGE__VIEWPOINT_STAKEHOLDER, true); + } + + /** + * + * + * @generated + */ + @Override + public RequirementDefinition getRequirementDefinition() { + var sourceValue = this.getViewpointDefinition(); + Object source = sourceValue; + if (source instanceof Iterable values) { + for (var value : values) { + if (value instanceof RequirementDefinition typedValue) { + return typedValue; + } + } + return null; + } + if (sourceValue instanceof RequirementDefinition typedValue) { + return typedValue; + } + return null; + } + +} //ViewpointUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/WhileLoopActionUsageImpl.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/WhileLoopActionUsageImpl.java new file mode 100644 index 000000000..8ebc307b9 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/impl/WhileLoopActionUsageImpl.java @@ -0,0 +1,102 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.WhileLoopActionUsage; + +/** + * + * An implementation of the model object 'While Loop Action Usage'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.omg.sysml.model.sysml.impl.WhileLoopActionUsageImpl#getUntilArgument Until Argument}
  • + *
  • {@link org.omg.sysml.model.sysml.impl.WhileLoopActionUsageImpl#getWhileArgument While Argument}
  • + *
+ * + * @generated + */ +public class WhileLoopActionUsageImpl extends LoopActionUsageImpl implements WhileLoopActionUsage { + /** + * + * + * @generated + */ + protected WhileLoopActionUsageImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return SysMLPackage.Literals.WHILE_LOOP_ACTION_USAGE; + } + + /** + * + * + * @generated + */ + @Override + public Expression getUntilArgument() { + return (Expression)eGet(SysMLPackage.Literals.WHILE_LOOP_ACTION_USAGE__UNTIL_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setUntilArgument(Expression newUntilArgument) { + eSet(SysMLPackage.Literals.WHILE_LOOP_ACTION_USAGE__UNTIL_ARGUMENT, newUntilArgument); + } + + /** + * + * + * @generated + */ + @Override + public Expression getWhileArgument() { + return (Expression)eGet(SysMLPackage.Literals.WHILE_LOOP_ACTION_USAGE__WHILE_ARGUMENT, true); + } + + /** + * + * + * @generated + */ + @Override + public void setWhileArgument(Expression newWhileArgument) { + eSet(SysMLPackage.Literals.WHILE_LOOP_ACTION_USAGE__WHILE_ARGUMENT, newWhileArgument); + } + +} //WhileLoopActionUsageImpl diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/util/SysMLAdapterFactory.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/util/SysMLAdapterFactory.java new file mode 100644 index 000000000..83938c9cb --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/util/SysMLAdapterFactory.java @@ -0,0 +1,3442 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.ActionDefinition; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.ActorMembership; +import org.omg.sysml.model.sysml.AllocationDefinition; +import org.omg.sysml.model.sysml.AllocationUsage; +import org.omg.sysml.model.sysml.AnalysisCaseDefinition; +import org.omg.sysml.model.sysml.AnalysisCaseUsage; +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.AssertConstraintUsage; +import org.omg.sysml.model.sysml.AssignmentActionUsage; +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.AssociationStructure; +import org.omg.sysml.model.sysml.AttributeDefinition; +import org.omg.sysml.model.sysml.AttributeUsage; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.BindingConnector; +import org.omg.sysml.model.sysml.BindingConnectorAsUsage; +import org.omg.sysml.model.sysml.BooleanExpression; +import org.omg.sysml.model.sysml.CalculationDefinition; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.CollectExpression; +import org.omg.sysml.model.sysml.Comment; +import org.omg.sysml.model.sysml.ConcernDefinition; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.model.sysml.ConjugatedPortTyping; +import org.omg.sysml.model.sysml.Conjugation; +import org.omg.sysml.model.sysml.ConnectionDefinition; +import org.omg.sysml.model.sysml.ConnectionUsage; +import org.omg.sysml.model.sysml.Connector; +import org.omg.sysml.model.sysml.ConnectorAsUsage; +import org.omg.sysml.model.sysml.ConstraintDefinition; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.ConstructorExpression; +import org.omg.sysml.model.sysml.ControlNode; +import org.omg.sysml.model.sysml.CrossSubsetting; +import org.omg.sysml.model.sysml.DataType; +import org.omg.sysml.model.sysml.DecisionNode; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.Dependency; +import org.omg.sysml.model.sysml.Differencing; +import org.omg.sysml.model.sysml.Disjoining; +import org.omg.sysml.model.sysml.Documentation; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.ElementFilterMembership; +import org.omg.sysml.model.sysml.EndFeatureMembership; +import org.omg.sysml.model.sysml.EnumerationDefinition; +import org.omg.sysml.model.sysml.EnumerationUsage; +import org.omg.sysml.model.sysml.EventOccurrenceUsage; +import org.omg.sysml.model.sysml.ExhibitStateUsage; +import org.omg.sysml.model.sysml.Expose; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChainExpression; +import org.omg.sysml.model.sysml.FeatureChaining; +import org.omg.sysml.model.sysml.FeatureInverting; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.FeatureReferenceExpression; +import org.omg.sysml.model.sysml.FeatureTyping; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.Flow; +import org.omg.sysml.model.sysml.FlowDefinition; +import org.omg.sysml.model.sysml.FlowEnd; +import org.omg.sysml.model.sysml.FlowUsage; +import org.omg.sysml.model.sysml.ForLoopActionUsage; +import org.omg.sysml.model.sysml.ForkNode; +import org.omg.sysml.model.sysml.FramedConcernMembership; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.IfActionUsage; +import org.omg.sysml.model.sysml.Import; +import org.omg.sysml.model.sysml.IncludeUseCaseUsage; +import org.omg.sysml.model.sysml.IndexExpression; +import org.omg.sysml.model.sysml.InstantiationExpression; +import org.omg.sysml.model.sysml.Interaction; +import org.omg.sysml.model.sysml.InterfaceDefinition; +import org.omg.sysml.model.sysml.InterfaceUsage; +import org.omg.sysml.model.sysml.Intersecting; +import org.omg.sysml.model.sysml.Invariant; +import org.omg.sysml.model.sysml.InvocationExpression; +import org.omg.sysml.model.sysml.ItemDefinition; +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.JoinNode; +import org.omg.sysml.model.sysml.LibraryPackage; +import org.omg.sysml.model.sysml.LiteralBoolean; +import org.omg.sysml.model.sysml.LiteralExpression; +import org.omg.sysml.model.sysml.LiteralInfinity; +import org.omg.sysml.model.sysml.LiteralInteger; +import org.omg.sysml.model.sysml.LiteralRational; +import org.omg.sysml.model.sysml.LiteralString; +import org.omg.sysml.model.sysml.LoopActionUsage; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.MembershipExpose; +import org.omg.sysml.model.sysml.MembershipImport; +import org.omg.sysml.model.sysml.MergeNode; +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.model.sysml.MetadataAccessExpression; +import org.omg.sysml.model.sysml.MetadataDefinition; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.MetadataUsage; +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.MultiplicityRange; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.NamespaceExpose; +import org.omg.sysml.model.sysml.NamespaceImport; +import org.omg.sysml.model.sysml.NullExpression; +import org.omg.sysml.model.sysml.ObjectiveMembership; +import org.omg.sysml.model.sysml.OccurrenceDefinition; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.OperatorExpression; +import org.omg.sysml.model.sysml.OwningMembership; +import org.omg.sysml.model.sysml.ParameterMembership; +import org.omg.sysml.model.sysml.PartDefinition; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.PayloadFeature; +import org.omg.sysml.model.sysml.PerformActionUsage; +import org.omg.sysml.model.sysml.PortConjugation; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.model.sysml.Redefinition; +import org.omg.sysml.model.sysml.ReferenceSubsetting; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.Relationship; +import org.omg.sysml.model.sysml.RenderingDefinition; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.RequirementVerificationMembership; +import org.omg.sysml.model.sysml.ResultExpressionMembership; +import org.omg.sysml.model.sysml.ReturnParameterMembership; +import org.omg.sysml.model.sysml.SatisfyRequirementUsage; +import org.omg.sysml.model.sysml.SelectExpression; +import org.omg.sysml.model.sysml.SendActionUsage; +import org.omg.sysml.model.sysml.Specialization; +import org.omg.sysml.model.sysml.StakeholderMembership; +import org.omg.sysml.model.sysml.StateDefinition; +import org.omg.sysml.model.sysml.StateSubactionMembership; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.Structure; +import org.omg.sysml.model.sysml.Subclassification; +import org.omg.sysml.model.sysml.SubjectMembership; +import org.omg.sysml.model.sysml.Subsetting; +import org.omg.sysml.model.sysml.Succession; +import org.omg.sysml.model.sysml.SuccessionAsUsage; +import org.omg.sysml.model.sysml.SuccessionFlow; +import org.omg.sysml.model.sysml.SuccessionFlowUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TerminateActionUsage; +import org.omg.sysml.model.sysml.TextualRepresentation; +import org.omg.sysml.model.sysml.TransitionFeatureMembership; +import org.omg.sysml.model.sysml.TransitionUsage; +import org.omg.sysml.model.sysml.TriggerInvocationExpression; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.TypeFeaturing; +import org.omg.sysml.model.sysml.Unioning; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.UseCaseDefinition; +import org.omg.sysml.model.sysml.UseCaseUsage; +import org.omg.sysml.model.sysml.VariantMembership; +import org.omg.sysml.model.sysml.VerificationCaseDefinition; +import org.omg.sysml.model.sysml.VerificationCaseUsage; +import org.omg.sysml.model.sysml.ViewDefinition; +import org.omg.sysml.model.sysml.ViewRenderingMembership; +import org.omg.sysml.model.sysml.ViewUsage; +import org.omg.sysml.model.sysml.ViewpointDefinition; +import org.omg.sysml.model.sysml.ViewpointUsage; +import org.omg.sysml.model.sysml.WhileLoopActionUsage; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see org.omg.sysml.model.sysml.SysMLPackage + * @generated + */ +public class SysMLAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * + * + * @generated + */ + protected static SysMLPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public SysMLAdapterFactory() { + if (modelPackage == null) { + modelPackage = SysMLPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * + * This implementation returns true if the object is either the model's package or is an instance object of the model. + * + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the createXXX methods. + * + * + * @generated + */ + protected SysMLSwitch modelSwitch = + new SysMLSwitch() { + @Override + public Adapter caseAcceptActionUsage(AcceptActionUsage object) { + return createAcceptActionUsageAdapter(); + } + @Override + public Adapter caseActionDefinition(ActionDefinition object) { + return createActionDefinitionAdapter(); + } + @Override + public Adapter caseActionUsage(ActionUsage object) { + return createActionUsageAdapter(); + } + @Override + public Adapter caseActorMembership(ActorMembership object) { + return createActorMembershipAdapter(); + } + @Override + public Adapter caseAllocationDefinition(AllocationDefinition object) { + return createAllocationDefinitionAdapter(); + } + @Override + public Adapter caseAllocationUsage(AllocationUsage object) { + return createAllocationUsageAdapter(); + } + @Override + public Adapter caseAnalysisCaseDefinition(AnalysisCaseDefinition object) { + return createAnalysisCaseDefinitionAdapter(); + } + @Override + public Adapter caseAnalysisCaseUsage(AnalysisCaseUsage object) { + return createAnalysisCaseUsageAdapter(); + } + @Override + public Adapter caseAnnotatingElement(AnnotatingElement object) { + return createAnnotatingElementAdapter(); + } + @Override + public Adapter caseAnnotation(Annotation object) { + return createAnnotationAdapter(); + } + @Override + public Adapter caseAssertConstraintUsage(AssertConstraintUsage object) { + return createAssertConstraintUsageAdapter(); + } + @Override + public Adapter caseAssignmentActionUsage(AssignmentActionUsage object) { + return createAssignmentActionUsageAdapter(); + } + @Override + public Adapter caseAssociation(Association object) { + return createAssociationAdapter(); + } + @Override + public Adapter caseAssociationStructure(AssociationStructure object) { + return createAssociationStructureAdapter(); + } + @Override + public Adapter caseAttributeDefinition(AttributeDefinition object) { + return createAttributeDefinitionAdapter(); + } + @Override + public Adapter caseAttributeUsage(AttributeUsage object) { + return createAttributeUsageAdapter(); + } + @Override + public Adapter caseBehavior(Behavior object) { + return createBehaviorAdapter(); + } + @Override + public Adapter caseBindingConnector(BindingConnector object) { + return createBindingConnectorAdapter(); + } + @Override + public Adapter caseBindingConnectorAsUsage(BindingConnectorAsUsage object) { + return createBindingConnectorAsUsageAdapter(); + } + @Override + public Adapter caseBooleanExpression(BooleanExpression object) { + return createBooleanExpressionAdapter(); + } + @Override + public Adapter caseCalculationDefinition(CalculationDefinition object) { + return createCalculationDefinitionAdapter(); + } + @Override + public Adapter caseCalculationUsage(CalculationUsage object) { + return createCalculationUsageAdapter(); + } + @Override + public Adapter caseCaseDefinition(CaseDefinition object) { + return createCaseDefinitionAdapter(); + } + @Override + public Adapter caseCaseUsage(CaseUsage object) { + return createCaseUsageAdapter(); + } + @Override + public Adapter caseClass(org.omg.sysml.model.sysml.Class object) { + return createClassAdapter(); + } + @Override + public Adapter caseClassifier(Classifier object) { + return createClassifierAdapter(); + } + @Override + public Adapter caseCollectExpression(CollectExpression object) { + return createCollectExpressionAdapter(); + } + @Override + public Adapter caseComment(Comment object) { + return createCommentAdapter(); + } + @Override + public Adapter caseConcernDefinition(ConcernDefinition object) { + return createConcernDefinitionAdapter(); + } + @Override + public Adapter caseConcernUsage(ConcernUsage object) { + return createConcernUsageAdapter(); + } + @Override + public Adapter caseConjugatedPortDefinition(ConjugatedPortDefinition object) { + return createConjugatedPortDefinitionAdapter(); + } + @Override + public Adapter caseConjugatedPortTyping(ConjugatedPortTyping object) { + return createConjugatedPortTypingAdapter(); + } + @Override + public Adapter caseConjugation(Conjugation object) { + return createConjugationAdapter(); + } + @Override + public Adapter caseConnectionDefinition(ConnectionDefinition object) { + return createConnectionDefinitionAdapter(); + } + @Override + public Adapter caseConnectionUsage(ConnectionUsage object) { + return createConnectionUsageAdapter(); + } + @Override + public Adapter caseConnector(Connector object) { + return createConnectorAdapter(); + } + @Override + public Adapter caseConnectorAsUsage(ConnectorAsUsage object) { + return createConnectorAsUsageAdapter(); + } + @Override + public Adapter caseConstraintDefinition(ConstraintDefinition object) { + return createConstraintDefinitionAdapter(); + } + @Override + public Adapter caseConstraintUsage(ConstraintUsage object) { + return createConstraintUsageAdapter(); + } + @Override + public Adapter caseConstructorExpression(ConstructorExpression object) { + return createConstructorExpressionAdapter(); + } + @Override + public Adapter caseControlNode(ControlNode object) { + return createControlNodeAdapter(); + } + @Override + public Adapter caseCrossSubsetting(CrossSubsetting object) { + return createCrossSubsettingAdapter(); + } + @Override + public Adapter caseDataType(DataType object) { + return createDataTypeAdapter(); + } + @Override + public Adapter caseDecisionNode(DecisionNode object) { + return createDecisionNodeAdapter(); + } + @Override + public Adapter caseDefinition(Definition object) { + return createDefinitionAdapter(); + } + @Override + public Adapter caseDependency(Dependency object) { + return createDependencyAdapter(); + } + @Override + public Adapter caseDifferencing(Differencing object) { + return createDifferencingAdapter(); + } + @Override + public Adapter caseDisjoining(Disjoining object) { + return createDisjoiningAdapter(); + } + @Override + public Adapter caseDocumentation(Documentation object) { + return createDocumentationAdapter(); + } + @Override + public Adapter caseElement(Element object) { + return createElementAdapter(); + } + @Override + public Adapter caseElementFilterMembership(ElementFilterMembership object) { + return createElementFilterMembershipAdapter(); + } + @Override + public Adapter caseEndFeatureMembership(EndFeatureMembership object) { + return createEndFeatureMembershipAdapter(); + } + @Override + public Adapter caseEnumerationDefinition(EnumerationDefinition object) { + return createEnumerationDefinitionAdapter(); + } + @Override + public Adapter caseEnumerationUsage(EnumerationUsage object) { + return createEnumerationUsageAdapter(); + } + @Override + public Adapter caseEventOccurrenceUsage(EventOccurrenceUsage object) { + return createEventOccurrenceUsageAdapter(); + } + @Override + public Adapter caseExhibitStateUsage(ExhibitStateUsage object) { + return createExhibitStateUsageAdapter(); + } + @Override + public Adapter caseExpose(Expose object) { + return createExposeAdapter(); + } + @Override + public Adapter caseExpression(Expression object) { + return createExpressionAdapter(); + } + @Override + public Adapter caseFeature(Feature object) { + return createFeatureAdapter(); + } + @Override + public Adapter caseFeatureChainExpression(FeatureChainExpression object) { + return createFeatureChainExpressionAdapter(); + } + @Override + public Adapter caseFeatureChaining(FeatureChaining object) { + return createFeatureChainingAdapter(); + } + @Override + public Adapter caseFeatureInverting(FeatureInverting object) { + return createFeatureInvertingAdapter(); + } + @Override + public Adapter caseFeatureMembership(FeatureMembership object) { + return createFeatureMembershipAdapter(); + } + @Override + public Adapter caseFeatureReferenceExpression(FeatureReferenceExpression object) { + return createFeatureReferenceExpressionAdapter(); + } + @Override + public Adapter caseFeatureTyping(FeatureTyping object) { + return createFeatureTypingAdapter(); + } + @Override + public Adapter caseFeatureValue(FeatureValue object) { + return createFeatureValueAdapter(); + } + @Override + public Adapter caseFlow(Flow object) { + return createFlowAdapter(); + } + @Override + public Adapter caseFlowDefinition(FlowDefinition object) { + return createFlowDefinitionAdapter(); + } + @Override + public Adapter caseFlowEnd(FlowEnd object) { + return createFlowEndAdapter(); + } + @Override + public Adapter caseFlowUsage(FlowUsage object) { + return createFlowUsageAdapter(); + } + @Override + public Adapter caseForkNode(ForkNode object) { + return createForkNodeAdapter(); + } + @Override + public Adapter caseForLoopActionUsage(ForLoopActionUsage object) { + return createForLoopActionUsageAdapter(); + } + @Override + public Adapter caseFramedConcernMembership(FramedConcernMembership object) { + return createFramedConcernMembershipAdapter(); + } + @Override + public Adapter caseFunction(Function object) { + return createFunctionAdapter(); + } + @Override + public Adapter caseIfActionUsage(IfActionUsage object) { + return createIfActionUsageAdapter(); + } + @Override + public Adapter caseImport(Import object) { + return createImportAdapter(); + } + @Override + public Adapter caseIncludeUseCaseUsage(IncludeUseCaseUsage object) { + return createIncludeUseCaseUsageAdapter(); + } + @Override + public Adapter caseIndexExpression(IndexExpression object) { + return createIndexExpressionAdapter(); + } + @Override + public Adapter caseInstantiationExpression(InstantiationExpression object) { + return createInstantiationExpressionAdapter(); + } + @Override + public Adapter caseInteraction(Interaction object) { + return createInteractionAdapter(); + } + @Override + public Adapter caseInterfaceDefinition(InterfaceDefinition object) { + return createInterfaceDefinitionAdapter(); + } + @Override + public Adapter caseInterfaceUsage(InterfaceUsage object) { + return createInterfaceUsageAdapter(); + } + @Override + public Adapter caseIntersecting(Intersecting object) { + return createIntersectingAdapter(); + } + @Override + public Adapter caseInvariant(Invariant object) { + return createInvariantAdapter(); + } + @Override + public Adapter caseInvocationExpression(InvocationExpression object) { + return createInvocationExpressionAdapter(); + } + @Override + public Adapter caseItemDefinition(ItemDefinition object) { + return createItemDefinitionAdapter(); + } + @Override + public Adapter caseItemUsage(ItemUsage object) { + return createItemUsageAdapter(); + } + @Override + public Adapter caseJoinNode(JoinNode object) { + return createJoinNodeAdapter(); + } + @Override + public Adapter caseLibraryPackage(LibraryPackage object) { + return createLibraryPackageAdapter(); + } + @Override + public Adapter caseLiteralBoolean(LiteralBoolean object) { + return createLiteralBooleanAdapter(); + } + @Override + public Adapter caseLiteralExpression(LiteralExpression object) { + return createLiteralExpressionAdapter(); + } + @Override + public Adapter caseLiteralInfinity(LiteralInfinity object) { + return createLiteralInfinityAdapter(); + } + @Override + public Adapter caseLiteralInteger(LiteralInteger object) { + return createLiteralIntegerAdapter(); + } + @Override + public Adapter caseLiteralRational(LiteralRational object) { + return createLiteralRationalAdapter(); + } + @Override + public Adapter caseLiteralString(LiteralString object) { + return createLiteralStringAdapter(); + } + @Override + public Adapter caseLoopActionUsage(LoopActionUsage object) { + return createLoopActionUsageAdapter(); + } + @Override + public Adapter caseMembership(Membership object) { + return createMembershipAdapter(); + } + @Override + public Adapter caseMembershipExpose(MembershipExpose object) { + return createMembershipExposeAdapter(); + } + @Override + public Adapter caseMembershipImport(MembershipImport object) { + return createMembershipImportAdapter(); + } + @Override + public Adapter caseMergeNode(MergeNode object) { + return createMergeNodeAdapter(); + } + @Override + public Adapter caseMetaclass(Metaclass object) { + return createMetaclassAdapter(); + } + @Override + public Adapter caseMetadataAccessExpression(MetadataAccessExpression object) { + return createMetadataAccessExpressionAdapter(); + } + @Override + public Adapter caseMetadataDefinition(MetadataDefinition object) { + return createMetadataDefinitionAdapter(); + } + @Override + public Adapter caseMetadataFeature(MetadataFeature object) { + return createMetadataFeatureAdapter(); + } + @Override + public Adapter caseMetadataUsage(MetadataUsage object) { + return createMetadataUsageAdapter(); + } + @Override + public Adapter caseMultiplicity(Multiplicity object) { + return createMultiplicityAdapter(); + } + @Override + public Adapter caseMultiplicityRange(MultiplicityRange object) { + return createMultiplicityRangeAdapter(); + } + @Override + public Adapter caseNamespace(Namespace object) { + return createNamespaceAdapter(); + } + @Override + public Adapter caseNamespaceExpose(NamespaceExpose object) { + return createNamespaceExposeAdapter(); + } + @Override + public Adapter caseNamespaceImport(NamespaceImport object) { + return createNamespaceImportAdapter(); + } + @Override + public Adapter caseNullExpression(NullExpression object) { + return createNullExpressionAdapter(); + } + @Override + public Adapter caseObjectiveMembership(ObjectiveMembership object) { + return createObjectiveMembershipAdapter(); + } + @Override + public Adapter caseOccurrenceDefinition(OccurrenceDefinition object) { + return createOccurrenceDefinitionAdapter(); + } + @Override + public Adapter caseOccurrenceUsage(OccurrenceUsage object) { + return createOccurrenceUsageAdapter(); + } + @Override + public Adapter caseOperatorExpression(OperatorExpression object) { + return createOperatorExpressionAdapter(); + } + @Override + public Adapter caseOwningMembership(OwningMembership object) { + return createOwningMembershipAdapter(); + } + @Override + public Adapter casePackage(org.omg.sysml.model.sysml.Package object) { + return createPackageAdapter(); + } + @Override + public Adapter caseParameterMembership(ParameterMembership object) { + return createParameterMembershipAdapter(); + } + @Override + public Adapter casePartDefinition(PartDefinition object) { + return createPartDefinitionAdapter(); + } + @Override + public Adapter casePartUsage(PartUsage object) { + return createPartUsageAdapter(); + } + @Override + public Adapter casePayloadFeature(PayloadFeature object) { + return createPayloadFeatureAdapter(); + } + @Override + public Adapter casePerformActionUsage(PerformActionUsage object) { + return createPerformActionUsageAdapter(); + } + @Override + public Adapter casePortConjugation(PortConjugation object) { + return createPortConjugationAdapter(); + } + @Override + public Adapter casePortDefinition(PortDefinition object) { + return createPortDefinitionAdapter(); + } + @Override + public Adapter casePortUsage(PortUsage object) { + return createPortUsageAdapter(); + } + @Override + public Adapter casePredicate(Predicate object) { + return createPredicateAdapter(); + } + @Override + public Adapter caseRedefinition(Redefinition object) { + return createRedefinitionAdapter(); + } + @Override + public Adapter caseReferenceSubsetting(ReferenceSubsetting object) { + return createReferenceSubsettingAdapter(); + } + @Override + public Adapter caseReferenceUsage(ReferenceUsage object) { + return createReferenceUsageAdapter(); + } + @Override + public Adapter caseRelationship(Relationship object) { + return createRelationshipAdapter(); + } + @Override + public Adapter caseRenderingDefinition(RenderingDefinition object) { + return createRenderingDefinitionAdapter(); + } + @Override + public Adapter caseRenderingUsage(RenderingUsage object) { + return createRenderingUsageAdapter(); + } + @Override + public Adapter caseRequirementConstraintMembership(RequirementConstraintMembership object) { + return createRequirementConstraintMembershipAdapter(); + } + @Override + public Adapter caseRequirementDefinition(RequirementDefinition object) { + return createRequirementDefinitionAdapter(); + } + @Override + public Adapter caseRequirementUsage(RequirementUsage object) { + return createRequirementUsageAdapter(); + } + @Override + public Adapter caseRequirementVerificationMembership(RequirementVerificationMembership object) { + return createRequirementVerificationMembershipAdapter(); + } + @Override + public Adapter caseResultExpressionMembership(ResultExpressionMembership object) { + return createResultExpressionMembershipAdapter(); + } + @Override + public Adapter caseReturnParameterMembership(ReturnParameterMembership object) { + return createReturnParameterMembershipAdapter(); + } + @Override + public Adapter caseSatisfyRequirementUsage(SatisfyRequirementUsage object) { + return createSatisfyRequirementUsageAdapter(); + } + @Override + public Adapter caseSelectExpression(SelectExpression object) { + return createSelectExpressionAdapter(); + } + @Override + public Adapter caseSendActionUsage(SendActionUsage object) { + return createSendActionUsageAdapter(); + } + @Override + public Adapter caseSpecialization(Specialization object) { + return createSpecializationAdapter(); + } + @Override + public Adapter caseStakeholderMembership(StakeholderMembership object) { + return createStakeholderMembershipAdapter(); + } + @Override + public Adapter caseStateDefinition(StateDefinition object) { + return createStateDefinitionAdapter(); + } + @Override + public Adapter caseStateSubactionMembership(StateSubactionMembership object) { + return createStateSubactionMembershipAdapter(); + } + @Override + public Adapter caseStateUsage(StateUsage object) { + return createStateUsageAdapter(); + } + @Override + public Adapter caseStep(Step object) { + return createStepAdapter(); + } + @Override + public Adapter caseStructure(Structure object) { + return createStructureAdapter(); + } + @Override + public Adapter caseSubclassification(Subclassification object) { + return createSubclassificationAdapter(); + } + @Override + public Adapter caseSubjectMembership(SubjectMembership object) { + return createSubjectMembershipAdapter(); + } + @Override + public Adapter caseSubsetting(Subsetting object) { + return createSubsettingAdapter(); + } + @Override + public Adapter caseSuccession(Succession object) { + return createSuccessionAdapter(); + } + @Override + public Adapter caseSuccessionAsUsage(SuccessionAsUsage object) { + return createSuccessionAsUsageAdapter(); + } + @Override + public Adapter caseSuccessionFlow(SuccessionFlow object) { + return createSuccessionFlowAdapter(); + } + @Override + public Adapter caseSuccessionFlowUsage(SuccessionFlowUsage object) { + return createSuccessionFlowUsageAdapter(); + } + @Override + public Adapter caseTerminateActionUsage(TerminateActionUsage object) { + return createTerminateActionUsageAdapter(); + } + @Override + public Adapter caseTextualRepresentation(TextualRepresentation object) { + return createTextualRepresentationAdapter(); + } + @Override + public Adapter caseTransitionFeatureMembership(TransitionFeatureMembership object) { + return createTransitionFeatureMembershipAdapter(); + } + @Override + public Adapter caseTransitionUsage(TransitionUsage object) { + return createTransitionUsageAdapter(); + } + @Override + public Adapter caseTriggerInvocationExpression(TriggerInvocationExpression object) { + return createTriggerInvocationExpressionAdapter(); + } + @Override + public Adapter caseType(Type object) { + return createTypeAdapter(); + } + @Override + public Adapter caseTypeFeaturing(TypeFeaturing object) { + return createTypeFeaturingAdapter(); + } + @Override + public Adapter caseUnioning(Unioning object) { + return createUnioningAdapter(); + } + @Override + public Adapter caseUsage(Usage object) { + return createUsageAdapter(); + } + @Override + public Adapter caseUseCaseDefinition(UseCaseDefinition object) { + return createUseCaseDefinitionAdapter(); + } + @Override + public Adapter caseUseCaseUsage(UseCaseUsage object) { + return createUseCaseUsageAdapter(); + } + @Override + public Adapter caseVariantMembership(VariantMembership object) { + return createVariantMembershipAdapter(); + } + @Override + public Adapter caseVerificationCaseDefinition(VerificationCaseDefinition object) { + return createVerificationCaseDefinitionAdapter(); + } + @Override + public Adapter caseVerificationCaseUsage(VerificationCaseUsage object) { + return createVerificationCaseUsageAdapter(); + } + @Override + public Adapter caseViewDefinition(ViewDefinition object) { + return createViewDefinitionAdapter(); + } + @Override + public Adapter caseViewpointDefinition(ViewpointDefinition object) { + return createViewpointDefinitionAdapter(); + } + @Override + public Adapter caseViewpointUsage(ViewpointUsage object) { + return createViewpointUsageAdapter(); + } + @Override + public Adapter caseViewRenderingMembership(ViewRenderingMembership object) { + return createViewRenderingMembershipAdapter(); + } + @Override + public Adapter caseViewUsage(ViewUsage object) { + return createViewUsageAdapter(); + } + @Override + public Adapter caseWhileLoopActionUsage(WhileLoopActionUsage object) { + return createWhileLoopActionUsageAdapter(); + } + @Override + public Adapter defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the target. + * + * + * @param target the object to adapt. + * @return the adapter for the target. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AcceptActionUsage Accept Action Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AcceptActionUsage + * @generated + */ + public Adapter createAcceptActionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ActionDefinition Action Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ActionDefinition + * @generated + */ + public Adapter createActionDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ActionUsage Action Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ActionUsage + * @generated + */ + public Adapter createActionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ActorMembership Actor Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ActorMembership + * @generated + */ + public Adapter createActorMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AllocationDefinition Allocation Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AllocationDefinition + * @generated + */ + public Adapter createAllocationDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AllocationUsage Allocation Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AllocationUsage + * @generated + */ + public Adapter createAllocationUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AnalysisCaseDefinition Analysis Case Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AnalysisCaseDefinition + * @generated + */ + public Adapter createAnalysisCaseDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AnalysisCaseUsage Analysis Case Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AnalysisCaseUsage + * @generated + */ + public Adapter createAnalysisCaseUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AnnotatingElement Annotating Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AnnotatingElement + * @generated + */ + public Adapter createAnnotatingElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Annotation Annotation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Annotation + * @generated + */ + public Adapter createAnnotationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AssertConstraintUsage Assert Constraint Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AssertConstraintUsage + * @generated + */ + public Adapter createAssertConstraintUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AssignmentActionUsage Assignment Action Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AssignmentActionUsage + * @generated + */ + public Adapter createAssignmentActionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Association Association}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Association + * @generated + */ + public Adapter createAssociationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AssociationStructure Association Structure}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AssociationStructure + * @generated + */ + public Adapter createAssociationStructureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AttributeDefinition Attribute Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AttributeDefinition + * @generated + */ + public Adapter createAttributeDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.AttributeUsage Attribute Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.AttributeUsage + * @generated + */ + public Adapter createAttributeUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Behavior Behavior}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Behavior + * @generated + */ + public Adapter createBehaviorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.BindingConnector Binding Connector}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.BindingConnector + * @generated + */ + public Adapter createBindingConnectorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.BindingConnectorAsUsage Binding Connector As Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.BindingConnectorAsUsage + * @generated + */ + public Adapter createBindingConnectorAsUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.BooleanExpression Boolean Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.BooleanExpression + * @generated + */ + public Adapter createBooleanExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.CalculationDefinition Calculation Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.CalculationDefinition + * @generated + */ + public Adapter createCalculationDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.CalculationUsage Calculation Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.CalculationUsage + * @generated + */ + public Adapter createCalculationUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.CaseDefinition Case Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.CaseDefinition + * @generated + */ + public Adapter createCaseDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.CaseUsage Case Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.CaseUsage + * @generated + */ + public Adapter createCaseUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Class Class}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Class + * @generated + */ + public Adapter createClassAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Classifier Classifier}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Classifier + * @generated + */ + public Adapter createClassifierAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.CollectExpression Collect Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.CollectExpression + * @generated + */ + public Adapter createCollectExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Comment Comment}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Comment + * @generated + */ + public Adapter createCommentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ConcernDefinition Concern Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ConcernDefinition + * @generated + */ + public Adapter createConcernDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ConcernUsage Concern Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ConcernUsage + * @generated + */ + public Adapter createConcernUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ConjugatedPortDefinition Conjugated Port Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ConjugatedPortDefinition + * @generated + */ + public Adapter createConjugatedPortDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ConjugatedPortTyping Conjugated Port Typing}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ConjugatedPortTyping + * @generated + */ + public Adapter createConjugatedPortTypingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Conjugation Conjugation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Conjugation + * @generated + */ + public Adapter createConjugationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ConnectionDefinition Connection Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ConnectionDefinition + * @generated + */ + public Adapter createConnectionDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ConnectionUsage Connection Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ConnectionUsage + * @generated + */ + public Adapter createConnectionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Connector Connector}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Connector + * @generated + */ + public Adapter createConnectorAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ConnectorAsUsage Connector As Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ConnectorAsUsage + * @generated + */ + public Adapter createConnectorAsUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ConstraintDefinition Constraint Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ConstraintDefinition + * @generated + */ + public Adapter createConstraintDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ConstraintUsage Constraint Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ConstraintUsage + * @generated + */ + public Adapter createConstraintUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ConstructorExpression Constructor Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ConstructorExpression + * @generated + */ + public Adapter createConstructorExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ControlNode Control Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ControlNode + * @generated + */ + public Adapter createControlNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.CrossSubsetting Cross Subsetting}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.CrossSubsetting + * @generated + */ + public Adapter createCrossSubsettingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.DataType Data Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.DataType + * @generated + */ + public Adapter createDataTypeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.DecisionNode Decision Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.DecisionNode + * @generated + */ + public Adapter createDecisionNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Definition Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Definition + * @generated + */ + public Adapter createDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Dependency Dependency}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Dependency + * @generated + */ + public Adapter createDependencyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Differencing Differencing}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Differencing + * @generated + */ + public Adapter createDifferencingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Disjoining Disjoining}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Disjoining + * @generated + */ + public Adapter createDisjoiningAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Documentation Documentation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Documentation + * @generated + */ + public Adapter createDocumentationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Element Element}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Element + * @generated + */ + public Adapter createElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ElementFilterMembership Element Filter Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ElementFilterMembership + * @generated + */ + public Adapter createElementFilterMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.EndFeatureMembership End Feature Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.EndFeatureMembership + * @generated + */ + public Adapter createEndFeatureMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.EnumerationDefinition Enumeration Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.EnumerationDefinition + * @generated + */ + public Adapter createEnumerationDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.EnumerationUsage Enumeration Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.EnumerationUsage + * @generated + */ + public Adapter createEnumerationUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.EventOccurrenceUsage Event Occurrence Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.EventOccurrenceUsage + * @generated + */ + public Adapter createEventOccurrenceUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ExhibitStateUsage Exhibit State Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ExhibitStateUsage + * @generated + */ + public Adapter createExhibitStateUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Expose Expose}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Expose + * @generated + */ + public Adapter createExposeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Expression Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Expression + * @generated + */ + public Adapter createExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Feature Feature}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Feature + * @generated + */ + public Adapter createFeatureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FeatureChainExpression Feature Chain Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FeatureChainExpression + * @generated + */ + public Adapter createFeatureChainExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FeatureChaining Feature Chaining}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FeatureChaining + * @generated + */ + public Adapter createFeatureChainingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FeatureInverting Feature Inverting}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FeatureInverting + * @generated + */ + public Adapter createFeatureInvertingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FeatureMembership Feature Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FeatureMembership + * @generated + */ + public Adapter createFeatureMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FeatureReferenceExpression Feature Reference Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FeatureReferenceExpression + * @generated + */ + public Adapter createFeatureReferenceExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FeatureTyping Feature Typing}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FeatureTyping + * @generated + */ + public Adapter createFeatureTypingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FeatureValue Feature Value}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FeatureValue + * @generated + */ + public Adapter createFeatureValueAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Flow Flow}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Flow + * @generated + */ + public Adapter createFlowAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FlowDefinition Flow Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FlowDefinition + * @generated + */ + public Adapter createFlowDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FlowEnd Flow End}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FlowEnd + * @generated + */ + public Adapter createFlowEndAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FlowUsage Flow Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FlowUsage + * @generated + */ + public Adapter createFlowUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ForkNode Fork Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ForkNode + * @generated + */ + public Adapter createForkNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ForLoopActionUsage For Loop Action Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ForLoopActionUsage + * @generated + */ + public Adapter createForLoopActionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.FramedConcernMembership Framed Concern Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.FramedConcernMembership + * @generated + */ + public Adapter createFramedConcernMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Function Function}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Function + * @generated + */ + public Adapter createFunctionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.IfActionUsage If Action Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.IfActionUsage + * @generated + */ + public Adapter createIfActionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Import Import}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Import + * @generated + */ + public Adapter createImportAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.IncludeUseCaseUsage Include Use Case Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.IncludeUseCaseUsage + * @generated + */ + public Adapter createIncludeUseCaseUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.IndexExpression Index Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.IndexExpression + * @generated + */ + public Adapter createIndexExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.InstantiationExpression Instantiation Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.InstantiationExpression + * @generated + */ + public Adapter createInstantiationExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Interaction Interaction}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Interaction + * @generated + */ + public Adapter createInteractionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.InterfaceDefinition Interface Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.InterfaceDefinition + * @generated + */ + public Adapter createInterfaceDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.InterfaceUsage Interface Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.InterfaceUsage + * @generated + */ + public Adapter createInterfaceUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Intersecting Intersecting}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Intersecting + * @generated + */ + public Adapter createIntersectingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Invariant Invariant}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Invariant + * @generated + */ + public Adapter createInvariantAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.InvocationExpression Invocation Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.InvocationExpression + * @generated + */ + public Adapter createInvocationExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ItemDefinition Item Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ItemDefinition + * @generated + */ + public Adapter createItemDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ItemUsage Item Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ItemUsage + * @generated + */ + public Adapter createItemUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.JoinNode Join Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.JoinNode + * @generated + */ + public Adapter createJoinNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.LibraryPackage Library Package}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.LibraryPackage + * @generated + */ + public Adapter createLibraryPackageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.LiteralBoolean Literal Boolean}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.LiteralBoolean + * @generated + */ + public Adapter createLiteralBooleanAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.LiteralExpression Literal Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.LiteralExpression + * @generated + */ + public Adapter createLiteralExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.LiteralInfinity Literal Infinity}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.LiteralInfinity + * @generated + */ + public Adapter createLiteralInfinityAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.LiteralInteger Literal Integer}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.LiteralInteger + * @generated + */ + public Adapter createLiteralIntegerAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.LiteralRational Literal Rational}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.LiteralRational + * @generated + */ + public Adapter createLiteralRationalAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.LiteralString Literal String}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.LiteralString + * @generated + */ + public Adapter createLiteralStringAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.LoopActionUsage Loop Action Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.LoopActionUsage + * @generated + */ + public Adapter createLoopActionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Membership Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Membership + * @generated + */ + public Adapter createMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.MembershipExpose Membership Expose}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.MembershipExpose + * @generated + */ + public Adapter createMembershipExposeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.MembershipImport Membership Import}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.MembershipImport + * @generated + */ + public Adapter createMembershipImportAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.MergeNode Merge Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.MergeNode + * @generated + */ + public Adapter createMergeNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Metaclass Metaclass}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Metaclass + * @generated + */ + public Adapter createMetaclassAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.MetadataAccessExpression Metadata Access Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.MetadataAccessExpression + * @generated + */ + public Adapter createMetadataAccessExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.MetadataDefinition Metadata Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.MetadataDefinition + * @generated + */ + public Adapter createMetadataDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.MetadataFeature Metadata Feature}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.MetadataFeature + * @generated + */ + public Adapter createMetadataFeatureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.MetadataUsage Metadata Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.MetadataUsage + * @generated + */ + public Adapter createMetadataUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Multiplicity Multiplicity}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Multiplicity + * @generated + */ + public Adapter createMultiplicityAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.MultiplicityRange Multiplicity Range}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.MultiplicityRange + * @generated + */ + public Adapter createMultiplicityRangeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Namespace Namespace}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Namespace + * @generated + */ + public Adapter createNamespaceAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.NamespaceExpose Namespace Expose}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.NamespaceExpose + * @generated + */ + public Adapter createNamespaceExposeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.NamespaceImport Namespace Import}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.NamespaceImport + * @generated + */ + public Adapter createNamespaceImportAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.NullExpression Null Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.NullExpression + * @generated + */ + public Adapter createNullExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ObjectiveMembership Objective Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ObjectiveMembership + * @generated + */ + public Adapter createObjectiveMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.OccurrenceDefinition Occurrence Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.OccurrenceDefinition + * @generated + */ + public Adapter createOccurrenceDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.OccurrenceUsage Occurrence Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.OccurrenceUsage + * @generated + */ + public Adapter createOccurrenceUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.OperatorExpression Operator Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.OperatorExpression + * @generated + */ + public Adapter createOperatorExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.OwningMembership Owning Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.OwningMembership + * @generated + */ + public Adapter createOwningMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Package Package}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Package + * @generated + */ + public Adapter createPackageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ParameterMembership Parameter Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ParameterMembership + * @generated + */ + public Adapter createParameterMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.PartDefinition Part Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.PartDefinition + * @generated + */ + public Adapter createPartDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.PartUsage Part Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.PartUsage + * @generated + */ + public Adapter createPartUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.PayloadFeature Payload Feature}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.PayloadFeature + * @generated + */ + public Adapter createPayloadFeatureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.PerformActionUsage Perform Action Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.PerformActionUsage + * @generated + */ + public Adapter createPerformActionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.PortConjugation Port Conjugation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.PortConjugation + * @generated + */ + public Adapter createPortConjugationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.PortDefinition Port Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.PortDefinition + * @generated + */ + public Adapter createPortDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.PortUsage Port Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.PortUsage + * @generated + */ + public Adapter createPortUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Predicate Predicate}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Predicate + * @generated + */ + public Adapter createPredicateAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Redefinition Redefinition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Redefinition + * @generated + */ + public Adapter createRedefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ReferenceSubsetting Reference Subsetting}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ReferenceSubsetting + * @generated + */ + public Adapter createReferenceSubsettingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ReferenceUsage Reference Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ReferenceUsage + * @generated + */ + public Adapter createReferenceUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Relationship Relationship}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Relationship + * @generated + */ + public Adapter createRelationshipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.RenderingDefinition Rendering Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.RenderingDefinition + * @generated + */ + public Adapter createRenderingDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.RenderingUsage Rendering Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.RenderingUsage + * @generated + */ + public Adapter createRenderingUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.RequirementConstraintMembership Requirement Constraint Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.RequirementConstraintMembership + * @generated + */ + public Adapter createRequirementConstraintMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.RequirementDefinition Requirement Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.RequirementDefinition + * @generated + */ + public Adapter createRequirementDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.RequirementUsage Requirement Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.RequirementUsage + * @generated + */ + public Adapter createRequirementUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.RequirementVerificationMembership Requirement Verification Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.RequirementVerificationMembership + * @generated + */ + public Adapter createRequirementVerificationMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ResultExpressionMembership Result Expression Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ResultExpressionMembership + * @generated + */ + public Adapter createResultExpressionMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ReturnParameterMembership Return Parameter Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ReturnParameterMembership + * @generated + */ + public Adapter createReturnParameterMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.SatisfyRequirementUsage Satisfy Requirement Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.SatisfyRequirementUsage + * @generated + */ + public Adapter createSatisfyRequirementUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.SelectExpression Select Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.SelectExpression + * @generated + */ + public Adapter createSelectExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.SendActionUsage Send Action Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.SendActionUsage + * @generated + */ + public Adapter createSendActionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Specialization Specialization}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Specialization + * @generated + */ + public Adapter createSpecializationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.StakeholderMembership Stakeholder Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.StakeholderMembership + * @generated + */ + public Adapter createStakeholderMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.StateDefinition State Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.StateDefinition + * @generated + */ + public Adapter createStateDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.StateSubactionMembership State Subaction Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.StateSubactionMembership + * @generated + */ + public Adapter createStateSubactionMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.StateUsage State Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.StateUsage + * @generated + */ + public Adapter createStateUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Step Step}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Step + * @generated + */ + public Adapter createStepAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Structure Structure}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Structure + * @generated + */ + public Adapter createStructureAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Subclassification Subclassification}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Subclassification + * @generated + */ + public Adapter createSubclassificationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.SubjectMembership Subject Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.SubjectMembership + * @generated + */ + public Adapter createSubjectMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Subsetting Subsetting}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Subsetting + * @generated + */ + public Adapter createSubsettingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Succession Succession}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Succession + * @generated + */ + public Adapter createSuccessionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.SuccessionAsUsage Succession As Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.SuccessionAsUsage + * @generated + */ + public Adapter createSuccessionAsUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.SuccessionFlow Succession Flow}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.SuccessionFlow + * @generated + */ + public Adapter createSuccessionFlowAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.SuccessionFlowUsage Succession Flow Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.SuccessionFlowUsage + * @generated + */ + public Adapter createSuccessionFlowUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.TerminateActionUsage Terminate Action Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.TerminateActionUsage + * @generated + */ + public Adapter createTerminateActionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.TextualRepresentation Textual Representation}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.TextualRepresentation + * @generated + */ + public Adapter createTextualRepresentationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.TransitionFeatureMembership Transition Feature Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.TransitionFeatureMembership + * @generated + */ + public Adapter createTransitionFeatureMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.TransitionUsage Transition Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.TransitionUsage + * @generated + */ + public Adapter createTransitionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.TriggerInvocationExpression Trigger Invocation Expression}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.TriggerInvocationExpression + * @generated + */ + public Adapter createTriggerInvocationExpressionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Type Type}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Type + * @generated + */ + public Adapter createTypeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.TypeFeaturing Type Featuring}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.TypeFeaturing + * @generated + */ + public Adapter createTypeFeaturingAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Unioning Unioning}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Unioning + * @generated + */ + public Adapter createUnioningAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.Usage Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.Usage + * @generated + */ + public Adapter createUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.UseCaseDefinition Use Case Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.UseCaseDefinition + * @generated + */ + public Adapter createUseCaseDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.UseCaseUsage Use Case Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.UseCaseUsage + * @generated + */ + public Adapter createUseCaseUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.VariantMembership Variant Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.VariantMembership + * @generated + */ + public Adapter createVariantMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.VerificationCaseDefinition Verification Case Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.VerificationCaseDefinition + * @generated + */ + public Adapter createVerificationCaseDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.VerificationCaseUsage Verification Case Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.VerificationCaseUsage + * @generated + */ + public Adapter createVerificationCaseUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ViewDefinition View Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ViewDefinition + * @generated + */ + public Adapter createViewDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ViewpointDefinition Viewpoint Definition}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ViewpointDefinition + * @generated + */ + public Adapter createViewpointDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ViewpointUsage Viewpoint Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ViewpointUsage + * @generated + */ + public Adapter createViewpointUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ViewRenderingMembership View Rendering Membership}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ViewRenderingMembership + * @generated + */ + public Adapter createViewRenderingMembershipAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.ViewUsage View Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.ViewUsage + * @generated + */ + public Adapter createViewUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.omg.sysml.model.sysml.WhileLoopActionUsage While Loop Action Usage}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.omg.sysml.model.sysml.WhileLoopActionUsage + * @generated + */ + public Adapter createWhileLoopActionUsageAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * + * This default implementation returns null. + * + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //SysMLAdapterFactory diff --git a/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/util/SysMLSwitch.java b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/util/SysMLSwitch.java new file mode 100644 index 000000000..a4b368609 --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/java/org/omg/sysml/model/sysml/util/SysMLSwitch.java @@ -0,0 +1,5116 @@ +/** + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * @license LGPL-3.0-or-later + */ +package org.omg.sysml.model.sysml.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +import org.omg.sysml.model.sysml.AcceptActionUsage; +import org.omg.sysml.model.sysml.ActionDefinition; +import org.omg.sysml.model.sysml.ActionUsage; +import org.omg.sysml.model.sysml.ActorMembership; +import org.omg.sysml.model.sysml.AllocationDefinition; +import org.omg.sysml.model.sysml.AllocationUsage; +import org.omg.sysml.model.sysml.AnalysisCaseDefinition; +import org.omg.sysml.model.sysml.AnalysisCaseUsage; +import org.omg.sysml.model.sysml.AnnotatingElement; +import org.omg.sysml.model.sysml.Annotation; +import org.omg.sysml.model.sysml.AssertConstraintUsage; +import org.omg.sysml.model.sysml.AssignmentActionUsage; +import org.omg.sysml.model.sysml.Association; +import org.omg.sysml.model.sysml.AssociationStructure; +import org.omg.sysml.model.sysml.AttributeDefinition; +import org.omg.sysml.model.sysml.AttributeUsage; +import org.omg.sysml.model.sysml.Behavior; +import org.omg.sysml.model.sysml.BindingConnector; +import org.omg.sysml.model.sysml.BindingConnectorAsUsage; +import org.omg.sysml.model.sysml.BooleanExpression; +import org.omg.sysml.model.sysml.CalculationDefinition; +import org.omg.sysml.model.sysml.CalculationUsage; +import org.omg.sysml.model.sysml.CaseDefinition; +import org.omg.sysml.model.sysml.CaseUsage; +import org.omg.sysml.model.sysml.Classifier; +import org.omg.sysml.model.sysml.CollectExpression; +import org.omg.sysml.model.sysml.Comment; +import org.omg.sysml.model.sysml.ConcernDefinition; +import org.omg.sysml.model.sysml.ConcernUsage; +import org.omg.sysml.model.sysml.ConjugatedPortDefinition; +import org.omg.sysml.model.sysml.ConjugatedPortTyping; +import org.omg.sysml.model.sysml.Conjugation; +import org.omg.sysml.model.sysml.ConnectionDefinition; +import org.omg.sysml.model.sysml.ConnectionUsage; +import org.omg.sysml.model.sysml.Connector; +import org.omg.sysml.model.sysml.ConnectorAsUsage; +import org.omg.sysml.model.sysml.ConstraintDefinition; +import org.omg.sysml.model.sysml.ConstraintUsage; +import org.omg.sysml.model.sysml.ConstructorExpression; +import org.omg.sysml.model.sysml.ControlNode; +import org.omg.sysml.model.sysml.CrossSubsetting; +import org.omg.sysml.model.sysml.DataType; +import org.omg.sysml.model.sysml.DecisionNode; +import org.omg.sysml.model.sysml.Definition; +import org.omg.sysml.model.sysml.Dependency; +import org.omg.sysml.model.sysml.Differencing; +import org.omg.sysml.model.sysml.Disjoining; +import org.omg.sysml.model.sysml.Documentation; +import org.omg.sysml.model.sysml.Element; +import org.omg.sysml.model.sysml.ElementFilterMembership; +import org.omg.sysml.model.sysml.EndFeatureMembership; +import org.omg.sysml.model.sysml.EnumerationDefinition; +import org.omg.sysml.model.sysml.EnumerationUsage; +import org.omg.sysml.model.sysml.EventOccurrenceUsage; +import org.omg.sysml.model.sysml.ExhibitStateUsage; +import org.omg.sysml.model.sysml.Expose; +import org.omg.sysml.model.sysml.Expression; +import org.omg.sysml.model.sysml.Feature; +import org.omg.sysml.model.sysml.FeatureChainExpression; +import org.omg.sysml.model.sysml.FeatureChaining; +import org.omg.sysml.model.sysml.FeatureInverting; +import org.omg.sysml.model.sysml.FeatureMembership; +import org.omg.sysml.model.sysml.FeatureReferenceExpression; +import org.omg.sysml.model.sysml.FeatureTyping; +import org.omg.sysml.model.sysml.FeatureValue; +import org.omg.sysml.model.sysml.Flow; +import org.omg.sysml.model.sysml.FlowDefinition; +import org.omg.sysml.model.sysml.FlowEnd; +import org.omg.sysml.model.sysml.FlowUsage; +import org.omg.sysml.model.sysml.ForLoopActionUsage; +import org.omg.sysml.model.sysml.ForkNode; +import org.omg.sysml.model.sysml.FramedConcernMembership; +import org.omg.sysml.model.sysml.Function; +import org.omg.sysml.model.sysml.IfActionUsage; +import org.omg.sysml.model.sysml.Import; +import org.omg.sysml.model.sysml.IncludeUseCaseUsage; +import org.omg.sysml.model.sysml.IndexExpression; +import org.omg.sysml.model.sysml.InstantiationExpression; +import org.omg.sysml.model.sysml.Interaction; +import org.omg.sysml.model.sysml.InterfaceDefinition; +import org.omg.sysml.model.sysml.InterfaceUsage; +import org.omg.sysml.model.sysml.Intersecting; +import org.omg.sysml.model.sysml.Invariant; +import org.omg.sysml.model.sysml.InvocationExpression; +import org.omg.sysml.model.sysml.ItemDefinition; +import org.omg.sysml.model.sysml.ItemUsage; +import org.omg.sysml.model.sysml.JoinNode; +import org.omg.sysml.model.sysml.LibraryPackage; +import org.omg.sysml.model.sysml.LiteralBoolean; +import org.omg.sysml.model.sysml.LiteralExpression; +import org.omg.sysml.model.sysml.LiteralInfinity; +import org.omg.sysml.model.sysml.LiteralInteger; +import org.omg.sysml.model.sysml.LiteralRational; +import org.omg.sysml.model.sysml.LiteralString; +import org.omg.sysml.model.sysml.LoopActionUsage; +import org.omg.sysml.model.sysml.Membership; +import org.omg.sysml.model.sysml.MembershipExpose; +import org.omg.sysml.model.sysml.MembershipImport; +import org.omg.sysml.model.sysml.MergeNode; +import org.omg.sysml.model.sysml.Metaclass; +import org.omg.sysml.model.sysml.MetadataAccessExpression; +import org.omg.sysml.model.sysml.MetadataDefinition; +import org.omg.sysml.model.sysml.MetadataFeature; +import org.omg.sysml.model.sysml.MetadataUsage; +import org.omg.sysml.model.sysml.Multiplicity; +import org.omg.sysml.model.sysml.MultiplicityRange; +import org.omg.sysml.model.sysml.Namespace; +import org.omg.sysml.model.sysml.NamespaceExpose; +import org.omg.sysml.model.sysml.NamespaceImport; +import org.omg.sysml.model.sysml.NullExpression; +import org.omg.sysml.model.sysml.ObjectiveMembership; +import org.omg.sysml.model.sysml.OccurrenceDefinition; +import org.omg.sysml.model.sysml.OccurrenceUsage; +import org.omg.sysml.model.sysml.OperatorExpression; +import org.omg.sysml.model.sysml.OwningMembership; +import org.omg.sysml.model.sysml.ParameterMembership; +import org.omg.sysml.model.sysml.PartDefinition; +import org.omg.sysml.model.sysml.PartUsage; +import org.omg.sysml.model.sysml.PayloadFeature; +import org.omg.sysml.model.sysml.PerformActionUsage; +import org.omg.sysml.model.sysml.PortConjugation; +import org.omg.sysml.model.sysml.PortDefinition; +import org.omg.sysml.model.sysml.PortUsage; +import org.omg.sysml.model.sysml.Predicate; +import org.omg.sysml.model.sysml.Redefinition; +import org.omg.sysml.model.sysml.ReferenceSubsetting; +import org.omg.sysml.model.sysml.ReferenceUsage; +import org.omg.sysml.model.sysml.Relationship; +import org.omg.sysml.model.sysml.RenderingDefinition; +import org.omg.sysml.model.sysml.RenderingUsage; +import org.omg.sysml.model.sysml.RequirementConstraintMembership; +import org.omg.sysml.model.sysml.RequirementDefinition; +import org.omg.sysml.model.sysml.RequirementUsage; +import org.omg.sysml.model.sysml.RequirementVerificationMembership; +import org.omg.sysml.model.sysml.ResultExpressionMembership; +import org.omg.sysml.model.sysml.ReturnParameterMembership; +import org.omg.sysml.model.sysml.SatisfyRequirementUsage; +import org.omg.sysml.model.sysml.SelectExpression; +import org.omg.sysml.model.sysml.SendActionUsage; +import org.omg.sysml.model.sysml.Specialization; +import org.omg.sysml.model.sysml.StakeholderMembership; +import org.omg.sysml.model.sysml.StateDefinition; +import org.omg.sysml.model.sysml.StateSubactionMembership; +import org.omg.sysml.model.sysml.StateUsage; +import org.omg.sysml.model.sysml.Step; +import org.omg.sysml.model.sysml.Structure; +import org.omg.sysml.model.sysml.Subclassification; +import org.omg.sysml.model.sysml.SubjectMembership; +import org.omg.sysml.model.sysml.Subsetting; +import org.omg.sysml.model.sysml.Succession; +import org.omg.sysml.model.sysml.SuccessionAsUsage; +import org.omg.sysml.model.sysml.SuccessionFlow; +import org.omg.sysml.model.sysml.SuccessionFlowUsage; +import org.omg.sysml.model.sysml.SysMLPackage; +import org.omg.sysml.model.sysml.TerminateActionUsage; +import org.omg.sysml.model.sysml.TextualRepresentation; +import org.omg.sysml.model.sysml.TransitionFeatureMembership; +import org.omg.sysml.model.sysml.TransitionUsage; +import org.omg.sysml.model.sysml.TriggerInvocationExpression; +import org.omg.sysml.model.sysml.Type; +import org.omg.sysml.model.sysml.TypeFeaturing; +import org.omg.sysml.model.sysml.Unioning; +import org.omg.sysml.model.sysml.Usage; +import org.omg.sysml.model.sysml.UseCaseDefinition; +import org.omg.sysml.model.sysml.UseCaseUsage; +import org.omg.sysml.model.sysml.VariantMembership; +import org.omg.sysml.model.sysml.VerificationCaseDefinition; +import org.omg.sysml.model.sysml.VerificationCaseUsage; +import org.omg.sysml.model.sysml.ViewDefinition; +import org.omg.sysml.model.sysml.ViewRenderingMembership; +import org.omg.sysml.model.sysml.ViewUsage; +import org.omg.sysml.model.sysml.ViewpointDefinition; +import org.omg.sysml.model.sysml.ViewpointUsage; +import org.omg.sysml.model.sysml.WhileLoopActionUsage; + +/** + * + * The Switch for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the caseXXX method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * + * @see org.omg.sysml.model.sysml.SysMLPackage + * @generated + */ +public class SysMLSwitch extends Switch { + /** + * The cached model package + * + * + * @generated + */ + protected static SysMLPackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public SysMLSwitch() { + if (modelPackage == null) { + modelPackage = SysMLPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) { + return ePackage == modelPackage; + } + + /** + * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case SysMLPackage.ACCEPT_ACTION_USAGE: { + AcceptActionUsage acceptActionUsage = (AcceptActionUsage)theEObject; + T result = caseAcceptActionUsage(acceptActionUsage); + if (result == null) result = caseActionUsage(acceptActionUsage); + if (result == null) result = caseOccurrenceUsage(acceptActionUsage); + if (result == null) result = caseStep(acceptActionUsage); + if (result == null) result = caseUsage(acceptActionUsage); + if (result == null) result = caseFeature(acceptActionUsage); + if (result == null) result = caseType(acceptActionUsage); + if (result == null) result = caseNamespace(acceptActionUsage); + if (result == null) result = caseElement(acceptActionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ACTION_DEFINITION: { + ActionDefinition actionDefinition = (ActionDefinition)theEObject; + T result = caseActionDefinition(actionDefinition); + if (result == null) result = caseOccurrenceDefinition(actionDefinition); + if (result == null) result = caseBehavior(actionDefinition); + if (result == null) result = caseDefinition(actionDefinition); + if (result == null) result = caseClass(actionDefinition); + if (result == null) result = caseClassifier(actionDefinition); + if (result == null) result = caseType(actionDefinition); + if (result == null) result = caseNamespace(actionDefinition); + if (result == null) result = caseElement(actionDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ACTION_USAGE: { + ActionUsage actionUsage = (ActionUsage)theEObject; + T result = caseActionUsage(actionUsage); + if (result == null) result = caseOccurrenceUsage(actionUsage); + if (result == null) result = caseStep(actionUsage); + if (result == null) result = caseUsage(actionUsage); + if (result == null) result = caseFeature(actionUsage); + if (result == null) result = caseType(actionUsage); + if (result == null) result = caseNamespace(actionUsage); + if (result == null) result = caseElement(actionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ACTOR_MEMBERSHIP: { + ActorMembership actorMembership = (ActorMembership)theEObject; + T result = caseActorMembership(actorMembership); + if (result == null) result = caseParameterMembership(actorMembership); + if (result == null) result = caseFeatureMembership(actorMembership); + if (result == null) result = caseOwningMembership(actorMembership); + if (result == null) result = caseMembership(actorMembership); + if (result == null) result = caseRelationship(actorMembership); + if (result == null) result = caseElement(actorMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ALLOCATION_DEFINITION: { + AllocationDefinition allocationDefinition = (AllocationDefinition)theEObject; + T result = caseAllocationDefinition(allocationDefinition); + if (result == null) result = caseConnectionDefinition(allocationDefinition); + if (result == null) result = casePartDefinition(allocationDefinition); + if (result == null) result = caseAssociationStructure(allocationDefinition); + if (result == null) result = caseItemDefinition(allocationDefinition); + if (result == null) result = caseAssociation(allocationDefinition); + if (result == null) result = caseOccurrenceDefinition(allocationDefinition); + if (result == null) result = caseStructure(allocationDefinition); + if (result == null) result = caseRelationship(allocationDefinition); + if (result == null) result = caseDefinition(allocationDefinition); + if (result == null) result = caseClass(allocationDefinition); + if (result == null) result = caseClassifier(allocationDefinition); + if (result == null) result = caseType(allocationDefinition); + if (result == null) result = caseNamespace(allocationDefinition); + if (result == null) result = caseElement(allocationDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ALLOCATION_USAGE: { + AllocationUsage allocationUsage = (AllocationUsage)theEObject; + T result = caseAllocationUsage(allocationUsage); + if (result == null) result = caseConnectionUsage(allocationUsage); + if (result == null) result = caseConnectorAsUsage(allocationUsage); + if (result == null) result = casePartUsage(allocationUsage); + if (result == null) result = caseConnector(allocationUsage); + if (result == null) result = caseItemUsage(allocationUsage); + if (result == null) result = caseFeature(allocationUsage); + if (result == null) result = caseRelationship(allocationUsage); + if (result == null) result = caseOccurrenceUsage(allocationUsage); + if (result == null) result = caseUsage(allocationUsage); + if (result == null) result = caseType(allocationUsage); + if (result == null) result = caseNamespace(allocationUsage); + if (result == null) result = caseElement(allocationUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ANALYSIS_CASE_DEFINITION: { + AnalysisCaseDefinition analysisCaseDefinition = (AnalysisCaseDefinition)theEObject; + T result = caseAnalysisCaseDefinition(analysisCaseDefinition); + if (result == null) result = caseCaseDefinition(analysisCaseDefinition); + if (result == null) result = caseCalculationDefinition(analysisCaseDefinition); + if (result == null) result = caseActionDefinition(analysisCaseDefinition); + if (result == null) result = caseFunction(analysisCaseDefinition); + if (result == null) result = caseOccurrenceDefinition(analysisCaseDefinition); + if (result == null) result = caseBehavior(analysisCaseDefinition); + if (result == null) result = caseDefinition(analysisCaseDefinition); + if (result == null) result = caseClass(analysisCaseDefinition); + if (result == null) result = caseClassifier(analysisCaseDefinition); + if (result == null) result = caseType(analysisCaseDefinition); + if (result == null) result = caseNamespace(analysisCaseDefinition); + if (result == null) result = caseElement(analysisCaseDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ANALYSIS_CASE_USAGE: { + AnalysisCaseUsage analysisCaseUsage = (AnalysisCaseUsage)theEObject; + T result = caseAnalysisCaseUsage(analysisCaseUsage); + if (result == null) result = caseCaseUsage(analysisCaseUsage); + if (result == null) result = caseCalculationUsage(analysisCaseUsage); + if (result == null) result = caseActionUsage(analysisCaseUsage); + if (result == null) result = caseExpression(analysisCaseUsage); + if (result == null) result = caseOccurrenceUsage(analysisCaseUsage); + if (result == null) result = caseStep(analysisCaseUsage); + if (result == null) result = caseUsage(analysisCaseUsage); + if (result == null) result = caseFeature(analysisCaseUsage); + if (result == null) result = caseType(analysisCaseUsage); + if (result == null) result = caseNamespace(analysisCaseUsage); + if (result == null) result = caseElement(analysisCaseUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ANNOTATING_ELEMENT: { + AnnotatingElement annotatingElement = (AnnotatingElement)theEObject; + T result = caseAnnotatingElement(annotatingElement); + if (result == null) result = caseElement(annotatingElement); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ANNOTATION: { + Annotation annotation = (Annotation)theEObject; + T result = caseAnnotation(annotation); + if (result == null) result = caseRelationship(annotation); + if (result == null) result = caseElement(annotation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ASSERT_CONSTRAINT_USAGE: { + AssertConstraintUsage assertConstraintUsage = (AssertConstraintUsage)theEObject; + T result = caseAssertConstraintUsage(assertConstraintUsage); + if (result == null) result = caseConstraintUsage(assertConstraintUsage); + if (result == null) result = caseInvariant(assertConstraintUsage); + if (result == null) result = caseOccurrenceUsage(assertConstraintUsage); + if (result == null) result = caseBooleanExpression(assertConstraintUsage); + if (result == null) result = caseUsage(assertConstraintUsage); + if (result == null) result = caseExpression(assertConstraintUsage); + if (result == null) result = caseStep(assertConstraintUsage); + if (result == null) result = caseFeature(assertConstraintUsage); + if (result == null) result = caseType(assertConstraintUsage); + if (result == null) result = caseNamespace(assertConstraintUsage); + if (result == null) result = caseElement(assertConstraintUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ASSIGNMENT_ACTION_USAGE: { + AssignmentActionUsage assignmentActionUsage = (AssignmentActionUsage)theEObject; + T result = caseAssignmentActionUsage(assignmentActionUsage); + if (result == null) result = caseActionUsage(assignmentActionUsage); + if (result == null) result = caseOccurrenceUsage(assignmentActionUsage); + if (result == null) result = caseStep(assignmentActionUsage); + if (result == null) result = caseUsage(assignmentActionUsage); + if (result == null) result = caseFeature(assignmentActionUsage); + if (result == null) result = caseType(assignmentActionUsage); + if (result == null) result = caseNamespace(assignmentActionUsage); + if (result == null) result = caseElement(assignmentActionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ASSOCIATION: { + Association association = (Association)theEObject; + T result = caseAssociation(association); + if (result == null) result = caseClassifier(association); + if (result == null) result = caseRelationship(association); + if (result == null) result = caseType(association); + if (result == null) result = caseNamespace(association); + if (result == null) result = caseElement(association); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ASSOCIATION_STRUCTURE: { + AssociationStructure associationStructure = (AssociationStructure)theEObject; + T result = caseAssociationStructure(associationStructure); + if (result == null) result = caseAssociation(associationStructure); + if (result == null) result = caseStructure(associationStructure); + if (result == null) result = caseRelationship(associationStructure); + if (result == null) result = caseClass(associationStructure); + if (result == null) result = caseClassifier(associationStructure); + if (result == null) result = caseType(associationStructure); + if (result == null) result = caseNamespace(associationStructure); + if (result == null) result = caseElement(associationStructure); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ATTRIBUTE_DEFINITION: { + AttributeDefinition attributeDefinition = (AttributeDefinition)theEObject; + T result = caseAttributeDefinition(attributeDefinition); + if (result == null) result = caseDefinition(attributeDefinition); + if (result == null) result = caseDataType(attributeDefinition); + if (result == null) result = caseClassifier(attributeDefinition); + if (result == null) result = caseType(attributeDefinition); + if (result == null) result = caseNamespace(attributeDefinition); + if (result == null) result = caseElement(attributeDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ATTRIBUTE_USAGE: { + AttributeUsage attributeUsage = (AttributeUsage)theEObject; + T result = caseAttributeUsage(attributeUsage); + if (result == null) result = caseUsage(attributeUsage); + if (result == null) result = caseFeature(attributeUsage); + if (result == null) result = caseType(attributeUsage); + if (result == null) result = caseNamespace(attributeUsage); + if (result == null) result = caseElement(attributeUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.BEHAVIOR: { + Behavior behavior = (Behavior)theEObject; + T result = caseBehavior(behavior); + if (result == null) result = caseClass(behavior); + if (result == null) result = caseClassifier(behavior); + if (result == null) result = caseType(behavior); + if (result == null) result = caseNamespace(behavior); + if (result == null) result = caseElement(behavior); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.BINDING_CONNECTOR: { + BindingConnector bindingConnector = (BindingConnector)theEObject; + T result = caseBindingConnector(bindingConnector); + if (result == null) result = caseConnector(bindingConnector); + if (result == null) result = caseFeature(bindingConnector); + if (result == null) result = caseRelationship(bindingConnector); + if (result == null) result = caseType(bindingConnector); + if (result == null) result = caseNamespace(bindingConnector); + if (result == null) result = caseElement(bindingConnector); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.BINDING_CONNECTOR_AS_USAGE: { + BindingConnectorAsUsage bindingConnectorAsUsage = (BindingConnectorAsUsage)theEObject; + T result = caseBindingConnectorAsUsage(bindingConnectorAsUsage); + if (result == null) result = caseConnectorAsUsage(bindingConnectorAsUsage); + if (result == null) result = caseBindingConnector(bindingConnectorAsUsage); + if (result == null) result = caseUsage(bindingConnectorAsUsage); + if (result == null) result = caseConnector(bindingConnectorAsUsage); + if (result == null) result = caseFeature(bindingConnectorAsUsage); + if (result == null) result = caseRelationship(bindingConnectorAsUsage); + if (result == null) result = caseType(bindingConnectorAsUsage); + if (result == null) result = caseNamespace(bindingConnectorAsUsage); + if (result == null) result = caseElement(bindingConnectorAsUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.BOOLEAN_EXPRESSION: { + BooleanExpression booleanExpression = (BooleanExpression)theEObject; + T result = caseBooleanExpression(booleanExpression); + if (result == null) result = caseExpression(booleanExpression); + if (result == null) result = caseStep(booleanExpression); + if (result == null) result = caseFeature(booleanExpression); + if (result == null) result = caseType(booleanExpression); + if (result == null) result = caseNamespace(booleanExpression); + if (result == null) result = caseElement(booleanExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CALCULATION_DEFINITION: { + CalculationDefinition calculationDefinition = (CalculationDefinition)theEObject; + T result = caseCalculationDefinition(calculationDefinition); + if (result == null) result = caseActionDefinition(calculationDefinition); + if (result == null) result = caseFunction(calculationDefinition); + if (result == null) result = caseOccurrenceDefinition(calculationDefinition); + if (result == null) result = caseBehavior(calculationDefinition); + if (result == null) result = caseDefinition(calculationDefinition); + if (result == null) result = caseClass(calculationDefinition); + if (result == null) result = caseClassifier(calculationDefinition); + if (result == null) result = caseType(calculationDefinition); + if (result == null) result = caseNamespace(calculationDefinition); + if (result == null) result = caseElement(calculationDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CALCULATION_USAGE: { + CalculationUsage calculationUsage = (CalculationUsage)theEObject; + T result = caseCalculationUsage(calculationUsage); + if (result == null) result = caseActionUsage(calculationUsage); + if (result == null) result = caseExpression(calculationUsage); + if (result == null) result = caseOccurrenceUsage(calculationUsage); + if (result == null) result = caseStep(calculationUsage); + if (result == null) result = caseUsage(calculationUsage); + if (result == null) result = caseFeature(calculationUsage); + if (result == null) result = caseType(calculationUsage); + if (result == null) result = caseNamespace(calculationUsage); + if (result == null) result = caseElement(calculationUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CASE_DEFINITION: { + CaseDefinition caseDefinition = (CaseDefinition)theEObject; + T result = caseCaseDefinition(caseDefinition); + if (result == null) result = caseCalculationDefinition(caseDefinition); + if (result == null) result = caseActionDefinition(caseDefinition); + if (result == null) result = caseFunction(caseDefinition); + if (result == null) result = caseOccurrenceDefinition(caseDefinition); + if (result == null) result = caseBehavior(caseDefinition); + if (result == null) result = caseDefinition(caseDefinition); + if (result == null) result = caseClass(caseDefinition); + if (result == null) result = caseClassifier(caseDefinition); + if (result == null) result = caseType(caseDefinition); + if (result == null) result = caseNamespace(caseDefinition); + if (result == null) result = caseElement(caseDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CASE_USAGE: { + CaseUsage caseUsage = (CaseUsage)theEObject; + T result = caseCaseUsage(caseUsage); + if (result == null) result = caseCalculationUsage(caseUsage); + if (result == null) result = caseActionUsage(caseUsage); + if (result == null) result = caseExpression(caseUsage); + if (result == null) result = caseOccurrenceUsage(caseUsage); + if (result == null) result = caseStep(caseUsage); + if (result == null) result = caseUsage(caseUsage); + if (result == null) result = caseFeature(caseUsage); + if (result == null) result = caseType(caseUsage); + if (result == null) result = caseNamespace(caseUsage); + if (result == null) result = caseElement(caseUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CLASS: { + org.omg.sysml.model.sysml.Class class_ = (org.omg.sysml.model.sysml.Class)theEObject; + T result = caseClass(class_); + if (result == null) result = caseClassifier(class_); + if (result == null) result = caseType(class_); + if (result == null) result = caseNamespace(class_); + if (result == null) result = caseElement(class_); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CLASSIFIER: { + Classifier classifier = (Classifier)theEObject; + T result = caseClassifier(classifier); + if (result == null) result = caseType(classifier); + if (result == null) result = caseNamespace(classifier); + if (result == null) result = caseElement(classifier); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.COLLECT_EXPRESSION: { + CollectExpression collectExpression = (CollectExpression)theEObject; + T result = caseCollectExpression(collectExpression); + if (result == null) result = caseOperatorExpression(collectExpression); + if (result == null) result = caseInvocationExpression(collectExpression); + if (result == null) result = caseInstantiationExpression(collectExpression); + if (result == null) result = caseExpression(collectExpression); + if (result == null) result = caseStep(collectExpression); + if (result == null) result = caseFeature(collectExpression); + if (result == null) result = caseType(collectExpression); + if (result == null) result = caseNamespace(collectExpression); + if (result == null) result = caseElement(collectExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.COMMENT: { + Comment comment = (Comment)theEObject; + T result = caseComment(comment); + if (result == null) result = caseAnnotatingElement(comment); + if (result == null) result = caseElement(comment); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONCERN_DEFINITION: { + ConcernDefinition concernDefinition = (ConcernDefinition)theEObject; + T result = caseConcernDefinition(concernDefinition); + if (result == null) result = caseRequirementDefinition(concernDefinition); + if (result == null) result = caseConstraintDefinition(concernDefinition); + if (result == null) result = caseOccurrenceDefinition(concernDefinition); + if (result == null) result = casePredicate(concernDefinition); + if (result == null) result = caseDefinition(concernDefinition); + if (result == null) result = caseFunction(concernDefinition); + if (result == null) result = caseClassifier(concernDefinition); + if (result == null) result = caseBehavior(concernDefinition); + if (result == null) result = caseType(concernDefinition); + if (result == null) result = caseClass(concernDefinition); + if (result == null) result = caseNamespace(concernDefinition); + if (result == null) result = caseElement(concernDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONCERN_USAGE: { + ConcernUsage concernUsage = (ConcernUsage)theEObject; + T result = caseConcernUsage(concernUsage); + if (result == null) result = caseRequirementUsage(concernUsage); + if (result == null) result = caseConstraintUsage(concernUsage); + if (result == null) result = caseOccurrenceUsage(concernUsage); + if (result == null) result = caseBooleanExpression(concernUsage); + if (result == null) result = caseUsage(concernUsage); + if (result == null) result = caseExpression(concernUsage); + if (result == null) result = caseStep(concernUsage); + if (result == null) result = caseFeature(concernUsage); + if (result == null) result = caseType(concernUsage); + if (result == null) result = caseNamespace(concernUsage); + if (result == null) result = caseElement(concernUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONJUGATED_PORT_DEFINITION: { + ConjugatedPortDefinition conjugatedPortDefinition = (ConjugatedPortDefinition)theEObject; + T result = caseConjugatedPortDefinition(conjugatedPortDefinition); + if (result == null) result = casePortDefinition(conjugatedPortDefinition); + if (result == null) result = caseOccurrenceDefinition(conjugatedPortDefinition); + if (result == null) result = caseStructure(conjugatedPortDefinition); + if (result == null) result = caseDefinition(conjugatedPortDefinition); + if (result == null) result = caseClass(conjugatedPortDefinition); + if (result == null) result = caseClassifier(conjugatedPortDefinition); + if (result == null) result = caseType(conjugatedPortDefinition); + if (result == null) result = caseNamespace(conjugatedPortDefinition); + if (result == null) result = caseElement(conjugatedPortDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONJUGATED_PORT_TYPING: { + ConjugatedPortTyping conjugatedPortTyping = (ConjugatedPortTyping)theEObject; + T result = caseConjugatedPortTyping(conjugatedPortTyping); + if (result == null) result = caseFeatureTyping(conjugatedPortTyping); + if (result == null) result = caseSpecialization(conjugatedPortTyping); + if (result == null) result = caseRelationship(conjugatedPortTyping); + if (result == null) result = caseElement(conjugatedPortTyping); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONJUGATION: { + Conjugation conjugation = (Conjugation)theEObject; + T result = caseConjugation(conjugation); + if (result == null) result = caseRelationship(conjugation); + if (result == null) result = caseElement(conjugation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONNECTION_DEFINITION: { + ConnectionDefinition connectionDefinition = (ConnectionDefinition)theEObject; + T result = caseConnectionDefinition(connectionDefinition); + if (result == null) result = casePartDefinition(connectionDefinition); + if (result == null) result = caseAssociationStructure(connectionDefinition); + if (result == null) result = caseItemDefinition(connectionDefinition); + if (result == null) result = caseAssociation(connectionDefinition); + if (result == null) result = caseOccurrenceDefinition(connectionDefinition); + if (result == null) result = caseStructure(connectionDefinition); + if (result == null) result = caseRelationship(connectionDefinition); + if (result == null) result = caseDefinition(connectionDefinition); + if (result == null) result = caseClass(connectionDefinition); + if (result == null) result = caseClassifier(connectionDefinition); + if (result == null) result = caseType(connectionDefinition); + if (result == null) result = caseNamespace(connectionDefinition); + if (result == null) result = caseElement(connectionDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONNECTION_USAGE: { + ConnectionUsage connectionUsage = (ConnectionUsage)theEObject; + T result = caseConnectionUsage(connectionUsage); + if (result == null) result = caseConnectorAsUsage(connectionUsage); + if (result == null) result = casePartUsage(connectionUsage); + if (result == null) result = caseConnector(connectionUsage); + if (result == null) result = caseItemUsage(connectionUsage); + if (result == null) result = caseFeature(connectionUsage); + if (result == null) result = caseRelationship(connectionUsage); + if (result == null) result = caseOccurrenceUsage(connectionUsage); + if (result == null) result = caseUsage(connectionUsage); + if (result == null) result = caseType(connectionUsage); + if (result == null) result = caseNamespace(connectionUsage); + if (result == null) result = caseElement(connectionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONNECTOR: { + Connector connector = (Connector)theEObject; + T result = caseConnector(connector); + if (result == null) result = caseFeature(connector); + if (result == null) result = caseRelationship(connector); + if (result == null) result = caseType(connector); + if (result == null) result = caseNamespace(connector); + if (result == null) result = caseElement(connector); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONNECTOR_AS_USAGE: { + ConnectorAsUsage connectorAsUsage = (ConnectorAsUsage)theEObject; + T result = caseConnectorAsUsage(connectorAsUsage); + if (result == null) result = caseUsage(connectorAsUsage); + if (result == null) result = caseConnector(connectorAsUsage); + if (result == null) result = caseFeature(connectorAsUsage); + if (result == null) result = caseRelationship(connectorAsUsage); + if (result == null) result = caseType(connectorAsUsage); + if (result == null) result = caseNamespace(connectorAsUsage); + if (result == null) result = caseElement(connectorAsUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONSTRAINT_DEFINITION: { + ConstraintDefinition constraintDefinition = (ConstraintDefinition)theEObject; + T result = caseConstraintDefinition(constraintDefinition); + if (result == null) result = caseOccurrenceDefinition(constraintDefinition); + if (result == null) result = casePredicate(constraintDefinition); + if (result == null) result = caseDefinition(constraintDefinition); + if (result == null) result = caseFunction(constraintDefinition); + if (result == null) result = caseClassifier(constraintDefinition); + if (result == null) result = caseBehavior(constraintDefinition); + if (result == null) result = caseType(constraintDefinition); + if (result == null) result = caseClass(constraintDefinition); + if (result == null) result = caseNamespace(constraintDefinition); + if (result == null) result = caseElement(constraintDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONSTRAINT_USAGE: { + ConstraintUsage constraintUsage = (ConstraintUsage)theEObject; + T result = caseConstraintUsage(constraintUsage); + if (result == null) result = caseOccurrenceUsage(constraintUsage); + if (result == null) result = caseBooleanExpression(constraintUsage); + if (result == null) result = caseUsage(constraintUsage); + if (result == null) result = caseExpression(constraintUsage); + if (result == null) result = caseStep(constraintUsage); + if (result == null) result = caseFeature(constraintUsage); + if (result == null) result = caseType(constraintUsage); + if (result == null) result = caseNamespace(constraintUsage); + if (result == null) result = caseElement(constraintUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONSTRUCTOR_EXPRESSION: { + ConstructorExpression constructorExpression = (ConstructorExpression)theEObject; + T result = caseConstructorExpression(constructorExpression); + if (result == null) result = caseInstantiationExpression(constructorExpression); + if (result == null) result = caseExpression(constructorExpression); + if (result == null) result = caseStep(constructorExpression); + if (result == null) result = caseFeature(constructorExpression); + if (result == null) result = caseType(constructorExpression); + if (result == null) result = caseNamespace(constructorExpression); + if (result == null) result = caseElement(constructorExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CONTROL_NODE: { + ControlNode controlNode = (ControlNode)theEObject; + T result = caseControlNode(controlNode); + if (result == null) result = caseActionUsage(controlNode); + if (result == null) result = caseOccurrenceUsage(controlNode); + if (result == null) result = caseStep(controlNode); + if (result == null) result = caseUsage(controlNode); + if (result == null) result = caseFeature(controlNode); + if (result == null) result = caseType(controlNode); + if (result == null) result = caseNamespace(controlNode); + if (result == null) result = caseElement(controlNode); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.CROSS_SUBSETTING: { + CrossSubsetting crossSubsetting = (CrossSubsetting)theEObject; + T result = caseCrossSubsetting(crossSubsetting); + if (result == null) result = caseSubsetting(crossSubsetting); + if (result == null) result = caseSpecialization(crossSubsetting); + if (result == null) result = caseRelationship(crossSubsetting); + if (result == null) result = caseElement(crossSubsetting); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.DATA_TYPE: { + DataType dataType = (DataType)theEObject; + T result = caseDataType(dataType); + if (result == null) result = caseClassifier(dataType); + if (result == null) result = caseType(dataType); + if (result == null) result = caseNamespace(dataType); + if (result == null) result = caseElement(dataType); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.DECISION_NODE: { + DecisionNode decisionNode = (DecisionNode)theEObject; + T result = caseDecisionNode(decisionNode); + if (result == null) result = caseControlNode(decisionNode); + if (result == null) result = caseActionUsage(decisionNode); + if (result == null) result = caseOccurrenceUsage(decisionNode); + if (result == null) result = caseStep(decisionNode); + if (result == null) result = caseUsage(decisionNode); + if (result == null) result = caseFeature(decisionNode); + if (result == null) result = caseType(decisionNode); + if (result == null) result = caseNamespace(decisionNode); + if (result == null) result = caseElement(decisionNode); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.DEFINITION: { + Definition definition = (Definition)theEObject; + T result = caseDefinition(definition); + if (result == null) result = caseClassifier(definition); + if (result == null) result = caseType(definition); + if (result == null) result = caseNamespace(definition); + if (result == null) result = caseElement(definition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.DEPENDENCY: { + Dependency dependency = (Dependency)theEObject; + T result = caseDependency(dependency); + if (result == null) result = caseRelationship(dependency); + if (result == null) result = caseElement(dependency); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.DIFFERENCING: { + Differencing differencing = (Differencing)theEObject; + T result = caseDifferencing(differencing); + if (result == null) result = caseRelationship(differencing); + if (result == null) result = caseElement(differencing); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.DISJOINING: { + Disjoining disjoining = (Disjoining)theEObject; + T result = caseDisjoining(disjoining); + if (result == null) result = caseRelationship(disjoining); + if (result == null) result = caseElement(disjoining); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.DOCUMENTATION: { + Documentation documentation = (Documentation)theEObject; + T result = caseDocumentation(documentation); + if (result == null) result = caseComment(documentation); + if (result == null) result = caseAnnotatingElement(documentation); + if (result == null) result = caseElement(documentation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ELEMENT: { + Element element = (Element)theEObject; + T result = caseElement(element); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ELEMENT_FILTER_MEMBERSHIP: { + ElementFilterMembership elementFilterMembership = (ElementFilterMembership)theEObject; + T result = caseElementFilterMembership(elementFilterMembership); + if (result == null) result = caseOwningMembership(elementFilterMembership); + if (result == null) result = caseMembership(elementFilterMembership); + if (result == null) result = caseRelationship(elementFilterMembership); + if (result == null) result = caseElement(elementFilterMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.END_FEATURE_MEMBERSHIP: { + EndFeatureMembership endFeatureMembership = (EndFeatureMembership)theEObject; + T result = caseEndFeatureMembership(endFeatureMembership); + if (result == null) result = caseFeatureMembership(endFeatureMembership); + if (result == null) result = caseOwningMembership(endFeatureMembership); + if (result == null) result = caseMembership(endFeatureMembership); + if (result == null) result = caseRelationship(endFeatureMembership); + if (result == null) result = caseElement(endFeatureMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ENUMERATION_DEFINITION: { + EnumerationDefinition enumerationDefinition = (EnumerationDefinition)theEObject; + T result = caseEnumerationDefinition(enumerationDefinition); + if (result == null) result = caseAttributeDefinition(enumerationDefinition); + if (result == null) result = caseDefinition(enumerationDefinition); + if (result == null) result = caseDataType(enumerationDefinition); + if (result == null) result = caseClassifier(enumerationDefinition); + if (result == null) result = caseType(enumerationDefinition); + if (result == null) result = caseNamespace(enumerationDefinition); + if (result == null) result = caseElement(enumerationDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ENUMERATION_USAGE: { + EnumerationUsage enumerationUsage = (EnumerationUsage)theEObject; + T result = caseEnumerationUsage(enumerationUsage); + if (result == null) result = caseAttributeUsage(enumerationUsage); + if (result == null) result = caseUsage(enumerationUsage); + if (result == null) result = caseFeature(enumerationUsage); + if (result == null) result = caseType(enumerationUsage); + if (result == null) result = caseNamespace(enumerationUsage); + if (result == null) result = caseElement(enumerationUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.EVENT_OCCURRENCE_USAGE: { + EventOccurrenceUsage eventOccurrenceUsage = (EventOccurrenceUsage)theEObject; + T result = caseEventOccurrenceUsage(eventOccurrenceUsage); + if (result == null) result = caseOccurrenceUsage(eventOccurrenceUsage); + if (result == null) result = caseUsage(eventOccurrenceUsage); + if (result == null) result = caseFeature(eventOccurrenceUsage); + if (result == null) result = caseType(eventOccurrenceUsage); + if (result == null) result = caseNamespace(eventOccurrenceUsage); + if (result == null) result = caseElement(eventOccurrenceUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.EXHIBIT_STATE_USAGE: { + ExhibitStateUsage exhibitStateUsage = (ExhibitStateUsage)theEObject; + T result = caseExhibitStateUsage(exhibitStateUsage); + if (result == null) result = caseStateUsage(exhibitStateUsage); + if (result == null) result = casePerformActionUsage(exhibitStateUsage); + if (result == null) result = caseActionUsage(exhibitStateUsage); + if (result == null) result = caseEventOccurrenceUsage(exhibitStateUsage); + if (result == null) result = caseOccurrenceUsage(exhibitStateUsage); + if (result == null) result = caseStep(exhibitStateUsage); + if (result == null) result = caseUsage(exhibitStateUsage); + if (result == null) result = caseFeature(exhibitStateUsage); + if (result == null) result = caseType(exhibitStateUsage); + if (result == null) result = caseNamespace(exhibitStateUsage); + if (result == null) result = caseElement(exhibitStateUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.EXPOSE: { + Expose expose = (Expose)theEObject; + T result = caseExpose(expose); + if (result == null) result = caseImport(expose); + if (result == null) result = caseRelationship(expose); + if (result == null) result = caseElement(expose); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.EXPRESSION: { + Expression expression = (Expression)theEObject; + T result = caseExpression(expression); + if (result == null) result = caseStep(expression); + if (result == null) result = caseFeature(expression); + if (result == null) result = caseType(expression); + if (result == null) result = caseNamespace(expression); + if (result == null) result = caseElement(expression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FEATURE: { + Feature feature = (Feature)theEObject; + T result = caseFeature(feature); + if (result == null) result = caseType(feature); + if (result == null) result = caseNamespace(feature); + if (result == null) result = caseElement(feature); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FEATURE_CHAIN_EXPRESSION: { + FeatureChainExpression featureChainExpression = (FeatureChainExpression)theEObject; + T result = caseFeatureChainExpression(featureChainExpression); + if (result == null) result = caseOperatorExpression(featureChainExpression); + if (result == null) result = caseInvocationExpression(featureChainExpression); + if (result == null) result = caseInstantiationExpression(featureChainExpression); + if (result == null) result = caseExpression(featureChainExpression); + if (result == null) result = caseStep(featureChainExpression); + if (result == null) result = caseFeature(featureChainExpression); + if (result == null) result = caseType(featureChainExpression); + if (result == null) result = caseNamespace(featureChainExpression); + if (result == null) result = caseElement(featureChainExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FEATURE_CHAINING: { + FeatureChaining featureChaining = (FeatureChaining)theEObject; + T result = caseFeatureChaining(featureChaining); + if (result == null) result = caseRelationship(featureChaining); + if (result == null) result = caseElement(featureChaining); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FEATURE_INVERTING: { + FeatureInverting featureInverting = (FeatureInverting)theEObject; + T result = caseFeatureInverting(featureInverting); + if (result == null) result = caseRelationship(featureInverting); + if (result == null) result = caseElement(featureInverting); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FEATURE_MEMBERSHIP: { + FeatureMembership featureMembership = (FeatureMembership)theEObject; + T result = caseFeatureMembership(featureMembership); + if (result == null) result = caseOwningMembership(featureMembership); + if (result == null) result = caseMembership(featureMembership); + if (result == null) result = caseRelationship(featureMembership); + if (result == null) result = caseElement(featureMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FEATURE_REFERENCE_EXPRESSION: { + FeatureReferenceExpression featureReferenceExpression = (FeatureReferenceExpression)theEObject; + T result = caseFeatureReferenceExpression(featureReferenceExpression); + if (result == null) result = caseExpression(featureReferenceExpression); + if (result == null) result = caseStep(featureReferenceExpression); + if (result == null) result = caseFeature(featureReferenceExpression); + if (result == null) result = caseType(featureReferenceExpression); + if (result == null) result = caseNamespace(featureReferenceExpression); + if (result == null) result = caseElement(featureReferenceExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FEATURE_TYPING: { + FeatureTyping featureTyping = (FeatureTyping)theEObject; + T result = caseFeatureTyping(featureTyping); + if (result == null) result = caseSpecialization(featureTyping); + if (result == null) result = caseRelationship(featureTyping); + if (result == null) result = caseElement(featureTyping); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FEATURE_VALUE: { + FeatureValue featureValue = (FeatureValue)theEObject; + T result = caseFeatureValue(featureValue); + if (result == null) result = caseOwningMembership(featureValue); + if (result == null) result = caseMembership(featureValue); + if (result == null) result = caseRelationship(featureValue); + if (result == null) result = caseElement(featureValue); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FLOW: { + Flow flow = (Flow)theEObject; + T result = caseFlow(flow); + if (result == null) result = caseConnector(flow); + if (result == null) result = caseStep(flow); + if (result == null) result = caseFeature(flow); + if (result == null) result = caseRelationship(flow); + if (result == null) result = caseType(flow); + if (result == null) result = caseNamespace(flow); + if (result == null) result = caseElement(flow); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FLOW_DEFINITION: { + FlowDefinition flowDefinition = (FlowDefinition)theEObject; + T result = caseFlowDefinition(flowDefinition); + if (result == null) result = caseActionDefinition(flowDefinition); + if (result == null) result = caseInteraction(flowDefinition); + if (result == null) result = caseOccurrenceDefinition(flowDefinition); + if (result == null) result = caseBehavior(flowDefinition); + if (result == null) result = caseAssociation(flowDefinition); + if (result == null) result = caseDefinition(flowDefinition); + if (result == null) result = caseClass(flowDefinition); + if (result == null) result = caseRelationship(flowDefinition); + if (result == null) result = caseClassifier(flowDefinition); + if (result == null) result = caseType(flowDefinition); + if (result == null) result = caseNamespace(flowDefinition); + if (result == null) result = caseElement(flowDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FLOW_END: { + FlowEnd flowEnd = (FlowEnd)theEObject; + T result = caseFlowEnd(flowEnd); + if (result == null) result = caseFeature(flowEnd); + if (result == null) result = caseType(flowEnd); + if (result == null) result = caseNamespace(flowEnd); + if (result == null) result = caseElement(flowEnd); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FLOW_USAGE: { + FlowUsage flowUsage = (FlowUsage)theEObject; + T result = caseFlowUsage(flowUsage); + if (result == null) result = caseConnectorAsUsage(flowUsage); + if (result == null) result = caseActionUsage(flowUsage); + if (result == null) result = caseFlow(flowUsage); + if (result == null) result = caseConnector(flowUsage); + if (result == null) result = caseOccurrenceUsage(flowUsage); + if (result == null) result = caseStep(flowUsage); + if (result == null) result = caseUsage(flowUsage); + if (result == null) result = caseFeature(flowUsage); + if (result == null) result = caseRelationship(flowUsage); + if (result == null) result = caseType(flowUsage); + if (result == null) result = caseNamespace(flowUsage); + if (result == null) result = caseElement(flowUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FORK_NODE: { + ForkNode forkNode = (ForkNode)theEObject; + T result = caseForkNode(forkNode); + if (result == null) result = caseControlNode(forkNode); + if (result == null) result = caseActionUsage(forkNode); + if (result == null) result = caseOccurrenceUsage(forkNode); + if (result == null) result = caseStep(forkNode); + if (result == null) result = caseUsage(forkNode); + if (result == null) result = caseFeature(forkNode); + if (result == null) result = caseType(forkNode); + if (result == null) result = caseNamespace(forkNode); + if (result == null) result = caseElement(forkNode); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FOR_LOOP_ACTION_USAGE: { + ForLoopActionUsage forLoopActionUsage = (ForLoopActionUsage)theEObject; + T result = caseForLoopActionUsage(forLoopActionUsage); + if (result == null) result = caseLoopActionUsage(forLoopActionUsage); + if (result == null) result = caseActionUsage(forLoopActionUsage); + if (result == null) result = caseOccurrenceUsage(forLoopActionUsage); + if (result == null) result = caseStep(forLoopActionUsage); + if (result == null) result = caseUsage(forLoopActionUsage); + if (result == null) result = caseFeature(forLoopActionUsage); + if (result == null) result = caseType(forLoopActionUsage); + if (result == null) result = caseNamespace(forLoopActionUsage); + if (result == null) result = caseElement(forLoopActionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FRAMED_CONCERN_MEMBERSHIP: { + FramedConcernMembership framedConcernMembership = (FramedConcernMembership)theEObject; + T result = caseFramedConcernMembership(framedConcernMembership); + if (result == null) result = caseRequirementConstraintMembership(framedConcernMembership); + if (result == null) result = caseFeatureMembership(framedConcernMembership); + if (result == null) result = caseOwningMembership(framedConcernMembership); + if (result == null) result = caseMembership(framedConcernMembership); + if (result == null) result = caseRelationship(framedConcernMembership); + if (result == null) result = caseElement(framedConcernMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.FUNCTION: { + Function function = (Function)theEObject; + T result = caseFunction(function); + if (result == null) result = caseBehavior(function); + if (result == null) result = caseClass(function); + if (result == null) result = caseClassifier(function); + if (result == null) result = caseType(function); + if (result == null) result = caseNamespace(function); + if (result == null) result = caseElement(function); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.IF_ACTION_USAGE: { + IfActionUsage ifActionUsage = (IfActionUsage)theEObject; + T result = caseIfActionUsage(ifActionUsage); + if (result == null) result = caseActionUsage(ifActionUsage); + if (result == null) result = caseOccurrenceUsage(ifActionUsage); + if (result == null) result = caseStep(ifActionUsage); + if (result == null) result = caseUsage(ifActionUsage); + if (result == null) result = caseFeature(ifActionUsage); + if (result == null) result = caseType(ifActionUsage); + if (result == null) result = caseNamespace(ifActionUsage); + if (result == null) result = caseElement(ifActionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.IMPORT: { + Import import_ = (Import)theEObject; + T result = caseImport(import_); + if (result == null) result = caseRelationship(import_); + if (result == null) result = caseElement(import_); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.INCLUDE_USE_CASE_USAGE: { + IncludeUseCaseUsage includeUseCaseUsage = (IncludeUseCaseUsage)theEObject; + T result = caseIncludeUseCaseUsage(includeUseCaseUsage); + if (result == null) result = caseUseCaseUsage(includeUseCaseUsage); + if (result == null) result = casePerformActionUsage(includeUseCaseUsage); + if (result == null) result = caseCaseUsage(includeUseCaseUsage); + if (result == null) result = caseEventOccurrenceUsage(includeUseCaseUsage); + if (result == null) result = caseCalculationUsage(includeUseCaseUsage); + if (result == null) result = caseActionUsage(includeUseCaseUsage); + if (result == null) result = caseExpression(includeUseCaseUsage); + if (result == null) result = caseOccurrenceUsage(includeUseCaseUsage); + if (result == null) result = caseStep(includeUseCaseUsage); + if (result == null) result = caseUsage(includeUseCaseUsage); + if (result == null) result = caseFeature(includeUseCaseUsage); + if (result == null) result = caseType(includeUseCaseUsage); + if (result == null) result = caseNamespace(includeUseCaseUsage); + if (result == null) result = caseElement(includeUseCaseUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.INDEX_EXPRESSION: { + IndexExpression indexExpression = (IndexExpression)theEObject; + T result = caseIndexExpression(indexExpression); + if (result == null) result = caseOperatorExpression(indexExpression); + if (result == null) result = caseInvocationExpression(indexExpression); + if (result == null) result = caseInstantiationExpression(indexExpression); + if (result == null) result = caseExpression(indexExpression); + if (result == null) result = caseStep(indexExpression); + if (result == null) result = caseFeature(indexExpression); + if (result == null) result = caseType(indexExpression); + if (result == null) result = caseNamespace(indexExpression); + if (result == null) result = caseElement(indexExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.INSTANTIATION_EXPRESSION: { + InstantiationExpression instantiationExpression = (InstantiationExpression)theEObject; + T result = caseInstantiationExpression(instantiationExpression); + if (result == null) result = caseExpression(instantiationExpression); + if (result == null) result = caseStep(instantiationExpression); + if (result == null) result = caseFeature(instantiationExpression); + if (result == null) result = caseType(instantiationExpression); + if (result == null) result = caseNamespace(instantiationExpression); + if (result == null) result = caseElement(instantiationExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.INTERACTION: { + Interaction interaction = (Interaction)theEObject; + T result = caseInteraction(interaction); + if (result == null) result = caseAssociation(interaction); + if (result == null) result = caseBehavior(interaction); + if (result == null) result = caseRelationship(interaction); + if (result == null) result = caseClass(interaction); + if (result == null) result = caseClassifier(interaction); + if (result == null) result = caseType(interaction); + if (result == null) result = caseNamespace(interaction); + if (result == null) result = caseElement(interaction); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.INTERFACE_DEFINITION: { + InterfaceDefinition interfaceDefinition = (InterfaceDefinition)theEObject; + T result = caseInterfaceDefinition(interfaceDefinition); + if (result == null) result = caseConnectionDefinition(interfaceDefinition); + if (result == null) result = casePartDefinition(interfaceDefinition); + if (result == null) result = caseAssociationStructure(interfaceDefinition); + if (result == null) result = caseItemDefinition(interfaceDefinition); + if (result == null) result = caseAssociation(interfaceDefinition); + if (result == null) result = caseOccurrenceDefinition(interfaceDefinition); + if (result == null) result = caseStructure(interfaceDefinition); + if (result == null) result = caseRelationship(interfaceDefinition); + if (result == null) result = caseDefinition(interfaceDefinition); + if (result == null) result = caseClass(interfaceDefinition); + if (result == null) result = caseClassifier(interfaceDefinition); + if (result == null) result = caseType(interfaceDefinition); + if (result == null) result = caseNamespace(interfaceDefinition); + if (result == null) result = caseElement(interfaceDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.INTERFACE_USAGE: { + InterfaceUsage interfaceUsage = (InterfaceUsage)theEObject; + T result = caseInterfaceUsage(interfaceUsage); + if (result == null) result = caseConnectionUsage(interfaceUsage); + if (result == null) result = caseConnectorAsUsage(interfaceUsage); + if (result == null) result = casePartUsage(interfaceUsage); + if (result == null) result = caseConnector(interfaceUsage); + if (result == null) result = caseItemUsage(interfaceUsage); + if (result == null) result = caseFeature(interfaceUsage); + if (result == null) result = caseRelationship(interfaceUsage); + if (result == null) result = caseOccurrenceUsage(interfaceUsage); + if (result == null) result = caseUsage(interfaceUsage); + if (result == null) result = caseType(interfaceUsage); + if (result == null) result = caseNamespace(interfaceUsage); + if (result == null) result = caseElement(interfaceUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.INTERSECTING: { + Intersecting intersecting = (Intersecting)theEObject; + T result = caseIntersecting(intersecting); + if (result == null) result = caseRelationship(intersecting); + if (result == null) result = caseElement(intersecting); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.INVARIANT: { + Invariant invariant = (Invariant)theEObject; + T result = caseInvariant(invariant); + if (result == null) result = caseBooleanExpression(invariant); + if (result == null) result = caseExpression(invariant); + if (result == null) result = caseStep(invariant); + if (result == null) result = caseFeature(invariant); + if (result == null) result = caseType(invariant); + if (result == null) result = caseNamespace(invariant); + if (result == null) result = caseElement(invariant); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.INVOCATION_EXPRESSION: { + InvocationExpression invocationExpression = (InvocationExpression)theEObject; + T result = caseInvocationExpression(invocationExpression); + if (result == null) result = caseInstantiationExpression(invocationExpression); + if (result == null) result = caseExpression(invocationExpression); + if (result == null) result = caseStep(invocationExpression); + if (result == null) result = caseFeature(invocationExpression); + if (result == null) result = caseType(invocationExpression); + if (result == null) result = caseNamespace(invocationExpression); + if (result == null) result = caseElement(invocationExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ITEM_DEFINITION: { + ItemDefinition itemDefinition = (ItemDefinition)theEObject; + T result = caseItemDefinition(itemDefinition); + if (result == null) result = caseOccurrenceDefinition(itemDefinition); + if (result == null) result = caseStructure(itemDefinition); + if (result == null) result = caseDefinition(itemDefinition); + if (result == null) result = caseClass(itemDefinition); + if (result == null) result = caseClassifier(itemDefinition); + if (result == null) result = caseType(itemDefinition); + if (result == null) result = caseNamespace(itemDefinition); + if (result == null) result = caseElement(itemDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.ITEM_USAGE: { + ItemUsage itemUsage = (ItemUsage)theEObject; + T result = caseItemUsage(itemUsage); + if (result == null) result = caseOccurrenceUsage(itemUsage); + if (result == null) result = caseUsage(itemUsage); + if (result == null) result = caseFeature(itemUsage); + if (result == null) result = caseType(itemUsage); + if (result == null) result = caseNamespace(itemUsage); + if (result == null) result = caseElement(itemUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.JOIN_NODE: { + JoinNode joinNode = (JoinNode)theEObject; + T result = caseJoinNode(joinNode); + if (result == null) result = caseControlNode(joinNode); + if (result == null) result = caseActionUsage(joinNode); + if (result == null) result = caseOccurrenceUsage(joinNode); + if (result == null) result = caseStep(joinNode); + if (result == null) result = caseUsage(joinNode); + if (result == null) result = caseFeature(joinNode); + if (result == null) result = caseType(joinNode); + if (result == null) result = caseNamespace(joinNode); + if (result == null) result = caseElement(joinNode); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.LIBRARY_PACKAGE: { + LibraryPackage libraryPackage = (LibraryPackage)theEObject; + T result = caseLibraryPackage(libraryPackage); + if (result == null) result = casePackage(libraryPackage); + if (result == null) result = caseNamespace(libraryPackage); + if (result == null) result = caseElement(libraryPackage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.LITERAL_BOOLEAN: { + LiteralBoolean literalBoolean = (LiteralBoolean)theEObject; + T result = caseLiteralBoolean(literalBoolean); + if (result == null) result = caseLiteralExpression(literalBoolean); + if (result == null) result = caseExpression(literalBoolean); + if (result == null) result = caseStep(literalBoolean); + if (result == null) result = caseFeature(literalBoolean); + if (result == null) result = caseType(literalBoolean); + if (result == null) result = caseNamespace(literalBoolean); + if (result == null) result = caseElement(literalBoolean); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.LITERAL_EXPRESSION: { + LiteralExpression literalExpression = (LiteralExpression)theEObject; + T result = caseLiteralExpression(literalExpression); + if (result == null) result = caseExpression(literalExpression); + if (result == null) result = caseStep(literalExpression); + if (result == null) result = caseFeature(literalExpression); + if (result == null) result = caseType(literalExpression); + if (result == null) result = caseNamespace(literalExpression); + if (result == null) result = caseElement(literalExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.LITERAL_INFINITY: { + LiteralInfinity literalInfinity = (LiteralInfinity)theEObject; + T result = caseLiteralInfinity(literalInfinity); + if (result == null) result = caseLiteralExpression(literalInfinity); + if (result == null) result = caseExpression(literalInfinity); + if (result == null) result = caseStep(literalInfinity); + if (result == null) result = caseFeature(literalInfinity); + if (result == null) result = caseType(literalInfinity); + if (result == null) result = caseNamespace(literalInfinity); + if (result == null) result = caseElement(literalInfinity); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.LITERAL_INTEGER: { + LiteralInteger literalInteger = (LiteralInteger)theEObject; + T result = caseLiteralInteger(literalInteger); + if (result == null) result = caseLiteralExpression(literalInteger); + if (result == null) result = caseExpression(literalInteger); + if (result == null) result = caseStep(literalInteger); + if (result == null) result = caseFeature(literalInteger); + if (result == null) result = caseType(literalInteger); + if (result == null) result = caseNamespace(literalInteger); + if (result == null) result = caseElement(literalInteger); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.LITERAL_RATIONAL: { + LiteralRational literalRational = (LiteralRational)theEObject; + T result = caseLiteralRational(literalRational); + if (result == null) result = caseLiteralExpression(literalRational); + if (result == null) result = caseExpression(literalRational); + if (result == null) result = caseStep(literalRational); + if (result == null) result = caseFeature(literalRational); + if (result == null) result = caseType(literalRational); + if (result == null) result = caseNamespace(literalRational); + if (result == null) result = caseElement(literalRational); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.LITERAL_STRING: { + LiteralString literalString = (LiteralString)theEObject; + T result = caseLiteralString(literalString); + if (result == null) result = caseLiteralExpression(literalString); + if (result == null) result = caseExpression(literalString); + if (result == null) result = caseStep(literalString); + if (result == null) result = caseFeature(literalString); + if (result == null) result = caseType(literalString); + if (result == null) result = caseNamespace(literalString); + if (result == null) result = caseElement(literalString); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.LOOP_ACTION_USAGE: { + LoopActionUsage loopActionUsage = (LoopActionUsage)theEObject; + T result = caseLoopActionUsage(loopActionUsage); + if (result == null) result = caseActionUsage(loopActionUsage); + if (result == null) result = caseOccurrenceUsage(loopActionUsage); + if (result == null) result = caseStep(loopActionUsage); + if (result == null) result = caseUsage(loopActionUsage); + if (result == null) result = caseFeature(loopActionUsage); + if (result == null) result = caseType(loopActionUsage); + if (result == null) result = caseNamespace(loopActionUsage); + if (result == null) result = caseElement(loopActionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.MEMBERSHIP: { + Membership membership = (Membership)theEObject; + T result = caseMembership(membership); + if (result == null) result = caseRelationship(membership); + if (result == null) result = caseElement(membership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.MEMBERSHIP_EXPOSE: { + MembershipExpose membershipExpose = (MembershipExpose)theEObject; + T result = caseMembershipExpose(membershipExpose); + if (result == null) result = caseMembershipImport(membershipExpose); + if (result == null) result = caseExpose(membershipExpose); + if (result == null) result = caseImport(membershipExpose); + if (result == null) result = caseRelationship(membershipExpose); + if (result == null) result = caseElement(membershipExpose); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.MEMBERSHIP_IMPORT: { + MembershipImport membershipImport = (MembershipImport)theEObject; + T result = caseMembershipImport(membershipImport); + if (result == null) result = caseImport(membershipImport); + if (result == null) result = caseRelationship(membershipImport); + if (result == null) result = caseElement(membershipImport); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.MERGE_NODE: { + MergeNode mergeNode = (MergeNode)theEObject; + T result = caseMergeNode(mergeNode); + if (result == null) result = caseControlNode(mergeNode); + if (result == null) result = caseActionUsage(mergeNode); + if (result == null) result = caseOccurrenceUsage(mergeNode); + if (result == null) result = caseStep(mergeNode); + if (result == null) result = caseUsage(mergeNode); + if (result == null) result = caseFeature(mergeNode); + if (result == null) result = caseType(mergeNode); + if (result == null) result = caseNamespace(mergeNode); + if (result == null) result = caseElement(mergeNode); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.METACLASS: { + Metaclass metaclass = (Metaclass)theEObject; + T result = caseMetaclass(metaclass); + if (result == null) result = caseStructure(metaclass); + if (result == null) result = caseClass(metaclass); + if (result == null) result = caseClassifier(metaclass); + if (result == null) result = caseType(metaclass); + if (result == null) result = caseNamespace(metaclass); + if (result == null) result = caseElement(metaclass); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.METADATA_ACCESS_EXPRESSION: { + MetadataAccessExpression metadataAccessExpression = (MetadataAccessExpression)theEObject; + T result = caseMetadataAccessExpression(metadataAccessExpression); + if (result == null) result = caseExpression(metadataAccessExpression); + if (result == null) result = caseStep(metadataAccessExpression); + if (result == null) result = caseFeature(metadataAccessExpression); + if (result == null) result = caseType(metadataAccessExpression); + if (result == null) result = caseNamespace(metadataAccessExpression); + if (result == null) result = caseElement(metadataAccessExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.METADATA_DEFINITION: { + MetadataDefinition metadataDefinition = (MetadataDefinition)theEObject; + T result = caseMetadataDefinition(metadataDefinition); + if (result == null) result = caseItemDefinition(metadataDefinition); + if (result == null) result = caseMetaclass(metadataDefinition); + if (result == null) result = caseOccurrenceDefinition(metadataDefinition); + if (result == null) result = caseStructure(metadataDefinition); + if (result == null) result = caseDefinition(metadataDefinition); + if (result == null) result = caseClass(metadataDefinition); + if (result == null) result = caseClassifier(metadataDefinition); + if (result == null) result = caseType(metadataDefinition); + if (result == null) result = caseNamespace(metadataDefinition); + if (result == null) result = caseElement(metadataDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.METADATA_FEATURE: { + MetadataFeature metadataFeature = (MetadataFeature)theEObject; + T result = caseMetadataFeature(metadataFeature); + if (result == null) result = caseFeature(metadataFeature); + if (result == null) result = caseAnnotatingElement(metadataFeature); + if (result == null) result = caseType(metadataFeature); + if (result == null) result = caseNamespace(metadataFeature); + if (result == null) result = caseElement(metadataFeature); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.METADATA_USAGE: { + MetadataUsage metadataUsage = (MetadataUsage)theEObject; + T result = caseMetadataUsage(metadataUsage); + if (result == null) result = caseItemUsage(metadataUsage); + if (result == null) result = caseMetadataFeature(metadataUsage); + if (result == null) result = caseOccurrenceUsage(metadataUsage); + if (result == null) result = caseAnnotatingElement(metadataUsage); + if (result == null) result = caseUsage(metadataUsage); + if (result == null) result = caseFeature(metadataUsage); + if (result == null) result = caseType(metadataUsage); + if (result == null) result = caseNamespace(metadataUsage); + if (result == null) result = caseElement(metadataUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.MULTIPLICITY: { + Multiplicity multiplicity = (Multiplicity)theEObject; + T result = caseMultiplicity(multiplicity); + if (result == null) result = caseFeature(multiplicity); + if (result == null) result = caseType(multiplicity); + if (result == null) result = caseNamespace(multiplicity); + if (result == null) result = caseElement(multiplicity); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.MULTIPLICITY_RANGE: { + MultiplicityRange multiplicityRange = (MultiplicityRange)theEObject; + T result = caseMultiplicityRange(multiplicityRange); + if (result == null) result = caseMultiplicity(multiplicityRange); + if (result == null) result = caseFeature(multiplicityRange); + if (result == null) result = caseType(multiplicityRange); + if (result == null) result = caseNamespace(multiplicityRange); + if (result == null) result = caseElement(multiplicityRange); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.NAMESPACE: { + Namespace namespace = (Namespace)theEObject; + T result = caseNamespace(namespace); + if (result == null) result = caseElement(namespace); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.NAMESPACE_EXPOSE: { + NamespaceExpose namespaceExpose = (NamespaceExpose)theEObject; + T result = caseNamespaceExpose(namespaceExpose); + if (result == null) result = caseNamespaceImport(namespaceExpose); + if (result == null) result = caseExpose(namespaceExpose); + if (result == null) result = caseImport(namespaceExpose); + if (result == null) result = caseRelationship(namespaceExpose); + if (result == null) result = caseElement(namespaceExpose); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.NAMESPACE_IMPORT: { + NamespaceImport namespaceImport = (NamespaceImport)theEObject; + T result = caseNamespaceImport(namespaceImport); + if (result == null) result = caseImport(namespaceImport); + if (result == null) result = caseRelationship(namespaceImport); + if (result == null) result = caseElement(namespaceImport); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.NULL_EXPRESSION: { + NullExpression nullExpression = (NullExpression)theEObject; + T result = caseNullExpression(nullExpression); + if (result == null) result = caseExpression(nullExpression); + if (result == null) result = caseStep(nullExpression); + if (result == null) result = caseFeature(nullExpression); + if (result == null) result = caseType(nullExpression); + if (result == null) result = caseNamespace(nullExpression); + if (result == null) result = caseElement(nullExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.OBJECTIVE_MEMBERSHIP: { + ObjectiveMembership objectiveMembership = (ObjectiveMembership)theEObject; + T result = caseObjectiveMembership(objectiveMembership); + if (result == null) result = caseFeatureMembership(objectiveMembership); + if (result == null) result = caseOwningMembership(objectiveMembership); + if (result == null) result = caseMembership(objectiveMembership); + if (result == null) result = caseRelationship(objectiveMembership); + if (result == null) result = caseElement(objectiveMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.OCCURRENCE_DEFINITION: { + OccurrenceDefinition occurrenceDefinition = (OccurrenceDefinition)theEObject; + T result = caseOccurrenceDefinition(occurrenceDefinition); + if (result == null) result = caseDefinition(occurrenceDefinition); + if (result == null) result = caseClass(occurrenceDefinition); + if (result == null) result = caseClassifier(occurrenceDefinition); + if (result == null) result = caseType(occurrenceDefinition); + if (result == null) result = caseNamespace(occurrenceDefinition); + if (result == null) result = caseElement(occurrenceDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.OCCURRENCE_USAGE: { + OccurrenceUsage occurrenceUsage = (OccurrenceUsage)theEObject; + T result = caseOccurrenceUsage(occurrenceUsage); + if (result == null) result = caseUsage(occurrenceUsage); + if (result == null) result = caseFeature(occurrenceUsage); + if (result == null) result = caseType(occurrenceUsage); + if (result == null) result = caseNamespace(occurrenceUsage); + if (result == null) result = caseElement(occurrenceUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.OPERATOR_EXPRESSION: { + OperatorExpression operatorExpression = (OperatorExpression)theEObject; + T result = caseOperatorExpression(operatorExpression); + if (result == null) result = caseInvocationExpression(operatorExpression); + if (result == null) result = caseInstantiationExpression(operatorExpression); + if (result == null) result = caseExpression(operatorExpression); + if (result == null) result = caseStep(operatorExpression); + if (result == null) result = caseFeature(operatorExpression); + if (result == null) result = caseType(operatorExpression); + if (result == null) result = caseNamespace(operatorExpression); + if (result == null) result = caseElement(operatorExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.OWNING_MEMBERSHIP: { + OwningMembership owningMembership = (OwningMembership)theEObject; + T result = caseOwningMembership(owningMembership); + if (result == null) result = caseMembership(owningMembership); + if (result == null) result = caseRelationship(owningMembership); + if (result == null) result = caseElement(owningMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.PACKAGE: { + org.omg.sysml.model.sysml.Package package_ = (org.omg.sysml.model.sysml.Package)theEObject; + T result = casePackage(package_); + if (result == null) result = caseNamespace(package_); + if (result == null) result = caseElement(package_); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.PARAMETER_MEMBERSHIP: { + ParameterMembership parameterMembership = (ParameterMembership)theEObject; + T result = caseParameterMembership(parameterMembership); + if (result == null) result = caseFeatureMembership(parameterMembership); + if (result == null) result = caseOwningMembership(parameterMembership); + if (result == null) result = caseMembership(parameterMembership); + if (result == null) result = caseRelationship(parameterMembership); + if (result == null) result = caseElement(parameterMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.PART_DEFINITION: { + PartDefinition partDefinition = (PartDefinition)theEObject; + T result = casePartDefinition(partDefinition); + if (result == null) result = caseItemDefinition(partDefinition); + if (result == null) result = caseOccurrenceDefinition(partDefinition); + if (result == null) result = caseStructure(partDefinition); + if (result == null) result = caseDefinition(partDefinition); + if (result == null) result = caseClass(partDefinition); + if (result == null) result = caseClassifier(partDefinition); + if (result == null) result = caseType(partDefinition); + if (result == null) result = caseNamespace(partDefinition); + if (result == null) result = caseElement(partDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.PART_USAGE: { + PartUsage partUsage = (PartUsage)theEObject; + T result = casePartUsage(partUsage); + if (result == null) result = caseItemUsage(partUsage); + if (result == null) result = caseOccurrenceUsage(partUsage); + if (result == null) result = caseUsage(partUsage); + if (result == null) result = caseFeature(partUsage); + if (result == null) result = caseType(partUsage); + if (result == null) result = caseNamespace(partUsage); + if (result == null) result = caseElement(partUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.PAYLOAD_FEATURE: { + PayloadFeature payloadFeature = (PayloadFeature)theEObject; + T result = casePayloadFeature(payloadFeature); + if (result == null) result = caseFeature(payloadFeature); + if (result == null) result = caseType(payloadFeature); + if (result == null) result = caseNamespace(payloadFeature); + if (result == null) result = caseElement(payloadFeature); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.PERFORM_ACTION_USAGE: { + PerformActionUsage performActionUsage = (PerformActionUsage)theEObject; + T result = casePerformActionUsage(performActionUsage); + if (result == null) result = caseActionUsage(performActionUsage); + if (result == null) result = caseEventOccurrenceUsage(performActionUsage); + if (result == null) result = caseOccurrenceUsage(performActionUsage); + if (result == null) result = caseStep(performActionUsage); + if (result == null) result = caseUsage(performActionUsage); + if (result == null) result = caseFeature(performActionUsage); + if (result == null) result = caseType(performActionUsage); + if (result == null) result = caseNamespace(performActionUsage); + if (result == null) result = caseElement(performActionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.PORT_CONJUGATION: { + PortConjugation portConjugation = (PortConjugation)theEObject; + T result = casePortConjugation(portConjugation); + if (result == null) result = caseConjugation(portConjugation); + if (result == null) result = caseRelationship(portConjugation); + if (result == null) result = caseElement(portConjugation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.PORT_DEFINITION: { + PortDefinition portDefinition = (PortDefinition)theEObject; + T result = casePortDefinition(portDefinition); + if (result == null) result = caseOccurrenceDefinition(portDefinition); + if (result == null) result = caseStructure(portDefinition); + if (result == null) result = caseDefinition(portDefinition); + if (result == null) result = caseClass(portDefinition); + if (result == null) result = caseClassifier(portDefinition); + if (result == null) result = caseType(portDefinition); + if (result == null) result = caseNamespace(portDefinition); + if (result == null) result = caseElement(portDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.PORT_USAGE: { + PortUsage portUsage = (PortUsage)theEObject; + T result = casePortUsage(portUsage); + if (result == null) result = caseOccurrenceUsage(portUsage); + if (result == null) result = caseUsage(portUsage); + if (result == null) result = caseFeature(portUsage); + if (result == null) result = caseType(portUsage); + if (result == null) result = caseNamespace(portUsage); + if (result == null) result = caseElement(portUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.PREDICATE: { + Predicate predicate = (Predicate)theEObject; + T result = casePredicate(predicate); + if (result == null) result = caseFunction(predicate); + if (result == null) result = caseBehavior(predicate); + if (result == null) result = caseClass(predicate); + if (result == null) result = caseClassifier(predicate); + if (result == null) result = caseType(predicate); + if (result == null) result = caseNamespace(predicate); + if (result == null) result = caseElement(predicate); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.REDEFINITION: { + Redefinition redefinition = (Redefinition)theEObject; + T result = caseRedefinition(redefinition); + if (result == null) result = caseSubsetting(redefinition); + if (result == null) result = caseSpecialization(redefinition); + if (result == null) result = caseRelationship(redefinition); + if (result == null) result = caseElement(redefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.REFERENCE_SUBSETTING: { + ReferenceSubsetting referenceSubsetting = (ReferenceSubsetting)theEObject; + T result = caseReferenceSubsetting(referenceSubsetting); + if (result == null) result = caseSubsetting(referenceSubsetting); + if (result == null) result = caseSpecialization(referenceSubsetting); + if (result == null) result = caseRelationship(referenceSubsetting); + if (result == null) result = caseElement(referenceSubsetting); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.REFERENCE_USAGE: { + ReferenceUsage referenceUsage = (ReferenceUsage)theEObject; + T result = caseReferenceUsage(referenceUsage); + if (result == null) result = caseUsage(referenceUsage); + if (result == null) result = caseFeature(referenceUsage); + if (result == null) result = caseType(referenceUsage); + if (result == null) result = caseNamespace(referenceUsage); + if (result == null) result = caseElement(referenceUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.RELATIONSHIP: { + Relationship relationship = (Relationship)theEObject; + T result = caseRelationship(relationship); + if (result == null) result = caseElement(relationship); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.RENDERING_DEFINITION: { + RenderingDefinition renderingDefinition = (RenderingDefinition)theEObject; + T result = caseRenderingDefinition(renderingDefinition); + if (result == null) result = casePartDefinition(renderingDefinition); + if (result == null) result = caseItemDefinition(renderingDefinition); + if (result == null) result = caseOccurrenceDefinition(renderingDefinition); + if (result == null) result = caseStructure(renderingDefinition); + if (result == null) result = caseDefinition(renderingDefinition); + if (result == null) result = caseClass(renderingDefinition); + if (result == null) result = caseClassifier(renderingDefinition); + if (result == null) result = caseType(renderingDefinition); + if (result == null) result = caseNamespace(renderingDefinition); + if (result == null) result = caseElement(renderingDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.RENDERING_USAGE: { + RenderingUsage renderingUsage = (RenderingUsage)theEObject; + T result = caseRenderingUsage(renderingUsage); + if (result == null) result = casePartUsage(renderingUsage); + if (result == null) result = caseItemUsage(renderingUsage); + if (result == null) result = caseOccurrenceUsage(renderingUsage); + if (result == null) result = caseUsage(renderingUsage); + if (result == null) result = caseFeature(renderingUsage); + if (result == null) result = caseType(renderingUsage); + if (result == null) result = caseNamespace(renderingUsage); + if (result == null) result = caseElement(renderingUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.REQUIREMENT_CONSTRAINT_MEMBERSHIP: { + RequirementConstraintMembership requirementConstraintMembership = (RequirementConstraintMembership)theEObject; + T result = caseRequirementConstraintMembership(requirementConstraintMembership); + if (result == null) result = caseFeatureMembership(requirementConstraintMembership); + if (result == null) result = caseOwningMembership(requirementConstraintMembership); + if (result == null) result = caseMembership(requirementConstraintMembership); + if (result == null) result = caseRelationship(requirementConstraintMembership); + if (result == null) result = caseElement(requirementConstraintMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.REQUIREMENT_DEFINITION: { + RequirementDefinition requirementDefinition = (RequirementDefinition)theEObject; + T result = caseRequirementDefinition(requirementDefinition); + if (result == null) result = caseConstraintDefinition(requirementDefinition); + if (result == null) result = caseOccurrenceDefinition(requirementDefinition); + if (result == null) result = casePredicate(requirementDefinition); + if (result == null) result = caseDefinition(requirementDefinition); + if (result == null) result = caseFunction(requirementDefinition); + if (result == null) result = caseClassifier(requirementDefinition); + if (result == null) result = caseBehavior(requirementDefinition); + if (result == null) result = caseType(requirementDefinition); + if (result == null) result = caseClass(requirementDefinition); + if (result == null) result = caseNamespace(requirementDefinition); + if (result == null) result = caseElement(requirementDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.REQUIREMENT_USAGE: { + RequirementUsage requirementUsage = (RequirementUsage)theEObject; + T result = caseRequirementUsage(requirementUsage); + if (result == null) result = caseConstraintUsage(requirementUsage); + if (result == null) result = caseOccurrenceUsage(requirementUsage); + if (result == null) result = caseBooleanExpression(requirementUsage); + if (result == null) result = caseUsage(requirementUsage); + if (result == null) result = caseExpression(requirementUsage); + if (result == null) result = caseStep(requirementUsage); + if (result == null) result = caseFeature(requirementUsage); + if (result == null) result = caseType(requirementUsage); + if (result == null) result = caseNamespace(requirementUsage); + if (result == null) result = caseElement(requirementUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.REQUIREMENT_VERIFICATION_MEMBERSHIP: { + RequirementVerificationMembership requirementVerificationMembership = (RequirementVerificationMembership)theEObject; + T result = caseRequirementVerificationMembership(requirementVerificationMembership); + if (result == null) result = caseRequirementConstraintMembership(requirementVerificationMembership); + if (result == null) result = caseFeatureMembership(requirementVerificationMembership); + if (result == null) result = caseOwningMembership(requirementVerificationMembership); + if (result == null) result = caseMembership(requirementVerificationMembership); + if (result == null) result = caseRelationship(requirementVerificationMembership); + if (result == null) result = caseElement(requirementVerificationMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.RESULT_EXPRESSION_MEMBERSHIP: { + ResultExpressionMembership resultExpressionMembership = (ResultExpressionMembership)theEObject; + T result = caseResultExpressionMembership(resultExpressionMembership); + if (result == null) result = caseFeatureMembership(resultExpressionMembership); + if (result == null) result = caseOwningMembership(resultExpressionMembership); + if (result == null) result = caseMembership(resultExpressionMembership); + if (result == null) result = caseRelationship(resultExpressionMembership); + if (result == null) result = caseElement(resultExpressionMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.RETURN_PARAMETER_MEMBERSHIP: { + ReturnParameterMembership returnParameterMembership = (ReturnParameterMembership)theEObject; + T result = caseReturnParameterMembership(returnParameterMembership); + if (result == null) result = caseParameterMembership(returnParameterMembership); + if (result == null) result = caseFeatureMembership(returnParameterMembership); + if (result == null) result = caseOwningMembership(returnParameterMembership); + if (result == null) result = caseMembership(returnParameterMembership); + if (result == null) result = caseRelationship(returnParameterMembership); + if (result == null) result = caseElement(returnParameterMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SATISFY_REQUIREMENT_USAGE: { + SatisfyRequirementUsage satisfyRequirementUsage = (SatisfyRequirementUsage)theEObject; + T result = caseSatisfyRequirementUsage(satisfyRequirementUsage); + if (result == null) result = caseRequirementUsage(satisfyRequirementUsage); + if (result == null) result = caseAssertConstraintUsage(satisfyRequirementUsage); + if (result == null) result = caseConstraintUsage(satisfyRequirementUsage); + if (result == null) result = caseInvariant(satisfyRequirementUsage); + if (result == null) result = caseOccurrenceUsage(satisfyRequirementUsage); + if (result == null) result = caseBooleanExpression(satisfyRequirementUsage); + if (result == null) result = caseUsage(satisfyRequirementUsage); + if (result == null) result = caseExpression(satisfyRequirementUsage); + if (result == null) result = caseStep(satisfyRequirementUsage); + if (result == null) result = caseFeature(satisfyRequirementUsage); + if (result == null) result = caseType(satisfyRequirementUsage); + if (result == null) result = caseNamespace(satisfyRequirementUsage); + if (result == null) result = caseElement(satisfyRequirementUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SELECT_EXPRESSION: { + SelectExpression selectExpression = (SelectExpression)theEObject; + T result = caseSelectExpression(selectExpression); + if (result == null) result = caseOperatorExpression(selectExpression); + if (result == null) result = caseInvocationExpression(selectExpression); + if (result == null) result = caseInstantiationExpression(selectExpression); + if (result == null) result = caseExpression(selectExpression); + if (result == null) result = caseStep(selectExpression); + if (result == null) result = caseFeature(selectExpression); + if (result == null) result = caseType(selectExpression); + if (result == null) result = caseNamespace(selectExpression); + if (result == null) result = caseElement(selectExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SEND_ACTION_USAGE: { + SendActionUsage sendActionUsage = (SendActionUsage)theEObject; + T result = caseSendActionUsage(sendActionUsage); + if (result == null) result = caseActionUsage(sendActionUsage); + if (result == null) result = caseOccurrenceUsage(sendActionUsage); + if (result == null) result = caseStep(sendActionUsage); + if (result == null) result = caseUsage(sendActionUsage); + if (result == null) result = caseFeature(sendActionUsage); + if (result == null) result = caseType(sendActionUsage); + if (result == null) result = caseNamespace(sendActionUsage); + if (result == null) result = caseElement(sendActionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SPECIALIZATION: { + Specialization specialization = (Specialization)theEObject; + T result = caseSpecialization(specialization); + if (result == null) result = caseRelationship(specialization); + if (result == null) result = caseElement(specialization); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.STAKEHOLDER_MEMBERSHIP: { + StakeholderMembership stakeholderMembership = (StakeholderMembership)theEObject; + T result = caseStakeholderMembership(stakeholderMembership); + if (result == null) result = caseParameterMembership(stakeholderMembership); + if (result == null) result = caseFeatureMembership(stakeholderMembership); + if (result == null) result = caseOwningMembership(stakeholderMembership); + if (result == null) result = caseMembership(stakeholderMembership); + if (result == null) result = caseRelationship(stakeholderMembership); + if (result == null) result = caseElement(stakeholderMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.STATE_DEFINITION: { + StateDefinition stateDefinition = (StateDefinition)theEObject; + T result = caseStateDefinition(stateDefinition); + if (result == null) result = caseActionDefinition(stateDefinition); + if (result == null) result = caseOccurrenceDefinition(stateDefinition); + if (result == null) result = caseBehavior(stateDefinition); + if (result == null) result = caseDefinition(stateDefinition); + if (result == null) result = caseClass(stateDefinition); + if (result == null) result = caseClassifier(stateDefinition); + if (result == null) result = caseType(stateDefinition); + if (result == null) result = caseNamespace(stateDefinition); + if (result == null) result = caseElement(stateDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.STATE_SUBACTION_MEMBERSHIP: { + StateSubactionMembership stateSubactionMembership = (StateSubactionMembership)theEObject; + T result = caseStateSubactionMembership(stateSubactionMembership); + if (result == null) result = caseFeatureMembership(stateSubactionMembership); + if (result == null) result = caseOwningMembership(stateSubactionMembership); + if (result == null) result = caseMembership(stateSubactionMembership); + if (result == null) result = caseRelationship(stateSubactionMembership); + if (result == null) result = caseElement(stateSubactionMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.STATE_USAGE: { + StateUsage stateUsage = (StateUsage)theEObject; + T result = caseStateUsage(stateUsage); + if (result == null) result = caseActionUsage(stateUsage); + if (result == null) result = caseOccurrenceUsage(stateUsage); + if (result == null) result = caseStep(stateUsage); + if (result == null) result = caseUsage(stateUsage); + if (result == null) result = caseFeature(stateUsage); + if (result == null) result = caseType(stateUsage); + if (result == null) result = caseNamespace(stateUsage); + if (result == null) result = caseElement(stateUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.STEP: { + Step step = (Step)theEObject; + T result = caseStep(step); + if (result == null) result = caseFeature(step); + if (result == null) result = caseType(step); + if (result == null) result = caseNamespace(step); + if (result == null) result = caseElement(step); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.STRUCTURE: { + Structure structure = (Structure)theEObject; + T result = caseStructure(structure); + if (result == null) result = caseClass(structure); + if (result == null) result = caseClassifier(structure); + if (result == null) result = caseType(structure); + if (result == null) result = caseNamespace(structure); + if (result == null) result = caseElement(structure); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SUBCLASSIFICATION: { + Subclassification subclassification = (Subclassification)theEObject; + T result = caseSubclassification(subclassification); + if (result == null) result = caseSpecialization(subclassification); + if (result == null) result = caseRelationship(subclassification); + if (result == null) result = caseElement(subclassification); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SUBJECT_MEMBERSHIP: { + SubjectMembership subjectMembership = (SubjectMembership)theEObject; + T result = caseSubjectMembership(subjectMembership); + if (result == null) result = caseParameterMembership(subjectMembership); + if (result == null) result = caseFeatureMembership(subjectMembership); + if (result == null) result = caseOwningMembership(subjectMembership); + if (result == null) result = caseMembership(subjectMembership); + if (result == null) result = caseRelationship(subjectMembership); + if (result == null) result = caseElement(subjectMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SUBSETTING: { + Subsetting subsetting = (Subsetting)theEObject; + T result = caseSubsetting(subsetting); + if (result == null) result = caseSpecialization(subsetting); + if (result == null) result = caseRelationship(subsetting); + if (result == null) result = caseElement(subsetting); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SUCCESSION: { + Succession succession = (Succession)theEObject; + T result = caseSuccession(succession); + if (result == null) result = caseConnector(succession); + if (result == null) result = caseFeature(succession); + if (result == null) result = caseRelationship(succession); + if (result == null) result = caseType(succession); + if (result == null) result = caseNamespace(succession); + if (result == null) result = caseElement(succession); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SUCCESSION_AS_USAGE: { + SuccessionAsUsage successionAsUsage = (SuccessionAsUsage)theEObject; + T result = caseSuccessionAsUsage(successionAsUsage); + if (result == null) result = caseConnectorAsUsage(successionAsUsage); + if (result == null) result = caseSuccession(successionAsUsage); + if (result == null) result = caseUsage(successionAsUsage); + if (result == null) result = caseConnector(successionAsUsage); + if (result == null) result = caseFeature(successionAsUsage); + if (result == null) result = caseRelationship(successionAsUsage); + if (result == null) result = caseType(successionAsUsage); + if (result == null) result = caseNamespace(successionAsUsage); + if (result == null) result = caseElement(successionAsUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SUCCESSION_FLOW: { + SuccessionFlow successionFlow = (SuccessionFlow)theEObject; + T result = caseSuccessionFlow(successionFlow); + if (result == null) result = caseFlow(successionFlow); + if (result == null) result = caseSuccession(successionFlow); + if (result == null) result = caseConnector(successionFlow); + if (result == null) result = caseStep(successionFlow); + if (result == null) result = caseFeature(successionFlow); + if (result == null) result = caseRelationship(successionFlow); + if (result == null) result = caseType(successionFlow); + if (result == null) result = caseNamespace(successionFlow); + if (result == null) result = caseElement(successionFlow); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.SUCCESSION_FLOW_USAGE: { + SuccessionFlowUsage successionFlowUsage = (SuccessionFlowUsage)theEObject; + T result = caseSuccessionFlowUsage(successionFlowUsage); + if (result == null) result = caseFlowUsage(successionFlowUsage); + if (result == null) result = caseSuccessionFlow(successionFlowUsage); + if (result == null) result = caseConnectorAsUsage(successionFlowUsage); + if (result == null) result = caseActionUsage(successionFlowUsage); + if (result == null) result = caseFlow(successionFlowUsage); + if (result == null) result = caseSuccession(successionFlowUsage); + if (result == null) result = caseConnector(successionFlowUsage); + if (result == null) result = caseOccurrenceUsage(successionFlowUsage); + if (result == null) result = caseStep(successionFlowUsage); + if (result == null) result = caseUsage(successionFlowUsage); + if (result == null) result = caseFeature(successionFlowUsage); + if (result == null) result = caseRelationship(successionFlowUsage); + if (result == null) result = caseType(successionFlowUsage); + if (result == null) result = caseNamespace(successionFlowUsage); + if (result == null) result = caseElement(successionFlowUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.TERMINATE_ACTION_USAGE: { + TerminateActionUsage terminateActionUsage = (TerminateActionUsage)theEObject; + T result = caseTerminateActionUsage(terminateActionUsage); + if (result == null) result = caseActionUsage(terminateActionUsage); + if (result == null) result = caseOccurrenceUsage(terminateActionUsage); + if (result == null) result = caseStep(terminateActionUsage); + if (result == null) result = caseUsage(terminateActionUsage); + if (result == null) result = caseFeature(terminateActionUsage); + if (result == null) result = caseType(terminateActionUsage); + if (result == null) result = caseNamespace(terminateActionUsage); + if (result == null) result = caseElement(terminateActionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.TEXTUAL_REPRESENTATION: { + TextualRepresentation textualRepresentation = (TextualRepresentation)theEObject; + T result = caseTextualRepresentation(textualRepresentation); + if (result == null) result = caseAnnotatingElement(textualRepresentation); + if (result == null) result = caseElement(textualRepresentation); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.TRANSITION_FEATURE_MEMBERSHIP: { + TransitionFeatureMembership transitionFeatureMembership = (TransitionFeatureMembership)theEObject; + T result = caseTransitionFeatureMembership(transitionFeatureMembership); + if (result == null) result = caseFeatureMembership(transitionFeatureMembership); + if (result == null) result = caseOwningMembership(transitionFeatureMembership); + if (result == null) result = caseMembership(transitionFeatureMembership); + if (result == null) result = caseRelationship(transitionFeatureMembership); + if (result == null) result = caseElement(transitionFeatureMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.TRANSITION_USAGE: { + TransitionUsage transitionUsage = (TransitionUsage)theEObject; + T result = caseTransitionUsage(transitionUsage); + if (result == null) result = caseActionUsage(transitionUsage); + if (result == null) result = caseOccurrenceUsage(transitionUsage); + if (result == null) result = caseStep(transitionUsage); + if (result == null) result = caseUsage(transitionUsage); + if (result == null) result = caseFeature(transitionUsage); + if (result == null) result = caseType(transitionUsage); + if (result == null) result = caseNamespace(transitionUsage); + if (result == null) result = caseElement(transitionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.TRIGGER_INVOCATION_EXPRESSION: { + TriggerInvocationExpression triggerInvocationExpression = (TriggerInvocationExpression)theEObject; + T result = caseTriggerInvocationExpression(triggerInvocationExpression); + if (result == null) result = caseInvocationExpression(triggerInvocationExpression); + if (result == null) result = caseInstantiationExpression(triggerInvocationExpression); + if (result == null) result = caseExpression(triggerInvocationExpression); + if (result == null) result = caseStep(triggerInvocationExpression); + if (result == null) result = caseFeature(triggerInvocationExpression); + if (result == null) result = caseType(triggerInvocationExpression); + if (result == null) result = caseNamespace(triggerInvocationExpression); + if (result == null) result = caseElement(triggerInvocationExpression); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.TYPE: { + Type type = (Type)theEObject; + T result = caseType(type); + if (result == null) result = caseNamespace(type); + if (result == null) result = caseElement(type); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.TYPE_FEATURING: { + TypeFeaturing typeFeaturing = (TypeFeaturing)theEObject; + T result = caseTypeFeaturing(typeFeaturing); + if (result == null) result = caseRelationship(typeFeaturing); + if (result == null) result = caseElement(typeFeaturing); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.UNIONING: { + Unioning unioning = (Unioning)theEObject; + T result = caseUnioning(unioning); + if (result == null) result = caseRelationship(unioning); + if (result == null) result = caseElement(unioning); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.USAGE: { + Usage usage = (Usage)theEObject; + T result = caseUsage(usage); + if (result == null) result = caseFeature(usage); + if (result == null) result = caseType(usage); + if (result == null) result = caseNamespace(usage); + if (result == null) result = caseElement(usage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.USE_CASE_DEFINITION: { + UseCaseDefinition useCaseDefinition = (UseCaseDefinition)theEObject; + T result = caseUseCaseDefinition(useCaseDefinition); + if (result == null) result = caseCaseDefinition(useCaseDefinition); + if (result == null) result = caseCalculationDefinition(useCaseDefinition); + if (result == null) result = caseActionDefinition(useCaseDefinition); + if (result == null) result = caseFunction(useCaseDefinition); + if (result == null) result = caseOccurrenceDefinition(useCaseDefinition); + if (result == null) result = caseBehavior(useCaseDefinition); + if (result == null) result = caseDefinition(useCaseDefinition); + if (result == null) result = caseClass(useCaseDefinition); + if (result == null) result = caseClassifier(useCaseDefinition); + if (result == null) result = caseType(useCaseDefinition); + if (result == null) result = caseNamespace(useCaseDefinition); + if (result == null) result = caseElement(useCaseDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.USE_CASE_USAGE: { + UseCaseUsage useCaseUsage = (UseCaseUsage)theEObject; + T result = caseUseCaseUsage(useCaseUsage); + if (result == null) result = caseCaseUsage(useCaseUsage); + if (result == null) result = caseCalculationUsage(useCaseUsage); + if (result == null) result = caseActionUsage(useCaseUsage); + if (result == null) result = caseExpression(useCaseUsage); + if (result == null) result = caseOccurrenceUsage(useCaseUsage); + if (result == null) result = caseStep(useCaseUsage); + if (result == null) result = caseUsage(useCaseUsage); + if (result == null) result = caseFeature(useCaseUsage); + if (result == null) result = caseType(useCaseUsage); + if (result == null) result = caseNamespace(useCaseUsage); + if (result == null) result = caseElement(useCaseUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.VARIANT_MEMBERSHIP: { + VariantMembership variantMembership = (VariantMembership)theEObject; + T result = caseVariantMembership(variantMembership); + if (result == null) result = caseOwningMembership(variantMembership); + if (result == null) result = caseMembership(variantMembership); + if (result == null) result = caseRelationship(variantMembership); + if (result == null) result = caseElement(variantMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.VERIFICATION_CASE_DEFINITION: { + VerificationCaseDefinition verificationCaseDefinition = (VerificationCaseDefinition)theEObject; + T result = caseVerificationCaseDefinition(verificationCaseDefinition); + if (result == null) result = caseCaseDefinition(verificationCaseDefinition); + if (result == null) result = caseCalculationDefinition(verificationCaseDefinition); + if (result == null) result = caseActionDefinition(verificationCaseDefinition); + if (result == null) result = caseFunction(verificationCaseDefinition); + if (result == null) result = caseOccurrenceDefinition(verificationCaseDefinition); + if (result == null) result = caseBehavior(verificationCaseDefinition); + if (result == null) result = caseDefinition(verificationCaseDefinition); + if (result == null) result = caseClass(verificationCaseDefinition); + if (result == null) result = caseClassifier(verificationCaseDefinition); + if (result == null) result = caseType(verificationCaseDefinition); + if (result == null) result = caseNamespace(verificationCaseDefinition); + if (result == null) result = caseElement(verificationCaseDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.VERIFICATION_CASE_USAGE: { + VerificationCaseUsage verificationCaseUsage = (VerificationCaseUsage)theEObject; + T result = caseVerificationCaseUsage(verificationCaseUsage); + if (result == null) result = caseCaseUsage(verificationCaseUsage); + if (result == null) result = caseCalculationUsage(verificationCaseUsage); + if (result == null) result = caseActionUsage(verificationCaseUsage); + if (result == null) result = caseExpression(verificationCaseUsage); + if (result == null) result = caseOccurrenceUsage(verificationCaseUsage); + if (result == null) result = caseStep(verificationCaseUsage); + if (result == null) result = caseUsage(verificationCaseUsage); + if (result == null) result = caseFeature(verificationCaseUsage); + if (result == null) result = caseType(verificationCaseUsage); + if (result == null) result = caseNamespace(verificationCaseUsage); + if (result == null) result = caseElement(verificationCaseUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.VIEW_DEFINITION: { + ViewDefinition viewDefinition = (ViewDefinition)theEObject; + T result = caseViewDefinition(viewDefinition); + if (result == null) result = casePartDefinition(viewDefinition); + if (result == null) result = caseItemDefinition(viewDefinition); + if (result == null) result = caseOccurrenceDefinition(viewDefinition); + if (result == null) result = caseStructure(viewDefinition); + if (result == null) result = caseDefinition(viewDefinition); + if (result == null) result = caseClass(viewDefinition); + if (result == null) result = caseClassifier(viewDefinition); + if (result == null) result = caseType(viewDefinition); + if (result == null) result = caseNamespace(viewDefinition); + if (result == null) result = caseElement(viewDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.VIEWPOINT_DEFINITION: { + ViewpointDefinition viewpointDefinition = (ViewpointDefinition)theEObject; + T result = caseViewpointDefinition(viewpointDefinition); + if (result == null) result = caseRequirementDefinition(viewpointDefinition); + if (result == null) result = caseConstraintDefinition(viewpointDefinition); + if (result == null) result = caseOccurrenceDefinition(viewpointDefinition); + if (result == null) result = casePredicate(viewpointDefinition); + if (result == null) result = caseDefinition(viewpointDefinition); + if (result == null) result = caseFunction(viewpointDefinition); + if (result == null) result = caseClassifier(viewpointDefinition); + if (result == null) result = caseBehavior(viewpointDefinition); + if (result == null) result = caseType(viewpointDefinition); + if (result == null) result = caseClass(viewpointDefinition); + if (result == null) result = caseNamespace(viewpointDefinition); + if (result == null) result = caseElement(viewpointDefinition); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.VIEWPOINT_USAGE: { + ViewpointUsage viewpointUsage = (ViewpointUsage)theEObject; + T result = caseViewpointUsage(viewpointUsage); + if (result == null) result = caseRequirementUsage(viewpointUsage); + if (result == null) result = caseConstraintUsage(viewpointUsage); + if (result == null) result = caseOccurrenceUsage(viewpointUsage); + if (result == null) result = caseBooleanExpression(viewpointUsage); + if (result == null) result = caseUsage(viewpointUsage); + if (result == null) result = caseExpression(viewpointUsage); + if (result == null) result = caseStep(viewpointUsage); + if (result == null) result = caseFeature(viewpointUsage); + if (result == null) result = caseType(viewpointUsage); + if (result == null) result = caseNamespace(viewpointUsage); + if (result == null) result = caseElement(viewpointUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.VIEW_RENDERING_MEMBERSHIP: { + ViewRenderingMembership viewRenderingMembership = (ViewRenderingMembership)theEObject; + T result = caseViewRenderingMembership(viewRenderingMembership); + if (result == null) result = caseFeatureMembership(viewRenderingMembership); + if (result == null) result = caseOwningMembership(viewRenderingMembership); + if (result == null) result = caseMembership(viewRenderingMembership); + if (result == null) result = caseRelationship(viewRenderingMembership); + if (result == null) result = caseElement(viewRenderingMembership); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.VIEW_USAGE: { + ViewUsage viewUsage = (ViewUsage)theEObject; + T result = caseViewUsage(viewUsage); + if (result == null) result = casePartUsage(viewUsage); + if (result == null) result = caseItemUsage(viewUsage); + if (result == null) result = caseOccurrenceUsage(viewUsage); + if (result == null) result = caseUsage(viewUsage); + if (result == null) result = caseFeature(viewUsage); + if (result == null) result = caseType(viewUsage); + if (result == null) result = caseNamespace(viewUsage); + if (result == null) result = caseElement(viewUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + case SysMLPackage.WHILE_LOOP_ACTION_USAGE: { + WhileLoopActionUsage whileLoopActionUsage = (WhileLoopActionUsage)theEObject; + T result = caseWhileLoopActionUsage(whileLoopActionUsage); + if (result == null) result = caseLoopActionUsage(whileLoopActionUsage); + if (result == null) result = caseActionUsage(whileLoopActionUsage); + if (result == null) result = caseOccurrenceUsage(whileLoopActionUsage); + if (result == null) result = caseStep(whileLoopActionUsage); + if (result == null) result = caseUsage(whileLoopActionUsage); + if (result == null) result = caseFeature(whileLoopActionUsage); + if (result == null) result = caseType(whileLoopActionUsage); + if (result == null) result = caseNamespace(whileLoopActionUsage); + if (result == null) result = caseElement(whileLoopActionUsage); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'Accept Action Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Accept Action Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAcceptActionUsage(AcceptActionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Action Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Action Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseActionDefinition(ActionDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Action Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Action Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseActionUsage(ActionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Actor Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Actor Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseActorMembership(ActorMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Allocation Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocation Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAllocationDefinition(AllocationDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Allocation Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Allocation Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAllocationUsage(AllocationUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Analysis Case Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Analysis Case Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAnalysisCaseDefinition(AnalysisCaseDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Analysis Case Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Analysis Case Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAnalysisCaseUsage(AnalysisCaseUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Annotating Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Annotating Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAnnotatingElement(AnnotatingElement object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Annotation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Annotation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAnnotation(Annotation object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Assert Constraint Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Assert Constraint Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAssertConstraintUsage(AssertConstraintUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Assignment Action Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Assignment Action Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAssignmentActionUsage(AssignmentActionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Association'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Association'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAssociation(Association object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Association Structure'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Association Structure'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAssociationStructure(AssociationStructure object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Attribute Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Attribute Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAttributeDefinition(AttributeDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Attribute Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Attribute Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAttributeUsage(AttributeUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Behavior'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Behavior'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBehavior(Behavior object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Binding Connector'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Binding Connector'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBindingConnector(BindingConnector object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Binding Connector As Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Binding Connector As Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBindingConnectorAsUsage(BindingConnectorAsUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Boolean Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Boolean Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseBooleanExpression(BooleanExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Calculation Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Calculation Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCalculationDefinition(CalculationDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Calculation Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Calculation Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCalculationUsage(CalculationUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Case Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Case Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCaseDefinition(CaseDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Case Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Case Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCaseUsage(CaseUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Class'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Class'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseClass(org.omg.sysml.model.sysml.Class object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Classifier'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Classifier'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseClassifier(Classifier object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Collect Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Collect Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCollectExpression(CollectExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Comment'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Comment'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseComment(Comment object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Concern Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Concern Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConcernDefinition(ConcernDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Concern Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Concern Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConcernUsage(ConcernUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Conjugated Port Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Conjugated Port Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConjugatedPortDefinition(ConjugatedPortDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Conjugated Port Typing'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Conjugated Port Typing'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConjugatedPortTyping(ConjugatedPortTyping object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Conjugation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Conjugation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConjugation(Conjugation object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Connection Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Connection Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConnectionDefinition(ConnectionDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Connection Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Connection Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConnectionUsage(ConnectionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Connector'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Connector'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConnector(Connector object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Connector As Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Connector As Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConnectorAsUsage(ConnectorAsUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constraint Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Constraint Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstraintDefinition(ConstraintDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constraint Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Constraint Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstraintUsage(ConstraintUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constructor Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Constructor Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstructorExpression(ConstructorExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Control Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Control Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseControlNode(ControlNode object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Cross Subsetting'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Cross Subsetting'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCrossSubsetting(CrossSubsetting object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Data Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Data Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDataType(DataType object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Decision Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Decision Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDecisionNode(DecisionNode object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDefinition(Definition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Dependency'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Dependency'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDependency(Dependency object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Differencing'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Differencing'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDifferencing(Differencing object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Disjoining'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Disjoining'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDisjoining(Disjoining object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Documentation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Documentation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseDocumentation(Documentation object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Element'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseElement(Element object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Element Filter Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Element Filter Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseElementFilterMembership(ElementFilterMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'End Feature Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'End Feature Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEndFeatureMembership(EndFeatureMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Enumeration Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Enumeration Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEnumerationDefinition(EnumerationDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Enumeration Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Enumeration Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEnumerationUsage(EnumerationUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Event Occurrence Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Event Occurrence Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEventOccurrenceUsage(EventOccurrenceUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Exhibit State Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Exhibit State Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExhibitStateUsage(ExhibitStateUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Expose'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Expose'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExpose(Expose object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExpression(Expression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Feature'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Feature'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFeature(Feature object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Feature Chain Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Feature Chain Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFeatureChainExpression(FeatureChainExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Feature Chaining'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Feature Chaining'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFeatureChaining(FeatureChaining object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Feature Inverting'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Feature Inverting'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFeatureInverting(FeatureInverting object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Feature Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Feature Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFeatureMembership(FeatureMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Feature Reference Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Feature Reference Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFeatureReferenceExpression(FeatureReferenceExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Feature Typing'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Feature Typing'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFeatureTyping(FeatureTyping object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Feature Value'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Feature Value'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFeatureValue(FeatureValue object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Flow'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Flow'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFlow(Flow object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Flow Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Flow Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFlowDefinition(FlowDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Flow End'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Flow End'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFlowEnd(FlowEnd object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Flow Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Flow Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFlowUsage(FlowUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Fork Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Fork Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseForkNode(ForkNode object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'For Loop Action Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'For Loop Action Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseForLoopActionUsage(ForLoopActionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Framed Concern Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Framed Concern Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFramedConcernMembership(FramedConcernMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Function'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Function'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFunction(Function object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'If Action Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'If Action Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIfActionUsage(IfActionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Import'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Import'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseImport(Import object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Include Use Case Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Include Use Case Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIncludeUseCaseUsage(IncludeUseCaseUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Index Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Index Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIndexExpression(IndexExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Instantiation Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Instantiation Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInstantiationExpression(InstantiationExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Interaction'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Interaction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInteraction(Interaction object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Interface Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Interface Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInterfaceDefinition(InterfaceDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Interface Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Interface Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInterfaceUsage(InterfaceUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Intersecting'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Intersecting'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIntersecting(Intersecting object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Invariant'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Invariant'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInvariant(Invariant object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Invocation Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Invocation Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseInvocationExpression(InvocationExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Item Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Item Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseItemDefinition(ItemDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Item Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Item Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseItemUsage(ItemUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Join Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Join Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseJoinNode(JoinNode object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Library Package'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Library Package'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLibraryPackage(LibraryPackage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal Boolean'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Literal Boolean'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteralBoolean(LiteralBoolean object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Literal Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteralExpression(LiteralExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal Infinity'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Literal Infinity'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteralInfinity(LiteralInfinity object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal Integer'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Literal Integer'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteralInteger(LiteralInteger object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal Rational'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Literal Rational'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteralRational(LiteralRational object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal String'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Literal String'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteralString(LiteralString object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Loop Action Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Loop Action Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLoopActionUsage(LoopActionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMembership(Membership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Membership Expose'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Membership Expose'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMembershipExpose(MembershipExpose object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Membership Import'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Membership Import'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMembershipImport(MembershipImport object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Merge Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Merge Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMergeNode(MergeNode object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Metaclass'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Metaclass'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMetaclass(Metaclass object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Metadata Access Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Metadata Access Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMetadataAccessExpression(MetadataAccessExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Metadata Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Metadata Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMetadataDefinition(MetadataDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Metadata Feature'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Metadata Feature'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMetadataFeature(MetadataFeature object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Metadata Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Metadata Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMetadataUsage(MetadataUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Multiplicity'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Multiplicity'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMultiplicity(Multiplicity object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Multiplicity Range'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Multiplicity Range'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMultiplicityRange(MultiplicityRange object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Namespace'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Namespace'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNamespace(Namespace object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Namespace Expose'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Namespace Expose'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNamespaceExpose(NamespaceExpose object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Namespace Import'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Namespace Import'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNamespaceImport(NamespaceImport object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Null Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Null Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNullExpression(NullExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Objective Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Objective Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseObjectiveMembership(ObjectiveMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Occurrence Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Occurrence Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOccurrenceDefinition(OccurrenceDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Occurrence Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Occurrence Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOccurrenceUsage(OccurrenceUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Operator Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Operator Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOperatorExpression(OperatorExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Owning Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Owning Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOwningMembership(OwningMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Package'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Package'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePackage(org.omg.sysml.model.sysml.Package object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Parameter Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Parameter Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseParameterMembership(ParameterMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Part Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Part Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePartDefinition(PartDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Part Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Part Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePartUsage(PartUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Payload Feature'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Payload Feature'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePayloadFeature(PayloadFeature object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Perform Action Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Perform Action Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePerformActionUsage(PerformActionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Port Conjugation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Port Conjugation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePortConjugation(PortConjugation object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Port Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Port Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePortDefinition(PortDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Port Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Port Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePortUsage(PortUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Predicate'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Predicate'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePredicate(Predicate object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Redefinition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Redefinition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRedefinition(Redefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Reference Subsetting'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Reference Subsetting'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReferenceSubsetting(ReferenceSubsetting object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Reference Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Reference Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReferenceUsage(ReferenceUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Relationship'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Relationship'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRelationship(Relationship object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Rendering Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Rendering Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRenderingDefinition(RenderingDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Rendering Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Rendering Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRenderingUsage(RenderingUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Requirement Constraint Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Requirement Constraint Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRequirementConstraintMembership(RequirementConstraintMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Requirement Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Requirement Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRequirementDefinition(RequirementDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Requirement Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Requirement Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRequirementUsage(RequirementUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Requirement Verification Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Requirement Verification Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRequirementVerificationMembership(RequirementVerificationMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Result Expression Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Result Expression Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseResultExpressionMembership(ResultExpressionMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Return Parameter Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Return Parameter Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReturnParameterMembership(ReturnParameterMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Satisfy Requirement Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Satisfy Requirement Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSatisfyRequirementUsage(SatisfyRequirementUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Select Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Select Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSelectExpression(SelectExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Send Action Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Send Action Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSendActionUsage(SendActionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Specialization'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Specialization'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSpecialization(Specialization object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Stakeholder Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Stakeholder Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStakeholderMembership(StakeholderMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'State Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'State Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStateDefinition(StateDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'State Subaction Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'State Subaction Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStateSubactionMembership(StateSubactionMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'State Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'State Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStateUsage(StateUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Step'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Step'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStep(Step object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Structure'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Structure'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStructure(Structure object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Subclassification'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Subclassification'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSubclassification(Subclassification object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Subject Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Subject Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSubjectMembership(SubjectMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Subsetting'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Subsetting'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSubsetting(Subsetting object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Succession'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Succession'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSuccession(Succession object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Succession As Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Succession As Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSuccessionAsUsage(SuccessionAsUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Succession Flow'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Succession Flow'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSuccessionFlow(SuccessionFlow object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Succession Flow Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Succession Flow Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSuccessionFlowUsage(SuccessionFlowUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Terminate Action Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Terminate Action Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTerminateActionUsage(TerminateActionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Textual Representation'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Textual Representation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTextualRepresentation(TextualRepresentation object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Transition Feature Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Transition Feature Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTransitionFeatureMembership(TransitionFeatureMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Transition Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Transition Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTransitionUsage(TransitionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Trigger Invocation Expression'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Trigger Invocation Expression'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTriggerInvocationExpression(TriggerInvocationExpression object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Type'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Type'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseType(Type object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Type Featuring'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Type Featuring'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTypeFeaturing(TypeFeaturing object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Unioning'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Unioning'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUnioning(Unioning object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUsage(Usage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Use Case Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Use Case Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUseCaseDefinition(UseCaseDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Use Case Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Use Case Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseUseCaseUsage(UseCaseUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variant Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Variant Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariantMembership(VariantMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Verification Case Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Verification Case Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVerificationCaseDefinition(VerificationCaseDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Verification Case Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Verification Case Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVerificationCaseUsage(VerificationCaseUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'View Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'View Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseViewDefinition(ViewDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Viewpoint Definition'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Viewpoint Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseViewpointDefinition(ViewpointDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Viewpoint Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Viewpoint Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseViewpointUsage(ViewpointUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'View Rendering Membership'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'View Rendering Membership'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseViewRenderingMembership(ViewRenderingMembership object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'View Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'View Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseViewUsage(ViewUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'While Loop Action Usage'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'While Loop Action Usage'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseWhileLoopActionUsage(WhileLoopActionUsage object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'EObject'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) { + return null; + } + +} //SysMLSwitch diff --git a/unified/org.omg.sysml.model/src/main/resources/model/SysML.ecore b/unified/org.omg.sysml.model/src/main/resources/model/SysML.ecore new file mode 100644 index 000000000..217ae9b6c --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/resources/model/SysML.ecore @@ -0,0 +1,5559 @@ + + + +
+
+ + +
+ + + +
+ + + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + +
+ + + + + + + + +
+ + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + +
+ + + + + + + + +
+ + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + + + +
+ + + + +
+ + + + +
+ + + +
+ + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + + + + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + +
+ + + + + +
+ + + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + +
+ + + +
+ + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + +
+ + + + + +
+ + + + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + + +
+ + + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + +
+ + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + + + +
+ + + + + +
+ + + + + + +
+ + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + +
+ + + + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + +
+ + + + + +
+ + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ + + + + + + +
+ + + +
+ + + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + + + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + +
+ + + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + diff --git a/unified/org.omg.sysml.model/src/main/resources/model/SysML.genmodel b/unified/org.omg.sysml.model/src/main/resources/model/SysML.genmodel new file mode 100644 index 000000000..bf9733cfe --- /dev/null +++ b/unified/org.omg.sysml.model/src/main/resources/model/SysML.genmodel @@ -0,0 +1,941 @@ + + + SysML.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/unified/pom.xml b/unified/pom.xml new file mode 100644 index 000000000..47b32b593 --- /dev/null +++ b/unified/pom.xml @@ -0,0 +1,109 @@ + + + 4.0.0 + + org.omg.sysml + org.omg.sysml.unified.parent + 0.1.0-SNAPSHOT + pom + + + org.omg.sysml.logic + org.omg.sysml.logic.tests + org.omg.sysml.model + org.omg.sysml.model.tests + org.omg.sysml.model.eclipse + org.omg.sysml.model.tools + + + + UTF-8 + 21 + 21 + 21 + 2.40.0 + 2.41.0 + 2.39.0 + 2.28.0 + 2.39.0 + 6.2.2 + 5.11.4 + 1.21.3 + 3.5.2 + + + + + + org.eclipse.emf + org.eclipse.emf.common + ${emf.common.version} + + + org.eclipse.emf + org.eclipse.emf.ecore + ${emf.ecore.version} + + + org.eclipse.emf + org.eclipse.emf.ecore.xmi + ${emf.xmi.version} + + + org.eclipse.emf + org.eclipse.emf.codegen + ${emf.codegen.version} + + + org.eclipse.emf + org.eclipse.emf.codegen.ecore + ${emf.codegen.ecore.version} + + + org.springframework + spring-context + ${spring.version} + + + org.junit.jupiter + junit-jupiter-api + ${junit.version} + + + org.junit.jupiter + junit-jupiter-engine + ${junit.version} + + + org.testcontainers + junit-jupiter + ${testcontainers.version} + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + ${maven.compiler.release} + + + + org.apache.maven.plugins + maven-surefire-plugin + ${surefire.version} + + false + + + + + +