Imvertor / Imvertor-Maven

Mavenized version of Imvertor
http://www.imvertor.org
7 stars 12 forks source link

MIM validatie uitvoeren op basis van in model opgenomen MIM versie #503

Open ArjanLoeffen opened 1 week ago

ArjanLoeffen commented 1 week ago

Op dit moment worden validaties per owner geconfigureerd, dus vastgezet op een bepaald metamodel en metamodel versie. Dat is niet correct bij MIM modellen, omdat daarin kan worden aangegeven welke versie is gebruikt. Dit betekent dat de validaties moeten worden "afgevuurd" op basis van de MIM versie van het model zelf (metagegeven MIM-versie).

ArjanLoeffen commented 1 week ago

nb check /Imvertor-Chains/src/main/resources/cfg/Validator/parms.xml; constructie zoals

 <!--canonize-->
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_1>Imvert2canonical.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_1>
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_2>Imvert2canonical-MIM10.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_2>
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_3>Imvert2canonical-MIM11.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_3>
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_4>Imvert2canonical-MIM10ISO.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_4>
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_5>Imvert2canonical-MIM12.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_5>
<!--validate-->
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_VALIDATE_XSLPATH_1>Imvert2validation.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_VALIDATE_XSLPATH_1>
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_VALIDATE_XSLPATH_2>Imvert2validation-MIM11.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_VALIDATE_XSLPATH_2>
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_VALIDATE_XSLPATH_3>Imvert2validation-MIM111.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_VALIDATE_XSLPATH_3>
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_VALIDATE_XSLPATH_4>Imvert2validation-MIM12.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_VALIDATE_XSLPATH_4>

terugbrengen naar

 <!--canonize-->
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_1>Imvert2canonical-MIM12.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_CANONICAL_XSLPATH_1>
<!--validate-->
      <IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_VALIDATE_XSLPATH_1>Imvert2validation-MIM12.xsl</IMVERTOR_METAMODEL_EIGENAAR-CONCEPTUAL_VALIDATE_XSLPATH_1>

Voorstel: Effectief alles regen via xsl imports.

ArjanLoeffen commented 2 days ago

Meer in het algemeen moet de methode zijn:

1/ Lees vanuit de properties uit welk metamodel en welke versie daarvan is beoogd. (nb Dat is Excel, maar kan ook worden overschreven door een in een meegeleverd properties file opgegeven waarde.)

Dit zet de parameters:

NB nu wordt nog system/mim-compliancy-version gezet, dat komt te vervallen.

2/ Lees de tagged values op het informatiemodel uit. Relevant zijn hier:

3/ Resultaten van methode 2 overschrijft de resultaten van methode 1.

NB nu wordt nog appinfo/mim-model-version gezet, dat komt te vervallen.

4/ Aldus ontstaat een unieke naam van een metamodel/versie, die terugkeert in de namen van de metamodel-afhankelijke configuratie files:

Dit dus doorvoeren in de naamgeving van de configuraties in /input, dwz

/input/*/cfg/metamodels
/input/*/cfg/tvsets
/input/*/cfg/notesrules
/input/*/cfg/docrules
/input/*/cfg/visuals

Wanneer een van de bedoelde bestanden niet beschikbaar is in de configuraties wordt dit gemeld, bijv.

xsl/ConfigCompiler/Imvert2configuration.xsl: [(NO CONTEXT)] Metamodel not available: "EIGENAAR/cfg/metamodels/EIGENAAR-MIM-12.xml"