You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MODEL ModelA AT "http://www.interlis.ch/ili2c/tests/" VERSION "1" =
TOPIC TopicA =
STRUCTURE StructA =
attrA : TEXT*10;
END StructA;
CLASS ClassB =
attrB1 : TEXT*10;
attrB2 : StructA;
UNIQUE attrB2->attrA;
END ClassB;
CLASS ClassC =
attrC : TEXT*10;
END ClassC;
ASSOCIATION b2c =
b -- {0..1} ClassB;
c -- {0..*} ClassC;
UNIQUE b->attrB1;
UNIQUE c->attrC;
END b2c;
CONSTRAINTS OF ClassC =
UNIQUE b->attrB1;
END;
END TopicA;
END ModelA.
Von umleditor erzeugtes Modell:
INTERLIS 2.3;
MODEL ModelA ()
AT "http://www.interlis.ch/ili2c/tests/"
VERSION "1" =
TOPIC TopicA =
STRUCTURE StructA =
attrA : TEXT*10;
END StructA;
CLASS ClassB =
attrB1 : TEXT*10;
attrB2 : ModelA.TopicA.StructA;
UNIQUE attrB2->attrA;
END ClassB;
CLASS ClassC =
attrC : TEXT*10;
UNIQUE b->attrB1;
END ClassC;
ASSOCIATION b2c =
b -- {0..1} ClassB;
c -- {0..*} ClassC;
UNIQUE b->attrB1;
UNIQUE c->attrC;
END b2c;
END TopicA;
END ModelA.
Problem
Der CONSTRAINT auf der Klasse ClassC, der im Ursprungsmodell eigenständig steht
CONSTRAINTS OF ClassC =
UNIQUE b->attrB1;
END;
wird durch den umleditor direkt in die Klasse ClassC hinein verschoben und der externe CONSTRAINT entfällt.
Für einfache CONSTRAINTS ist dies wohl zulässig. Sobald aber ASSOCIATIONS involviert sind (Attributpfade, Referenzen) funktioniert dies nicht mehr, da diese zum Zeitpunkt der CONSTRAINTS-Auswertung bereits bekannt sein müssen.
Somit setzt es hier den Fehler Name b is not applicable to CLASS ModelA.TopicA.ClassC. und anschliessend eine NPE ab bei der Validierung des zweiten Modells.
Das Modell wird übrigens bereits beim Import durch den umleditor "verunstaltet". Eine Validierung innerhalb des umleditors schlägt deshalb ebenfalls fehl.
Ein ähnlich gelagertes Issues ist #41. Es ist schon etwas älter.
Nebenschauplatz: Das exportierte Modell ist zudem wegen der leeren Klammer nach dem Modellnamen zusätzlich ungültig. Aber das wäre eine andere Baustelle ...
Umgebung
umleditor v3.10.2
java 11
The text was updated successfully, but these errors were encountered:
Grundlage
Importiertes Modell (Quelle: Datei uniqueGlobal_Path.ili aus ili2c-Repo):
Von umleditor erzeugtes Modell:
Problem
Der CONSTRAINT auf der Klasse ClassC, der im Ursprungsmodell eigenständig steht
wird durch den umleditor direkt in die Klasse ClassC hinein verschoben und der externe CONSTRAINT entfällt.
Für einfache CONSTRAINTS ist dies wohl zulässig. Sobald aber ASSOCIATIONS involviert sind (Attributpfade, Referenzen) funktioniert dies nicht mehr, da diese zum Zeitpunkt der CONSTRAINTS-Auswertung bereits bekannt sein müssen.
Somit setzt es hier den Fehler
Name b is not applicable to CLASS ModelA.TopicA.ClassC.
und anschliessend eine NPE ab bei der Validierung des zweiten Modells.Das Modell wird übrigens bereits beim Import durch den umleditor "verunstaltet". Eine Validierung innerhalb des umleditors schlägt deshalb ebenfalls fehl.
Ein ähnlich gelagertes Issues ist #41. Es ist schon etwas älter.
Nebenschauplatz: Das exportierte Modell ist zudem wegen der leeren Klammer nach dem Modellnamen zusätzlich ungültig. Aber das wäre eine andere Baustelle ...
Umgebung
umleditor v3.10.2
java 11
The text was updated successfully, but these errors were encountered: