Imvertor / Imvertor-Maven

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

Implementeer MIM attribuutsoort type validatie. #489

Open melsk-r opened 3 weeks ago

melsk-r commented 3 weeks ago

Implementeer de MIM validatie dat op een attribuutsoort alleen de types die zijn toegestaan worden geaccepteerd.

Zie ook dit issue.

ArjanLoeffen commented 3 weeks ago

Volgens deze MIM uitspraak kan worden bepaald wat het meta-type is van een attribuutsoort. De test moet worden uitgebreid naar alle typen van alle UML attributen die een rol spelen in MIM. Dit zou centraal kunnen worden geregeld via configuratie. Voorbeeld:

        <stereo id="stereotype-name-complextype" primary="yes">
            <name lang="nl">Gestructureerd datatype</name>
            <construct>datatype</construct>
            <context>
                <parent-stereo>stereotype-name-domain-package</parent-stereo>
                <parent-stereo>stereotype-name-view-package</parent-stereo>
            </context>
            <types>
               <type-stereo>stereotype-name-data-element</type-stereo>
            </types>
        </stereo>

<types> is dan nieuw en wordt gechecked.

Correct?

melsk-r commented 3 weeks ago

Als je hiermee bedoelt dat een component van het stereotype 'stereotype-name-data-element' via het 'type' metagegeven kan refereren aan een 'Gestructureerd datatype' dan is dat inderdaad correct. <types> kan in dat geval meerdere <stype-stereo> elementen bevatten want een 'Gestructureerd datatype' kan ook gebruikt worden door bijv. een 'Attribuutsoort'.

melsk-r commented 3 weeks ago

Een andere optie is om juist aan te geven aan wat voor stereotypes een bepaald stereotype allemaal kan refereren via het 'type' metagegeven. Dan krijg je een structuur als:

        <stereo id="stereotype-name-data-element" primary="yes">
            <name lang="nl">Data element</name>
            <construct>attribute</construct>
            <types>
               <type-stereo>stereotype-name-complextype</type-stereo>
               <type-stereo>stereotype-name-simpletype</type-stereo>
            </types>
        </stereo>

De vraag is wat het handigste is.

ArjanLoeffen commented 2 days ago

Is het voldoende als bij de test wordt gecheckt op het type een datatype is? Check:

<stereo id="stereotype-name-complextype" primary="yes">
      <name lang="nl">Gestructureerd datatype</name>
      <construct>datatype</construct>
      <context>
          <parent-stereo>stereotype-name-domain-package</parent-stereo>
          <parent-stereo>stereotype-name-view-package</parent-stereo>
      </context>
</stereo> 

Het is dus bekend of een stereotype betrekking heeft op een datatype. (Nb enumeraties zijn ook datatypen, en tevens bekend als enumeratie.)

melsk-r commented 2 days ago

Wat mij betreft wel. Dat maakt het i.i.g. wel een stuk eenvoudiger specificeren.