blob: 40271867e6ad60a2b1697d38604a4f80ba160b69 [file] [log] [blame]
@namespace(uri="http://www.eclipse.org/examples/gmf/ocldriven/table-of-organization-and-equipment", prefix="toe")
package toe;
class AllHolder {
val AllBase[*] all;
}
abstract class AllBase {
//
}
class Employee extends AllBase {
attr String name;
attr int salary;
ref Project[*]#projectTeam projects;
ref Department#employees department;
ref Contribution[*]#employee contributions;
}
class Manager extends Employee {
ref Project[*]#lead leads;
ref Department#manager managedDepartment;
}
class Contribution extends AllBase {
attr String description;
ref Employee#contributions employee;
ref Project#contributions project;
}
class Department extends AllBase {
attr String name;
val Department[*]#parentDepartment subDepartments;
val Employee[*]#department employees;
ref Department#subDepartments parentDepartment;
ref Manager[1]#managedDepartment manager;
op Department[*] allSubDepartments();
}
class Project extends AllBase {
attr String name;
attr boolean departmentWide;
ref Employee[*]#projects projectTeam;
ref Manager#leads lead;
ref Contribution[*]#project contributions;
}