blob: 3317679bc76410608cd497126018c77d9f4fef31 [file] [log] [blame]
@namespace(uri="OO", prefix="OO")
package OO;
class Model extends Package {
}
abstract class PackageableElement extends NamedElement {
ref Package#contents ~package;
}
abstract class AnnotatedElement {
val Annotation[*] annotations;
}
class Annotation {
attr String key;
attr String value;
}
abstract class NamedElement extends AnnotatedElement {
attr String name;
}
class Package extends PackageableElement {
val PackageableElement[*]#~package contents;
}
abstract class ~Classifier extends PackageableElement {
}
class ExternalClass extends ~Class {
}
class ~Class extends ~Classifier {
ref ~Class#extendedBy ~extends;
ref ~Class[*]#~extends extendedBy;
val Feature[*]#owner features;
attr Boolean isAbstract;
}
class Datatype extends ~Classifier {
}
abstract class Feature extends NamedElement {
ref ~Class#features owner;
ref ~Classifier type;
attr VisibilityEnum visibility;
}
abstract class StructuralFeature extends Feature {
attr Boolean isMany;
}
class Operation extends Feature {
val Parameter[*]#owner parameters;
}
class Parameter extends NamedElement {
ref ~Classifier type;
ref Operation#parameters owner;
}
class Reference extends StructuralFeature {
}
class Attribute extends StructuralFeature {
}
enum VisibilityEnum {
public = 1;
private = 2;
}