Skip to content

Commit 8b091fa

Browse files
committed
New checkers for generalisations and tests fix
1 parent 9a98aa4 commit 8b091fa

10 files changed

+2367
-57416
lines changed

src/common/checkers.xsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@
628628
</xd:desc>
629629
<xd:param name="generalisation"/>
630630
</xd:doc>
631-
<xsl:function name="f:generalisationMissing">
631+
<xsl:function name="f:generalisationMissingOrIncorrect">
632632
<xsl:param name="generalisation"/>
633633
<xsl:variable name="targetConnector"
634634
select="f:getTargetConnectorFromGeneralisation($generalisation)"/>

src/html-conventions-lib/generalization-html-conventions.xsl

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@
4949
<xsl:with-param name="generalizationConnector" select="."/>
5050
</xsl:call-template>
5151
</xsl:if>
52+
<xsl:if test="./source/model/@type = 'ProxyConnector' and ./target/model/@type = 'ProxyConnector'">
53+
<xsl:call-template name="generalizationUnidirectionalConnectorsDirection">
54+
<xsl:with-param name="generalizationConnector" select="."/>
55+
</xsl:call-template>
56+
<xsl:call-template name="generalizationMissingOrInvalidClassGeneralization">
57+
<xsl:with-param name="generalizationConnector" select="."/>
58+
</xsl:call-template>
59+
</xsl:if>
5260
</xsl:variable>
5361
<xsl:if test="boolean($generalizationChecks)">
5462
<xsl:choose>
@@ -258,14 +266,44 @@
258266
select="f:getTargetConnectorFromGeneralisation($generalizationConnector)"/>
259267
<xsl:variable name="sourceConnector"
260268
select="f:getSourceConnectorFromGeneralisation($generalizationConnector)"/>
261-
<xsl:variable name="targetConnectorString" select="fn:concat($targetConnector/source/model/@name,' -> ', $targetConnector/target/model/@name)"/>
262-
<xsl:variable name="sourceConnectorString" select="fn:concat($sourceConnector/source/model/@name,' -> ', $sourceConnector/target/model/@name)"/>
269+
<xsl:variable name="targetConnectorString" select="fn:concat($targetConnector/source/model/@name,' -&gt; ', $targetConnector/target/model/@name)"/>
270+
<xsl:variable name="sourceConnectorString" select="fn:concat($sourceConnector/source/model/@name,' -&gt; ', $sourceConnector/target/model/@name)"/>
263271
<xsl:sequence
264272
select="
265273
if (not(f:generalisationConnectorsHasOppositeDirections($generalizationConnector))) then
266274
()
267275
else
268-
f:generateErrorMessage('The unidirectional connectors $connector1$ and $connector2$ associated with the generalisation connector have opposite directions',
276+
f:generateErrorMessage(fn:concat('The unidirectional connectors ',$targetConnectorString, ' and ', $sourceConnectorString,' associated with the generalisation connector have opposite directions'),
277+
path($generalizationConnector),
278+
'generalisation-connector-unidirectional-connector-direction-8',
279+
'',
280+
''
281+
)"
282+
/>
283+
</xsl:template>
284+
285+
<xd:doc>
286+
<xd:desc>[generalisation-connector-and-missing-class-generalisation-9] [generalisation-connector-and-class-inheritance-direction-10] -
287+
Missing class generalisation for two distinct classes related to the connector generalisation or
288+
connector generalisation and class generalisation relationship direction mismatch
289+
</xd:desc>
290+
<xd:param name="generalizationConnector"/>
291+
</xd:doc>
292+
293+
<xsl:template name="generalizationMissingOrInvalidClassGeneralization">
294+
<xsl:param name="generalizationConnector"/>
295+
<xsl:variable name="targetConnector"
296+
select="f:getTargetConnectorFromGeneralisation($generalizationConnector)"/>
297+
<xsl:variable name="sourceConnector"
298+
select="f:getSourceConnectorFromGeneralisation($generalizationConnector)"/>
299+
<xsl:variable name="targetConnectorString" select="fn:concat($targetConnector/source/model/@name,' -&gt; ', $targetConnector/target/model/@name)"/>
300+
<xsl:variable name="sourceConnectorString" select="fn:concat($sourceConnector/source/model/@name,' -&gt; ', $sourceConnector/target/model/@name)"/>
301+
<xsl:sequence
302+
select="
303+
if (not(f:generalisationMissingOrIncorrect($generalizationConnector))) then
304+
()
305+
else
306+
f:generateErrorMessage(fn:concat('The generalisation between ',$targetConnectorString, ' and ', $sourceConnectorString,' is missing or has invalid direction'),
269307
path($generalizationConnector),
270308
'generalisation-connector-unidirectional-connector-direction-8',
271309
'',

test/testData/ePO-core-4.2.0-generalisations.xml

Lines changed: 0 additions & 56018 deletions
This file was deleted.

0 commit comments

Comments
 (0)