Entity FirstEntity { Field } SuperEntity MySuperEntity { use FirstEntity use FirstEntity as AnotherFirstEntity FirstEntity.Field // Works AnotherFirstEntity.Field // Does not work }
Use: 'use' entity=[Entity] ('as' name=ID)?; Reference: use=[Use] '.' attr=[Attribute]
Supermodel: Entity | DomainEntity; DomainEntity: 'DomainEntity' name=ID '{' imports+=Import* referenzen+=Referenz* '}'; Referenz: referenzierteEntitaet=[EntityElement|QualifizierterName] ('{' referenzen+=Referenz* '}')? ; QualifizierterName: ID '.' ID; Import: 'use' usage=[Entity] ('as' alias=ID)?; Entity: 'Entity' name=ID '{' elemente+=EntityElement* '}' (alias=ID)?; EntityElement: name=ID typ=Typ; enum Typ: Nummer | Text;
Entity Person { Name Text Alter Nummer Hausnummer Nummer }
DomainEntity DomainE { use Person use Person as NochJemand Person.Name { NochJemand.Alter } }
(alias=ID)?;
if (entity.alias != null) { entity.alias } else { entity.name }
Entity Person {....
Person.Name and NochJemand.Alter
NochJemand.Name and NochJemand.Alter