openEHR / java-libs

Standard Java libraries for Java implementations of openEHR
Other
47 stars 60 forks source link

Fix cases with single unit-magnitude in template #71

Open william-vw opened 3 years ago

william-vw commented 3 years ago

When having a single unitMagnitude as in

<Rule path="/data[at0001]/events[at0002]/data[at0003]/items[at0004]">
    <constraint xsi:type="tem:quantityConstraint">
        <excludedUnits>[in_i]</excludedUnits>
        <unitMagnitude>
            <unit>cm</unit>
            <maxMagnitude>1000.0</maxMagnitude>
            <minMagnitude>0.0</minMagnitude>
            <includesMaximum>true</includesMaximum>
            <includesMinimum>true</includesMinimum>
        </unitMagnitude>
    </constraint>
</Rule>

The code would add the unit-magnitude in the appropriate if-block but also at the end of the method, meaning the same unit-magnitude is added twice.

This fix simply returns in the if-block to avoid this behavior.