Commit f7d0d212 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ fix for data type resolution in reduction, #192

parent c8d6ecc8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -194,7 +194,7 @@
  <eClassifiers xsi:type="ecore:EClass" name="DataUse" abstract="true" eSuperTypes="#//Element">
    <eOperations name="resolveDataType" eType="#//DataType">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#xA;            &#x9;if (self.reduction->isEmpty()) then&#xA;                    self.resolveBaseDataType()&#xA;            &#x9;else&#xA;            &#x9;&#x9;if (self.reduction->last().member.oclIsUndefined()) then&#xA;            &#x9;&#x9;&#x9;if (self.resolveBaseDataType().oclIsTypeOf(CollectionDataType)) then&#xA;&#x9;&#x9;                    self.resolveBaseDataType().oclAsType(CollectionDataType).itemType&#xA;            &#x9;&#x9;&#x9;else&#xA;            &#x9;&#x9;&#x9;&#x9;null&#xA;            &#x9;&#x9;&#x9;endif&#xA;            &#x9;&#x9;else&#xA;&#x9;            &#x9;&#x9;self.reduction->last().member.dataType&#xA;            &#x9;&#x9;endif&#xA;                endif"/>
        <details key="body" value="&#xA;            &#x9;if (self.reduction->isEmpty()) then&#xA;                    self.resolveBaseDataType()&#xA;            &#x9;else&#xA;            &#x9;&#x9;if (self.reduction->last().member.oclIsUndefined()) then&#xA;            &#x9;&#x9;&#x9;if (self.reduction->indexOf(self.reduction->last())>1) then&#xA;            &#x9;&#x9;&#x9;&#x9;self.reduction->at(self.reduction->indexOf(self.reduction->last())-1).member.dataType.oclAsType(CollectionDataType).itemType&#xA;            &#x9;&#x9;&#x9;else &#xA;&#x9;            &#x9;&#x9;&#x9;if (self.resolveBaseDataType().oclIsTypeOf(CollectionDataType)) then&#xA;&#x9;&#x9;&#x9;                    self.resolveBaseDataType().oclAsType(CollectionDataType).itemType&#xA;&#x9;            &#x9;&#x9;&#x9;else&#xA;&#x9;            &#x9;&#x9;&#x9;&#x9;null&#xA;&#x9;            &#x9;&#x9;&#x9;endif&#xA;            &#x9;&#x9;&#x9;endif            &#x9;&#x9;&#x9;&#xA;            &#x9;&#x9;else&#xA;&#x9;            &#x9;&#x9;self.reduction->last().member.dataType&#xA;            &#x9;&#x9;endif&#xA;                endif"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="resolveBaseDataType" eType="#//DataType">
@@ -215,7 +215,7 @@
  <eClassifiers xsi:type="ecore:EClass" name="ParameterBinding" eSuperTypes="#//Element">
    <eOperations name="resolveParameterType" eType="#//DataType">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="body" value="&#x9;&#x9;&#x9;&#xA;&#x9;            &#x9;if (self.reduction->isEmpty()) then&#xA;&#x9;                &#x9;self.parameter.dataType&#xA;&#x9;            &#x9;else &#xA;&#x9;            &#x9;&#x9;if (self.reduction->last().member.oclIsUndefined()) then&#xA;&#x9;            &#x9;&#x9;&#x9;if (self.reduction->last().collectionIndex.oclIsUndefined()) then&#xA;&#x9;                &#x9;&#x9;&#x9;self.parameter.dataType&#xA;&#x9;            &#x9;&#x9;&#x9;else&#xA;&#x9;            &#x9;&#x9;&#x9;&#x9;self.parameter.dataType.oclAsType(CollectionDataType).itemType&#xA;&#x9;            &#x9;&#x9;&#x9;endif &#xA;&#x9;            &#x9;&#x9;else &#xA;&#x9;                &#x9;&#x9;self.reduction->last().member.dataType&#xA;&#x9;            &#x9;&#x9;endif&#xA;&#x9;                endif&#xA;&#x9;                "/>
        <details key="body" value="&#x9;&#x9;&#x9;&#xA;&#x9;            &#x9;if (self.reduction->isEmpty()) then&#xA;&#x9;                &#x9;self.parameter.dataType&#xA;&#x9;            &#x9;else &#xA;&#x9;            &#x9;&#x9;if (self.reduction->last().member.oclIsUndefined()) then&#xA;&#x9;            &#x9;&#x9;&#x9;if (self.reduction->indexOf(self.reduction->last())>1) then&#xA;&#x9;            &#x9;&#x9;&#x9;&#x9;self.reduction->at(self.reduction->indexOf(self.reduction->last())-1).member.dataType.oclAsType(CollectionDataType).itemType&#xA;&#x9;            &#x9;&#x9;&#x9;else &#xA;&#x9;&#x9;            &#x9;&#x9;&#x9;if (self.reduction->last().collectionIndex.oclIsUndefined()) then&#xA;&#x9;&#x9;                &#x9;&#x9;&#x9;self.parameter.dataType&#xA;&#x9;&#x9;            &#x9;&#x9;&#x9;else&#xA;&#x9;&#x9;            &#x9;&#x9;&#x9;&#x9;self.parameter.dataType.oclAsType(CollectionDataType).itemType&#xA;&#x9;&#x9;            &#x9;&#x9;&#x9;endif &#xA;&#x9;            &#x9;&#x9;&#x9;endif &#xA;&#x9;            &#x9;&#x9;else &#xA;&#x9;                &#x9;&#x9;self.reduction->last().member.dataType&#xA;&#x9;            &#x9;&#x9;endif&#xA;&#x9;                endif&#xA;&#x9;                "/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataUse" lowerBound="1"