Skip to content

Commit cc2d551

Browse files
authored
Merge pull request #42 from LIonWeb-org/document-finetuning
Fine-tune converted documents
2 parents 0f68543 + 8e3f5ac commit cc2d551

File tree

1 file changed

+6
-85
lines changed

1 file changed

+6
-85
lines changed

lioncore/metametamodel.adoc

Lines changed: 6 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
= Meta-Metamodel
2+
:toc: preamble
3+
:toclevels: 3
4+
:sectnums:
25

36
In this document we describe the Meta-Metamodel to be used by LionWeb.
47
The Meta-Metamodel is called LionCore.
@@ -36,89 +39,7 @@ Let’s first see a representation of the meta-metamodel using (a tiny subset of
3639

3740
[plantuml, metametamodel, svg]
3841
----
39-
abstract class AbstractConcept extends MetamodelElement implements FeaturesContainer, NamespaceProvider {
40-
allFeatures(): List<Feature>
41-
}
42-
43-
class Annotation extends AbstractConcept {
44-
platformSpecific: String?
45-
}
46-
47-
class Concept extends AbstractConcept {
48-
abstract: boolean
49-
}
50-
51-
class ConceptInterface extends AbstractConcept
52-
53-
class Containment extends Link
54-
55-
abstract class Datatype extends MetamodelElement
56-
57-
abstract class Feature implements NamespacedEntity {
58-
multiplicity: Multiplicity
59-
derived: boolean
60-
}
61-
62-
interface FeaturesContainer
63-
64-
abstract class Link extends Feature
65-
66-
class Metamodel implements NamespaceProvider {
67-
qualifiedName: String
68-
}
69-
70-
abstract class MetamodelElement implements NamespacedEntity
71-
72-
enum Multiplicity {
73-
Optional
74-
Single
75-
ZeroOrMore
76-
OneOrMore
77-
}
78-
79-
interface NamespaceProvider {
80-
namespaceQualifier(): String
81-
}
82-
83-
interface NamespacedEntity {
84-
simpleName: String
85-
qualifiedName(): String
86-
}
87-
88-
class PrimitiveType extends Datatype
89-
90-
class Property extends Feature
91-
92-
class Reference extends Link
93-
94-
class Typedef extends Datatype
95-
96-
97-
' relations:
98-
99-
Annotation "*" -- "1" AbstractConcept: target
100-
101-
Concept "*" -- "0..1" Concept: extends
102-
Concept "*" -- "*" ConceptInterface: implements
103-
104-
ConceptInterface "*" -- "*" ConceptInterface: extends
105-
106-
Containment "*" -- "0..1" Containment: specializes
107-
108-
FeaturesContainer "1" o-- "*" Feature: features
109-
110-
Link "*" -- "1" AbstractConcept: type
111-
112-
Metamodel "1" o-- "*" MetamodelElement: elements
113-
Metamodel "*" -- "*" Metamodel: dependsOn
114-
115-
NamespacedEntity "*" -- "1" NamespaceProvider: container
116-
117-
Property "*" -- "1" Datatype: type
118-
119-
Reference "*" -- "0..1" Reference: specializes
120-
121-
Typedef "*" -- "1" PrimitiveType: constraints
42+
include::metametamodel.puml[]
12243
----
12344

12445
image::metametamodel.svg[]
@@ -324,7 +245,7 @@ A Reference can optionally be a _specialization_ of another Reference.
324245
In that case, the original Reference must appear in a <<Concept>> extended by the Concept containing the specializing Reference or in an <<ConceptInterface>> implemented by the specializing Reference.
325246
A Reference can only specialize a Reference with the same name.
326247

327-
A Reference should have <<Multiplicity>> `Optional` or `Single` but not `0..\*` or `1..*`.
248+
A Reference should have <<Multiplicity>> `Optional` or `Single` but not `ZeroOrMore` or `OneOrMore`.
328249

329250
==== Property
330251
This indicates a simple value associated to an entity.
@@ -340,7 +261,7 @@ Differently from an `EAttribute`, a Property has no `ID` flag.
340261
A Property is a <<Feature>>.
341262
It is indirectly a <<NamespacedEntity>>.
342263

343-
A Property should have <<Multiplicity>> `Optional` or `Single` but `not 0..\*` or `1..*`.
264+
A Property should have <<Multiplicity>> `Optional` or `Single` but not `ZeroOrMore` or `OneOrMore`.
344265

345266
=== Abstract Classes
346267

0 commit comments

Comments
 (0)