company
Employee
name
age
salary
employer
managed
directed
secretary
intern
Department
calcExpenses
sumBudget
name
maxJuniors
budget
0
employee
boss
subDepartment
parentDepartment
employeeOfTheMonth
biggestNumberOfStudentsOrFreelancers
Freelance
assignment
Division
name
department
director
budget
employeesOfTheMonth
numberEmployeesOfTheMonth

company
Student
Company
division
eotmDelta
divisionDirector
name
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="company"
    nsURI="http:///company.ecore" nsPrefix="company">
  <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
    <details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
    <details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
    <details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" name="Employee">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
      <details key="UniqueNames" value="Employee.allInstances()->forAll(e | e &lt;> self implies e.name &lt;> self.name)"/>
      <details key="BossIsOldest" value="self.age &lt;= self.employer.boss.age"/>
      <details key="divBossSecretary" value="if self.directed->isEmpty() then&#xD;&#xA;self.secretary.oclIsUndefined()&#xD;&#xA;else&#xD;&#xA;not self.secretary.oclIsUndefined()&#xD;&#xA;endif"/>
      <details key="secretaryOlderThanBoss" value="if self.directed->notEmpty() and&#xD;&#xA;not self.secretary.oclIsUndefined() then&#xD;&#xA;self.age &lt; self.secretary.age &#xD;&#xA;else true&#xD;&#xA;endif"/>
      <details key="Boss10YearsOlderThanEmployee" value="self.age + 10 &lt;= self.employer.boss.age"/>
      <details key="Secretary10YearsOlderThanBoss" value="if self.directed->notEmpty() and&#xD;&#xA;not self.secretary.oclIsUndefined() then&#xD;&#xA;self.age + 10 &lt; self.secretary.age &#xD;&#xA;else true&#xD;&#xA;endif"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="UniqueNames BossIsOldest divBossSecretary secretaryOlderThanBoss Boss10YearsOlderThanEmployee Secretary10YearsOlderThanBoss"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType primitivetypes.ecore#//String"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="age" eType="ecore:EDataType primitivetypes.ecore#//Integer"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="salary" eType="ecore:EDataType primitivetypes.ecore#//Integer"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="employer" eType="#//Department"
        resolveProxies="false" eOpposite="#//Department/employee"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="managed" eType="#//Department"
        resolveProxies="false" eOpposite="#//Department/boss"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="directed" eType="#//Division"
        resolveProxies="false" eOpposite="#//Division/director"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="secretary" eType="#//Employee"
        containment="true" resolveProxies="false">
      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml">
        <details key="Property.oppositeRoleName" value="secretary2boss"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="intern" eType="#//Student">
      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml">
        <details key="Property.oppositeRoleName" value="student2employee"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Department">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
      <details key="NotBossFreelance" value="not (self.boss.oclIsTypeOf(Freelance))"/>
      <details key="OldEmployee" value="self.employee->exists(e | e.age > 45)"/>
      <details key="MaxJuniors" value="self.employee->select(e|e.age &lt; 25)->size()&#xD;&#xA;&lt;self.maxJuniors"/>
      <details key="BossHighestSalary" value="self.employee->select(e|e.salary >= self.boss.salary)->size() &lt;= 1"/>
      <details key="boss10YearsOlderThanJunior" value="let t:Tuple(boss:Employee,junior:Employee)=&#xD;&#xA;Tuple{boss=self.boss, junior=self.employee->sortedBy(age)->first()} in&#xD;&#xA;t.boss.age > t.junior.age + 10"/>
      <details key="BudgetRestriction" value="self.calcExpenses() &lt;= self.budget"/>
      <details key="MaxJuniorsWarning" value="if self.maxJuniors > 1&#xD;&#xA;then&#xD;&#xA;self.employee->select(e|e.age &lt; 25)->size()&#xD;&#xA;&lt;self.maxJuniors - 1&#xD;&#xA;else&#xD;&#xA;true&#xD;&#xA;endif"/>
      <details key="departmentMustHaveDivision" value="self.department2division->notEmpty()"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="NotBossFreelance OldEmployee MaxJuniors BossHighestSalary boss10YearsOlderThanJunior BudgetRestriction MaxJuniorsWarning departmentMustHaveDivision"/>
    </eAnnotations>
    <eOperations name="calcExpenses" eType="ecore:EDataType primitivetypes.ecore#//Integer">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
        <details key="body" value="self.employee->iterate(e ; s : Integer = 0 | s + e.salary) + self.boss.salary"/>
      </eAnnotations>
    </eOperations>
    <eOperations name="sumBudget" eType="ecore:EDataType primitivetypes.ecore#//Integer">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
        <details key="body" value="if self.subDepartment->size() >= 1 then&#xD;&#xA;&#x9;self.subDepartment->iterate(department; return : Integer = 0 | return + department.sumBudget()) + self.budget&#xD;&#xA;else&#xD;&#xA;&#x9;self.budget&#xD;&#xA;endif "/>
      </eAnnotations>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType primitivetypes.ecore#//String"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxJuniors" eType="ecore:EDataType primitivetypes.ecore#//Integer"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="budget" eType="ecore:EDataType primitivetypes.ecore#//Integer"
        defaultValueLiteral="0"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="employee" upperBound="-1"
        eType="#//Employee" containment="true" resolveProxies="false" eOpposite="#//Employee/employer"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="boss" eType="#//Employee"
        resolveProxies="false" eOpposite="#//Employee/managed"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="subDepartment" upperBound="-1"
        eType="#//Department" containment="true" resolveProxies="false" eOpposite="#//Department/parentDepartment"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="parentDepartment" eType="#//Department"
        resolveProxies="false" eOpposite="#//Department/subDepartment"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="employeeOfTheMonth" unique="false"
        upperBound="-1" eType="#//Employee" unsettable="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="biggestNumberOfStudentsOrFreelancers"
        ordered="false" eType="ecore:EDataType primitivetypes.ecore#//Integer" changeable="false"
        volatile="true" transient="true" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
        <details key="derivation" value="let numFreelance : Integer = self.employee->select(e : Employee | e.oclIsKindOf(Freelance))->size() in let numStudent : Integer = self.employee->select(e : Employee | e.oclIsKindOf(Student))->size() in if numFreelance &lt; numStudent then numStudent else numFreelance endif"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Freelance" eSuperTypes="#//Employee">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
      <details key="ValidAssignment" value="self.assignment >= 5 and self.assignment &lt;= 30"/>
      <details key="ValidAssignmentWarning" value="self.assignment >= 5 and self.assignment &lt;= 40"/>
      <details key="StudentAndFreelancesAge" value="self.age &lt; 40"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="ValidAssignment ValidAssignmentWarning StudentAndFreelancesAge"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="assignment" eType="ecore:EDataType primitivetypes.ecore#//Integer"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Division">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
      <details key="nasty" value="self.department->collect(d| &#xD;&#xA;d.employee->including(d.boss)).salary->sum() &lt; budget"/>
      <details key="limitEmployeesOfTheMonth" value="self.employeesOfTheMonth->size() &lt;= self.department->size()"/>
      <details key="nestedDerivation" value="self.numberEmployeesOfTheMonth &lt;= self.department->size()"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="nasty limitEmployeesOfTheMonth nestedDerivation"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType primitivetypes.ecore#//String"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="department" upperBound="-1"
        eType="#//Department" containment="true" resolveProxies="false">
      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml">
        <details key="Property.oppositeRoleName" value="department2division"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="director" eType="#//Employee"
        unsettable="true" containment="true" resolveProxies="false" eOpposite="#//Employee/directed"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="budget" eType="ecore:EDataType primitivetypes.ecore#//Integer"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="employeesOfTheMonth" unique="false"
        upperBound="-1" eType="#//Employee" changeable="false" volatile="true" transient="true"
        derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
        <details key="derivation" value="self.department.employeeOfTheMonth"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberEmployeesOfTheMonth"
        ordered="false" eType="ecore:EDataType primitivetypes.ecore#//Integer" changeable="false"
        volatile="true" transient="true" defaultValueLiteral="" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
        <details key="derivation" value="self.employeesOfTheMonth->size()"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="company" eType="#//Company"
        eOpposite="#//Company/division"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Student" eSuperTypes="#//Employee">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
      <details key="StudentAndFreelancesAge" value="self.age &lt; 40"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="StudentAndFreelancesAge"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Company">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
      <details key="eotmDeltaMax" value="self.eotmDelta &lt;= 5"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="eotmDeltaMax"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="division" eType="#//Division"
        eOpposite="#//Division/company"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="eotmDelta" eType="ecore:EDataType primitivetypes.ecore#//Integer"
        changeable="false" volatile="true" transient="true" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
        <details key="derivation" value="let maxEOTMDivision:Division=self.division->sortedBy(i | i.numberEmployeesOfTheMonth)->last() in let minEOTMDivision:Division=self.division->sortedBy(i | i.numberEmployeesOfTheMonth)->first() in maxEOTMDivision.numberEmployeesOfTheMonth - minEOTMDivision.numberEmployeesOfTheMonth"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="divisionDirector" eType="#//Employee"
        changeable="false" volatile="true" transient="true" unsettable="true" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
        <details key="derivation" value="self.division.director"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType primitivetypes.ecore#//String"
        changeable="false" volatile="true" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL">
        <details key="derivation" value="if self.division->isEmpty() then&#xD;&#xA;  'Company with no division'&#xD;&#xA;else&#xD;&#xA;  'Company with division '.concat(self.division.name)&#xD;&#xA;endif"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":"company","nsURI":"http:///company.ecore","name":"company","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Employee","instanceClass":null,"abstract":false,"id":1,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Department","instanceClass":null,"abstract":false,"id":2,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Freelance","instanceClass":null,"abstract":false,"id":3,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Division","instanceClass":null,"abstract":false,"id":4,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Student","instanceClass":null,"abstract":false,"id":5,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Company","instanceClass":null,"abstract":false,"id":6,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":7,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"age","changeable":true,"lowerBound":0,"iD":false,"id":8,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"salary","changeable":true,"lowerBound":0,"iD":false,"id":9,"derived":false},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"employer","changeable":true,"resolveProxies":false,"lowerBound":0,"id":10,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"managed","changeable":true,"resolveProxies":false,"lowerBound":0,"id":11,"derived":false},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"directed","changeable":true,"resolveProxies":false,"lowerBound":0,"id":12,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"secretary","changeable":true,"resolveProxies":false,"lowerBound":0,"id":13,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"intern","changeable":true,"resolveProxies":true,"lowerBound":0,"id":14,"derived":false},{"id":15,"eClass":"EGenericType"},{"id":16,"eClass":"EGenericType"},{"id":17,"eClass":"EGenericType"},{"id":18,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"employee","changeable":true,"resolveProxies":false,"lowerBound":0,"id":19,"derived":false},{"id":20,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"boss","changeable":true,"resolveProxies":false,"lowerBound":0,"id":21,"derived":false},{"id":22,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":true,"transient":false,"unique":true,"name":"director","changeable":true,"resolveProxies":false,"lowerBound":0,"id":23,"derived":false},{"id":24,"eClass":"EGenericType"},{"id":25,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"calcExpenses","lowerBound":0,"id":26,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"sumBudget","lowerBound":0,"id":27,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":28,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"maxJuniors","changeable":true,"lowerBound":0,"iD":false,"id":29,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":"0","unsettable":false,"transient":false,"unique":true,"name":"budget","changeable":true,"lowerBound":0,"iD":false,"id":30,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"subDepartment","changeable":true,"resolveProxies":false,"lowerBound":0,"id":31,"derived":false},{"container":true,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"parentDepartment","changeable":true,"resolveProxies":false,"lowerBound":0,"id":32,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":true,"transient":false,"unique":false,"name":"employeeOfTheMonth","changeable":true,"resolveProxies":true,"lowerBound":0,"id":33,"derived":false},{"ordered":false,"upperBound":1,"defaultValue":0,"volatile":true,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":true,"unique":true,"name":"biggestNumberOfStudentsOrFreelancers","changeable":false,"lowerBound":0,"iD":false,"id":34,"derived":true},{"id":35,"eClass":"EGenericType"},{"id":36,"eClass":"EGenericType"},{"id":37,"eClass":"EGenericType"},{"id":38,"eClass":"EGenericType"},{"id":39,"eClass":"EGenericType"},{"id":40,"eClass":"EGenericType"},{"id":41,"eClass":"EGenericType"},{"id":42,"eClass":"EGenericType"},{"id":43,"eClass":"EGenericType"},{"id":44,"eClass":"EGenericType"},{"id":45,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"assignment","changeable":true,"lowerBound":0,"iD":false,"id":46,"derived":false},{"id":47,"eClass":"EGenericType"},{"id":48,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":49,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"department","changeable":true,"resolveProxies":false,"lowerBound":0,"id":50,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"budget","changeable":true,"lowerBound":0,"iD":false,"id":51,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":true,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":true,"unique":false,"name":"employeesOfTheMonth","changeable":false,"resolveProxies":true,"lowerBound":0,"id":52,"derived":true},{"ordered":false,"upperBound":1,"defaultValue":null,"volatile":true,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":"","unsettable":false,"transient":true,"unique":true,"name":"numberEmployeesOfTheMonth","changeable":false,"lowerBound":0,"iD":false,"id":53,"derived":true},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"company","changeable":true,"resolveProxies":true,"lowerBound":0,"id":54,"derived":false},{"id":55,"eClass":"EGenericType"},{"id":56,"eClass":"EGenericType"},{"id":57,"eClass":"EGenericType"},{"id":58,"eClass":"EGenericType"},{"id":59,"eClass":"EGenericType"},{"id":60,"eClass":"EGenericType"},{"id":61,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"division","changeable":true,"resolveProxies":true,"lowerBound":0,"id":62,"derived":false},{"id":63,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0,"volatile":true,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":true,"unique":true,"name":"eotmDelta","changeable":false,"lowerBound":0,"iD":false,"id":64,"derived":true},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":true,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":true,"transient":true,"unique":true,"name":"divisionDirector","changeable":false,"resolveProxies":true,"lowerBound":0,"id":65,"derived":true},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":true,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":false,"lowerBound":0,"iD":false,"id":66,"derived":true},{"id":67,"eClass":"EGenericType"},{"id":68,"eClass":"EGenericType"},{"id":69,"eClass":"EGenericType"},{"id":70,"eClass":"EGenericType"}],"links":[{"source":0,"target":1},{"source":0,"target":2},{"source":0,"target":3},{"source":0,"target":4},{"source":0,"target":5},{"source":0,"target":6},{"source":1,"target":0},{"source":1,"target":7},{"source":1,"target":8},{"source":1,"target":9},{"source":1,"target":10},{"source":1,"target":11},{"source":1,"target":12},{"source":1,"target":13},{"source":1,"target":14},{"source":7,"target":15},{"source":7,"target":1},{"source":8,"target":16},{"source":8,"target":1},{"source":9,"target":17},{"source":9,"target":1},{"source":10,"target":2},{"source":10,"target":18},{"source":10,"target":1},{"source":10,"target":19},{"source":18,"target":2},{"source":11,"target":2},{"source":11,"target":20},{"source":11,"target":1},{"source":11,"target":21},{"source":20,"target":2},{"source":12,"target":4},{"source":12,"target":22},{"source":12,"target":1},{"source":12,"target":23},{"source":22,"target":4},{"source":13,"target":1},{"source":13,"target":24},{"source":13,"target":1},{"source":24,"target":1},{"source":14,"target":5},{"source":14,"target":25},{"source":14,"target":1},{"source":25,"target":5},{"source":2,"target":0},{"source":2,"target":26},{"source":2,"target":27},{"source":2,"target":28},{"source":2,"target":29},{"source":2,"target":30},{"source":2,"target":19},{"source":2,"target":21},{"source":2,"target":31},{"source":2,"target":32},{"source":2,"target":33},{"source":2,"target":34},{"source":26,"target":35},{"source":26,"target":2},{"source":27,"target":36},{"source":27,"target":2},{"source":28,"target":37},{"source":28,"target":2},{"source":29,"target":38},{"source":29,"target":2},{"source":30,"target":39},{"source":30,"target":2},{"source":19,"target":1},{"source":19,"target":40},{"source":19,"target":2},{"source":19,"target":10},{"source":40,"target":1},{"source":21,"target":1},{"source":21,"target":41},{"source":21,"target":2},{"source":21,"target":11},{"source":41,"target":1},{"source":31,"target":2},{"source":31,"target":42},{"source":31,"target":2},{"source":31,"target":32},{"source":42,"target":2},{"source":32,"target":2},{"source":32,"target":43},{"source":32,"target":2},{"source":32,"target":31},{"source":43,"target":2},{"source":33,"target":1},{"source":33,"target":44},{"source":33,"target":2},{"source":44,"target":1},{"source":34,"target":45},{"source":34,"target":2},{"source":3,"target":0},{"source":3,"target":1},{"source":3,"target":46},{"source":3,"target":47},{"source":46,"target":48},{"source":46,"target":3},{"source":47,"target":1},{"source":4,"target":0},{"source":4,"target":49},{"source":4,"target":50},{"source":4,"target":23},{"source":4,"target":51},{"source":4,"target":52},{"source":4,"target":53},{"source":4,"target":54},{"source":49,"target":55},{"source":49,"target":4},{"source":50,"target":2},{"source":50,"target":56},{"source":50,"target":4},{"source":56,"target":2},{"source":23,"target":1},{"source":23,"target":57},{"source":23,"target":4},{"source":23,"target":12},{"source":57,"target":1},{"source":51,"target":58},{"source":51,"target":4},{"source":52,"target":1},{"source":52,"target":59},{"source":52,"target":4},{"source":59,"target":1},{"source":53,"target":60},{"source":53,"target":4},{"source":54,"target":6},{"source":54,"target":61},{"source":54,"target":4},{"source":54,"target":62},{"source":61,"target":6},{"source":5,"target":0},{"source":5,"target":1},{"source":5,"target":63},{"source":63,"target":1},{"source":6,"target":0},{"source":6,"target":62},{"source":6,"target":64},{"source":6,"target":65},{"source":6,"target":66},{"source":62,"target":4},{"source":62,"target":67},{"source":62,"target":6},{"source":62,"target":54},{"source":67,"target":4},{"source":64,"target":68},{"source":64,"target":6},{"source":65,"target":1},{"source":65,"target":69},{"source":65,"target":6},{"source":69,"target":1},{"source":66,"target":70},{"source":66,"target":6}],"multigraph":true}