ra
Department
programme
course
studyPlan
spesialization
Course
name
code
mandatoryCourse
Programme
name
mCode
studyPlan
StudyPlan
programme
spesialization
semester
mandatoryCourse
Specialization
name
semester
Semester
semesterNumber
totalPoints
courseSlot
mandatoryCourse
MandatoryCourse
semester
course
mandatory
credit
programmeCode
Datateknologi5
MTDT
Informatikk
MSIT
Datateknologi2
MIDT
courseCode
java.lang.String
java.lang.String
<?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="ra" nsURI="platform:/resource/tdt4250/model/ra.ecore" nsPrefix="tdt4250.ra">
  <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
    <details key="validationDelegates" value="http://www.eclipse.org/acceleo/query/1.0"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" name="Department">
    <eStructuralFeatures xsi:type="ecore:EReference" name="programme" upperBound="-1"
        eType="#//Programme" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="course" upperBound="-1"
        eType="#//Course" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="studyPlan" eType="#//StudyPlan"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="spesialization" eType="#//Specialization"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Course">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="code" eType="#//courseCode"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mandatoryCourse" eType="#//MandatoryCourse"
        eOpposite="#//MandatoryCourse/course"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Programme">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mCode" eType="#//programmeCode"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="studyPlan" eType="#//StudyPlan"
        containment="true" eOpposite="#//StudyPlan/programme"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="StudyPlan">
    <eStructuralFeatures xsi:type="ecore:EReference" name="programme" eType="#//Programme"
        eOpposite="#//Programme/studyPlan"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="spesialization" upperBound="-1"
        eType="#//Specialization" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="semester" upperBound="-1"
        eType="#//Semester" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mandatoryCourse" upperBound="-1"
        eType="#//MandatoryCourse" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Specialization">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="semester" upperBound="-1"
        eType="#//Semester" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Semester">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="mandatoryOrNotCourse"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/acceleo/query/1.0">
      <details key="mandatoryOrNotCourse" value="if self.mandatoryCourse.mandatory = true then not self.courseSlot->excludes(self.mandatoryCourse.course) else true endif and self.mandatoryCourse.credit->sum() >= 30.0"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="semesterNumber" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="totalPoints" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
        changeable="false" volatile="true" transient="true" derived="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="courseSlot" upperBound="-1"
        eType="#//Course"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mandatoryCourse" upperBound="-1"
        eType="#//MandatoryCourse" eOpposite="#//MandatoryCourse/semester"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MandatoryCourse">
    <eStructuralFeatures xsi:type="ecore:EReference" name="semester" eType="#//Semester"
        eOpposite="#//Semester/mandatoryCourse"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="course" eType="#//Course"
        eOpposite="#//Course/mandatoryCourse"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mandatory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="credit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="programmeCode">
    <eLiterals name="Datateknologi5" literal="MTDT"/>
    <eLiterals name="Informatikk" value="1" literal="MSIT"/>
    <eLiterals name="Datateknologi2" value="2" literal="MIDT"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="courseCode" instanceClassName="java.lang.String">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="maxLength" value="8"/>
      <details key="minLength" value="6"/>
    </eAnnotations>
  </eClassifiers>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":"tdt4250.ra","nsURI":"platform:/resource/tdt4250/model/ra.ecore","name":"ra","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Department","instanceClass":null,"abstract":false,"id":1,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Course","instanceClass":null,"abstract":false,"id":2,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Programme","instanceClass":null,"abstract":false,"id":3,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StudyPlan","instanceClass":null,"abstract":false,"id":4,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Specialization","instanceClass":null,"abstract":false,"id":5,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Semester","instanceClass":null,"abstract":false,"id":6,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MandatoryCourse","instanceClass":null,"abstract":false,"id":7,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"programmeCode","instanceClass":null,"id":8,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":"java.lang.String","defaultValue":null,"instanceClassName":"java.lang.String","name":"courseCode","instanceClass":"java.lang.String","id":9,"serializable":true,"eClass":"EDataType"},{"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":"programme","changeable":true,"resolveProxies":true,"lowerBound":0,"id":10,"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":"course","changeable":true,"resolveProxies":true,"lowerBound":0,"id":11,"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":"studyPlan","changeable":true,"resolveProxies":true,"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":"spesialization","changeable":true,"resolveProxies":true,"lowerBound":0,"id":13,"derived":false},{"id":14,"eClass":"EGenericType"},{"id":15,"eClass":"EGenericType"},{"id":16,"eClass":"EGenericType"},{"id":17,"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":18,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"code","changeable":true,"lowerBound":0,"iD":false,"id":19,"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":"mandatoryCourse","changeable":true,"resolveProxies":true,"lowerBound":0,"id":20,"derived":false},{"id":21,"eClass":"EGenericType"},{"id":22,"eClass":"EGenericType"},{"id":23,"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":"course","changeable":true,"resolveProxies":true,"lowerBound":0,"id":24,"derived":false},{"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":25,"derived":false},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"mCode","changeable":true,"lowerBound":0,"iD":false,"id":26,"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":"studyPlan","changeable":true,"resolveProxies":true,"lowerBound":0,"id":27,"derived":false},{"id":28,"eClass":"EGenericType"},{"id":29,"eClass":"EGenericType"},{"id":30,"eClass":"EGenericType"},{"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":"programme","changeable":true,"resolveProxies":true,"lowerBound":0,"id":31,"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":"spesialization","changeable":true,"resolveProxies":true,"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":true,"unsettable":false,"transient":false,"unique":true,"name":"semester","changeable":true,"resolveProxies":true,"lowerBound":0,"id":33,"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":"mandatoryCourse","changeable":true,"resolveProxies":true,"lowerBound":0,"id":34,"derived":false},{"id":35,"eClass":"EGenericType"},{"id":36,"eClass":"EGenericType"},{"id":37,"eClass":"EGenericType"},{"id":38,"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":39,"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":"semester","changeable":true,"resolveProxies":true,"lowerBound":0,"id":40,"derived":false},{"id":41,"eClass":"EGenericType"},{"id":42,"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":"semesterNumber","changeable":true,"lowerBound":0,"iD":false,"id":43,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":true,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":true,"unique":true,"name":"totalPoints","changeable":false,"lowerBound":0,"iD":false,"id":44,"derived":true},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"courseSlot","changeable":true,"resolveProxies":true,"lowerBound":0,"id":45,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"mandatoryCourse","changeable":true,"resolveProxies":true,"lowerBound":0,"id":46,"derived":false},{"id":47,"eClass":"EGenericType"},{"id":48,"eClass":"EGenericType"},{"id":49,"eClass":"EGenericType"},{"id":50,"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":"semester","changeable":true,"resolveProxies":true,"lowerBound":0,"id":51,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"mandatory","changeable":true,"lowerBound":0,"iD":false,"id":52,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"credit","changeable":true,"lowerBound":0,"iD":false,"id":53,"derived":false},{"id":54,"eClass":"EGenericType"},{"id":55,"eClass":"EGenericType"},{"id":56,"eClass":"EGenericType"},{"id":57,"eClass":"EGenericType"},{"name":"Datateknologi5","id":58,"value":0,"literal":"MTDT","eClass":"EEnumLiteral"},{"name":"Informatikk","id":59,"value":1,"literal":"MSIT","eClass":"EEnumLiteral"},{"name":"Datateknologi2","id":60,"value":2,"literal":"MIDT","eClass":"EEnumLiteral"}],"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":0,"target":7},{"source":0,"target":8},{"source":0,"target":9},{"source":1,"target":0},{"source":1,"target":10},{"source":1,"target":11},{"source":1,"target":12},{"source":1,"target":13},{"source":10,"target":3},{"source":10,"target":14},{"source":10,"target":1},{"source":14,"target":3},{"source":11,"target":2},{"source":11,"target":15},{"source":11,"target":1},{"source":15,"target":2},{"source":12,"target":4},{"source":12,"target":16},{"source":12,"target":1},{"source":16,"target":4},{"source":13,"target":5},{"source":13,"target":17},{"source":13,"target":1},{"source":17,"target":5},{"source":2,"target":0},{"source":2,"target":18},{"source":2,"target":19},{"source":2,"target":20},{"source":18,"target":21},{"source":18,"target":2},{"source":19,"target":9},{"source":19,"target":22},{"source":19,"target":2},{"source":22,"target":9},{"source":20,"target":7},{"source":20,"target":23},{"source":20,"target":2},{"source":20,"target":24},{"source":23,"target":7},{"source":3,"target":0},{"source":3,"target":25},{"source":3,"target":26},{"source":3,"target":27},{"source":25,"target":28},{"source":25,"target":3},{"source":26,"target":8},{"source":26,"target":29},{"source":26,"target":3},{"source":29,"target":8},{"source":27,"target":4},{"source":27,"target":30},{"source":27,"target":3},{"source":27,"target":31},{"source":30,"target":4},{"source":4,"target":0},{"source":4,"target":31},{"source":4,"target":32},{"source":4,"target":33},{"source":4,"target":34},{"source":31,"target":3},{"source":31,"target":35},{"source":31,"target":4},{"source":31,"target":27},{"source":35,"target":3},{"source":32,"target":5},{"source":32,"target":36},{"source":32,"target":4},{"source":36,"target":5},{"source":33,"target":6},{"source":33,"target":37},{"source":33,"target":4},{"source":37,"target":6},{"source":34,"target":7},{"source":34,"target":38},{"source":34,"target":4},{"source":38,"target":7},{"source":5,"target":0},{"source":5,"target":39},{"source":5,"target":40},{"source":39,"target":41},{"source":39,"target":5},{"source":40,"target":6},{"source":40,"target":42},{"source":40,"target":5},{"source":42,"target":6},{"source":6,"target":0},{"source":6,"target":43},{"source":6,"target":44},{"source":6,"target":45},{"source":6,"target":46},{"source":43,"target":47},{"source":43,"target":6},{"source":44,"target":48},{"source":44,"target":6},{"source":45,"target":2},{"source":45,"target":49},{"source":45,"target":6},{"source":49,"target":2},{"source":46,"target":7},{"source":46,"target":50},{"source":46,"target":6},{"source":46,"target":51},{"source":50,"target":7},{"source":7,"target":0},{"source":7,"target":51},{"source":7,"target":24},{"source":7,"target":52},{"source":7,"target":53},{"source":51,"target":6},{"source":51,"target":54},{"source":51,"target":7},{"source":51,"target":46},{"source":54,"target":6},{"source":24,"target":2},{"source":24,"target":55},{"source":24,"target":7},{"source":24,"target":20},{"source":55,"target":2},{"source":52,"target":56},{"source":52,"target":7},{"source":53,"target":57},{"source":53,"target":7},{"source":8,"target":0},{"source":8,"target":58},{"source":8,"target":59},{"source":8,"target":60},{"source":58,"target":8},{"source":59,"target":8},{"source":60,"target":8},{"source":9,"target":0}],"multigraph":true}