site Metamodel description: Documenting the Dbquity Metamodel as a site model :-) Because many keywords in the Dbquity language are overloaded in this model, it is suitable for documentation purposes only. class expression text body multiline expression behaviour expression execution class semanticversion modelurl: "https://semver.org" description: [.[.patch]][-][+build] integer major integer minor integer patch text prerelease text build constraint: major >= 0 and (not patch or minor) and not (minor < 0 or patch < 0) text promotion expression: major|(if minor then '.'|minor)|(if patch then '.'|patch)| (if prerelease then '-'|prerelease)|(if build then '+'|build) area Core association element_declares_elements abstract end owner owning entity: element multiplicity: 1 end element diagramhint: label="" taillabel="" association model_declares_classifiers end classifier end model multiplicity: 0..1 owning diagramhint: label="" arrowhead="diamond" association complex_declares_classifiers end classifier end complex multiplicity: 0..1 owning diagramhint: label="" arrowhead="diamond" entity element stereotype text name identity: name link owner entity: element expression: element@element_declares_elements.single().owner diagramhint: style="invis" text fullname expression: (if owner then owner.fullname|"\\")|name element classifier collection: classifiers modelurl: if not (identity in "classifier";"complex") then identity|".html" stereotype classifier complex stereotype boolean abstract default: (not owner) or members.any(abstract) boolean sealed element member stereotype collection: members modelurl: if identity <> "member" then identity|".html" owner -> owner entity: complex boolean abstract element property collection: properties description: property type: || constraint: # evaluated when parsed by the CLI modelurl: identity|".html" diagramhint: label=<«element»
property> element model modelurl: if identity <> "model" then identity|".html" stereotype text origin semanticversion version text unversionedname expression: origin|":"|name text fullname expression: unversionedname|":"|version.promotion identity: fullname link references list entity: model diagramhint: headport=s tailport=s headlabel=<> label= area Delta class change text target text before multiline text after multiline model patch collection: pathces element modification collection: modifications link target entity: element association modification_carries_elements end modification multiplicity: 0..1 owning end element diagramhint: label="«carries»" enumeration primitives description: The built-in, primitive data types for fields of class and entity models modelurl: "primitives.html" options: text|boolean|character|integer|decimal|real|date|datetime|time|guid area Models model site collection: sites description: site origin: version: references: class ... enumeration ... entity ... area entity ... association ... ... area ... ... diagramhint: nobaselink text adminprofile model library collection: libraries description: library origin: version: references: class ... enumeration ... entity ... association ... ... diagramhint: nobaselink area Members member field stereotype modelurl: identity|".html" member action diagramhint: nobaselink member function description: function parameter parameter ... guard: expression: constraint: scope: modelurl: "function.html" diagramhint: nobaselink field primitive abstract description: constraint: expression: default: initialization: readonly[: ] hidden[: ] ... field enumeration modelurl: "enumeration-field.html" link enumeration entity: Classifiers\enumeration description: constraint: expression: default: initialization: readonly[: ] hidden[: ] ... field class modelurl: "class-field.html" link class entity: Classifiers\class description: constraint: expression: default: initialization: readonly[: ] hidden[: ] ... field link_ modelurl: "link.html" link entity entity: Classifiers\entity description: link entity: constraint: expression: default: initialization: readonly[: ] hidden[: ] ... diagramhint:label=<«field»
link> area Classifiers classifier enumeration description: enumeration options: ||...| diagramhint: nobaselink text options multiline complex class description: class description: ... modelconstraint: # evaluated when parsed by the CLI # and (often) refers property values constraint: # evaluated at runtime || ... diagramhint: nobaselink complex entity description: entity description: ... modelconstraint: # evaluated when parsed by the CLI # and (often) refers property values constraint: # evaluated at runtime || identity: ... member filter collection: filters diagramhint: nobaselink member query collection: queries diagramhint: shape="diamond" style="rounded" nobaselink member step collection: behaviour diagramhint: nobaselink entity association description: association end [multiplicity: 0..1|1|*|1..*|l..u] end [multiplicity: 0..1|1|*|1..*|l..u] || ... link_ end collection: ends owner -> owner entity: Classifiers\association description: end entity: multiplicity: 0..1|1|*|1..*|l..u constraint: expression: default: initialization: readonly[: ] hidden[: ] scope: ... modelurl: identity|".html" diagramhint:label=<«field»
end> entity container description: container || entity ... entity ... permissions: ... container area description: area || entity ... entity ... permissions: ... entity blob description: blob || ...