blob: 68dc09358011e9632e4c5fb2b99df22b84b0d204 [file] [log] [blame]
package OO;
class Model {
@diagram(direction="down")
val Classifier[*] contents;
}
abstract class NamedElement {
attr String name;
}
@diagram(inheritance.direction="down")
abstract class ~Classifier extends NamedElement {
}
class ~Class extends ~Classifier {
ref ~Class#extendedBy ~extends;
ref ~Class[*]#~extends extendedBy;
val Feature[*]#owner features;
attr boolean isAbstract;
}
@diagram(inheritance.direction="right")
class Datatype extends ~Classifier {
}
abstract class Feature extends NamedElement {
ref ~Class#features owner;
attr VisibilityEnum visibility;
}
abstract class StructuralFeature extends Feature {
}
class Reference extends StructuralFeature {
@diagram(direction="up")
ref ~Class type;
}
class Attribute extends StructuralFeature {
attr boolean isMany;
ref Datatype type;
}
enum VisibilityEnum {
public = 1;
private = 2;
}