object "~#c1 : EClass" as Named {
name = "Named"
abstract = true
}
object "~#c1 : EAttribute" as nameAttr {
name = "name"
lower = 0
upper = 1
}
object "~#dt1 : EDataType" as EString {
name = "EString"
instanceClassName = "java.lang.String"
}
nameAttr --> "eType" EString
Named *--> "eStructuralFeatures" nameAttr
object "~#c2 : EClass" as OrgUnit {
name = "OrgUnit"
}
OrgUnit --> "eSuperTypes" Named
object "~#c3 : EClass" as Person {
name = "Person"
}
Person --> "eSuperTypes" Named
object "~#m1 : EOperation" as fire {
name = "fire"
}
object "~#p1 : EParameter" as personParam {
name = "person"
}
fire *--> "eParameters" personParam
OrgUnit *--> "eOperations" fire
object "~#r1 : EReference" as worksInRef {
name = "works-in"
lower = 0
upper = 1
}
worksInRef --> "eType": OrgUnit
Person *--> "eStructuralFeatures" worksInRef
object "~#r2 : EReference" as workersRef {
name = "workers"
lower = 0
upper = -1 // unbounded
}
workersRef --> "eType": Person
OrgUnit *--> "eStructuralFeatures" workersRef
workers "eOpposite" <--> "eOpposite" worksInRef |