blob: 9a595b79be0e06995210889b8053e591cb795e33 [file] [log] [blame]
@namespace(uri="http://www.eclipse.org/epsilon/emc/muddle", prefix="")
@emf.gen(basePackage="org.eclipse.epsilon.emc", modelDirectory="/org.eclipse.epsilon.emc.muddle/src-gen")
package muddle;
class Muddle {
val Type[*] types;
val MuddleElement[*]#muddle elements;
}
class MuddleElement {
attr String ~id;
val Slot[*]#owningElement slots;
ref MuddleElementType#instances type;
ref Muddle#elements muddle;
val MuddleElementStyle[0..1] style;
}
class MuddleElementStyle {
attr String color;
attr String shape;
attr double width;
attr double height;
attr double borderWidth;
attr int labelFontSize;
attr double x;
attr double y;
}
class Slot {
attr EJavaObject[*] values;
ref Feature#slots feature;
ref MuddleElement#slots owningElement;
}
abstract class Type {
attr String name;
}
class Feature {
attr String name;
attr boolean many = false;
attr boolean primary = false;
attr boolean runtime = false;
ref Type type;
ref MuddleElementType#features owningType;
ref Slot[*]#feature slots;
}
class MuddleElementType extends Type {
ref MuddleElement[*]#type instances;
val Feature[*]#owningType features;
ref MuddleElementType[*]#subTypes superTypes;
ref MuddleElementType[*]#superTypes subTypes;
}
class LinkElementType extends MuddleElementType {
ref Feature sourceFeature;
ref Feature targetFeature;
val Feature roleInSourceFeature;
val Feature roleInTargetFeature;
}
abstract class PrimitiveType extends Type {}
class IntegerType extends PrimitiveType {}
class StringType extends PrimitiveType {}
class BooleanType extends PrimitiveType {}
class RealType extends PrimitiveType {}