Commit 40eac6e5 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ fixes for recursive extension, #195

parent 665116fe
Loading
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -133,7 +133,7 @@
  <eClassifiers xsi:type="ecore:EClass" name="SimpleDataType" eSuperTypes="#//DataType">
    <eOperations name="allConstraints" upperBound="-1" eType="#//Constraint">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;            if (not self.extension.oclIsUndefined()) then&#xA;                self.extension.extending.oclAsType(SimpleDataType).allConstraints()->union(self.constraint)->asOrderedSet()&#xA;            else &#xA;                self.constraint&#xA;            endif&#xA;            "/>
        <details key="body" value="&#xA;            if (not self.extension.oclIsUndefined()) then&#xA;            &#x9;self.extension->closure(e | e.transitiveExtending())->collect(e|e.extending)->including(self)->asSet()                &#xA;                ->collect(e | e.oclAsType(SimpleDataType).constraint) &#xA;                ->asOrderedSet()&#xA;            else &#xA;                self.constraint&#xA;            endif&#xA;            "/>
      </eAnnotations>
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
        <details key="nullFree" value="false"/>
@@ -146,7 +146,7 @@
  <eClassifiers xsi:type="ecore:EClass" name="StructuredDataType" eSuperTypes="#//DataType">
    <eOperations name="allMembers" upperBound="-1" eType="#//Member">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;            if (not self.extension->isEmpty()) then&#xA;                self.extension->collect(e | e.extending.oclAsType(StructuredDataType).allMembers())->union(self.member)->asOrderedSet()&#xA;            else &#xA;                self.member&#xA;            endif&#xA;            "/>
        <details key="body" value="&#x9;&#x9;&#x9;&#x9;&#xA;            if (not self.extension->isEmpty()) then&#xA;            &#x9;self.extension->closure(e | e.transitiveExtending())->collect(e|e.extending)->including(self)->asSet()                &#xA;                ->collect(e | e.oclAsType(StructuredDataType).member) &#xA;                ->asOrderedSet()&#xA;            else &#xA;                self.member&#xA;            endif&#xA;            "/>
      </eAnnotations>
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
        <details key="nullFree" value="false"/>
@@ -154,7 +154,7 @@
    </eOperations>
    <eOperations name="allConstraints" upperBound="-1" eType="#//Constraint">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;            if (not self.extension->isEmpty()) then&#xA;                self.extension->collect(e | e.extending.oclAsType(StructuredDataType).allConstraints())->union(self.constraint)->asOrderedSet()&#xA;            else &#xA;                self.constraint&#xA;            endif&#xA;            "/>
        <details key="body" value="&#xA;            if (not self.extension->isEmpty()) then&#xA;            &#x9;self.extension->closure(e | e.transitiveExtending())->collect(e|e.extending)->including(self)->asSet()                &#xA;                ->collect(e | e.oclAsType(StructuredDataType).constraint) &#xA;                ->asOrderedSet()&#xA;            else &#xA;                self.constraint&#xA;            endif&#xA;            "/>
      </eAnnotations>
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
        <details key="nullFree" value="false"/>
@@ -281,7 +281,7 @@
  <eClassifiers xsi:type="ecore:EClass" name="ComponentType" eSuperTypes="#//PackageableElement">
    <eOperations name="allGates" upperBound="-1" eType="#//GateInstance">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;            if (not self.extension.oclIsUndefined()) then&#xA;                self.extension.extending.oclAsType(ComponentType).allGates()->union(self.gateInstance)->asOrderedSet()&#xA;            else &#xA;                self.gateInstance&#xA;            endif&#xA;            "/>
        <details key="body" value="&#xA;            if (not self.extension.oclIsUndefined()) then&#xA;            &#x9;self.extension->closure(e | e.transitiveExtending())->collect(e|e.extending)->including(self)->asSet()                &#xA;                ->collect(e | e.oclAsType(ComponentType).gateInstance)&#xA;                ->asOrderedSet()&#xA;            else &#xA;                self.gateInstance&#xA;            endif&#xA;            "/>
      </eAnnotations>
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
        <details key="nullFree" value="false"/>
@@ -289,7 +289,7 @@
    </eOperations>
    <eOperations name="allTimers" upperBound="-1" eType="#//Timer">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;            if (not self.extension.oclIsUndefined()) then&#xA;                self.extension.extending.oclAsType(ComponentType).allTimers()->union(self.timer)->asOrderedSet()&#xA;            else &#xA;                self.timer&#xA;            endif&#xA;            "/>
        <details key="body" value="&#xA;            if (not self.extension.oclIsUndefined()) then&#xA;            &#x9;self.extension->closure(e | e.transitiveExtending())->collect(e|e.extending)->including(self)->asSet()                &#xA;            &#x9;->collect(e | e.oclAsType(ComponentType).timer)&#xA;                ->asOrderedSet()&#xA;            else &#xA;                self.timer&#xA;            endif&#xA;            "/>
      </eAnnotations>
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
        <details key="nullFree" value="false"/>
@@ -297,7 +297,7 @@
    </eOperations>
    <eOperations name="allVariables" upperBound="-1" eType="#//Variable">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;            if (not self.extension.oclIsUndefined()) then&#xA;                self.extension.extending.oclAsType(ComponentType).allVariables()->union(self.variable)->asOrderedSet()&#xA;            else &#xA;                self.variable&#xA;            endif&#xA;            "/>
        <details key="body" value="&#xA;            if (not self.extension.oclIsUndefined()) then&#xA;            &#x9;self.extension->closure(e | e.transitiveExtending())->collect(e|e.extending)->including(self)->asSet()                &#xA;            &#x9;->collect(e | e.oclAsType(ComponentType).variable)&#xA;                ->asOrderedSet()&#xA;            else &#xA;                self.variable&#xA;            endif&#xA;            "/>
      </eAnnotations>
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
        <details key="nullFree" value="false"/>
@@ -318,7 +318,7 @@
  <eClassifiers xsi:type="ecore:EClass" name="GateType" eSuperTypes="#//PackageableElement">
    <eOperations name="allDataTypes" upperBound="-1" eType="#//DataType">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;            if (not self.extension.oclIsUndefined()) then&#xA;                self.extension.extending.oclAsType(GateType).allDataTypes()->union(self.dataType)->asOrderedSet()&#xA;            else &#xA;                self.dataType&#xA;            endif&#xA;            "/>
        <details key="body" value="&#xA;            if (not self.extension.oclIsUndefined()) then&#xA;            &#x9;self.extension->closure(e | e.transitiveExtending())->collect(e|e.extending)->including(self)->asSet()                &#xA;            &#x9;->collect(e | e.oclAsType(GateType).dataType)&#xA;                ->asOrderedSet()&#xA;            else &#xA;                self.dataType&#xA;            endif&#xA;            "/>
      </eAnnotations>
      <eAnnotations source="http://www.eclipse.org/OCL/Collection">
        <details key="nullFree" value="false"/>