<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:PHPProfile="http:///schemas/PHPProfile/NS/0" xmlns:UMLLabProfile="http:///schemas/UMLLabProfile/NS/0" xmlns:ZENDStyle="http:///schemas/ZENDStyle/NS/0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http:///schemas/PHPProfile/NS/0 pathmap://PHP_PROFILES/PHP.profile.uml#PHPProfile-Annotation-PHPProfile http:///schemas/UMLLabProfile/NS/0 pathmap://UMLLAB_PROFILES/UMLLab.profile.uml#UMLLabProfile-Annotation_2-UMLLabProfile http:///schemas/ZENDStyle/NS/0 pathmap://ZEND_PROFILES/Zend.profile.uml#ZENDStyle-Annotation-ZENDStyle">
  <uml:Model xmi:id="_ArFQUKglEeaKNtCyV0i9yg" name="pair_prog">
    <eAnnotations xmi:id="_BS1z4KglEeaKNtCyV0i9yg" source="http://ns.yatta.de/umllab">
      <contents xmi:type="ecore:EAnnotation" xmi:id="_BS2a8KglEeaKNtCyV0i9yg" source="codegen">
        <details xmi:id="_BS2a8aglEeaKNtCyV0i9yg" key="codegenDirectory" value="/pair-prog"/>
        <details xmi:id="_Df0BwKglEeaKNtCyV0i9yg" key="AssociatedSourceCode" value="/pair-prog/src/Controller/AppController.php;559768906/1;/pair-prog/src/Controller/AssignmentsController.php;1230919645/1;/pair-prog/src/Controller/Component/LtiAutologinComponent.php;1380486577/1;/pair-prog/src/Controller/GradesController.php;825642460/1;/pair-prog/src/Controller/RubricCriteriasController.php;3807389902/1;/pair-prog/src/Controller/RubricLevelsController.php;1330069138/1;/pair-prog/src/Controller/ActivitiesController.php;3185539611/0;/pair-prog/src/Controller/ActivitiesGroupsController.php;3867846796/0;/pair-prog/src/Controller/OAuthConsumersController.php;425434011/0;/pair-prog/src/Controller/PagesController.php;678834737/0;/pair-prog/src/Controller/RubricsController.php;2401369371/0;/pair-prog/src/Controller/RubricsItemsController.php;2714957211/0;/pair-prog/src/Controller/SubmissionsController.php;2167957863/0;/pair-prog/src/Controller/UsersController.php;3989327436/0;"/>
      </contents>
    </eAnnotations>
    <elementImport xmi:id="_BTR4wKglEeaKNtCyV0i9yg">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#boolean"/>
    </elementImport>
    <elementImport xmi:id="_BTSf0KglEeaKNtCyV0i9yg">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#byte"/>
    </elementImport>
    <elementImport xmi:id="_BTSf0aglEeaKNtCyV0i9yg">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#char"/>
    </elementImport>
    <elementImport xmi:id="_BTTG4KglEeaKNtCyV0i9yg">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#double"/>
    </elementImport>
    <elementImport xmi:id="_BTTG4aglEeaKNtCyV0i9yg">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#float"/>
    </elementImport>
    <elementImport xmi:id="_BTWxQKglEeaKNtCyV0i9yg">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#int"/>
    </elementImport>
    <elementImport xmi:id="_BTWxQaglEeaKNtCyV0i9yg">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#long"/>
    </elementImport>
    <elementImport xmi:id="_BTXYUKglEeaKNtCyV0i9yg">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/JavaPrimitiveTypes.library.uml#short"/>
    </elementImport>
    <elementImport xmi:id="_BTaboKglEeaKNtCyV0i9yg">
      <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
    </elementImport>
    <packagedElement xmi:type="uml:Package" xmi:id="_BQYVwKglEeaKNtCyV0i9yg" name="App">
      <packagedElement xmi:type="uml:Package" xmi:id="_BQ4sEKglEeaKNtCyV0i9yg" name="Controller">
        <packagedElement xmi:type="uml:Package" xmi:id="_BRQfgKglEeaKNtCyV0i9yg" name="Component">
          <packagedElement xmi:type="uml:Class" xmi:id="_BTuksKglEeaKNtCyV0i9yg" name="LtiAutologinComponent">
            <ownedComment xmi:id="_BX5TAaglEeaKNtCyV0i9yg">
              <body>*
LtiLogin component
 *
Odpowiada za logowanie użytkownika
jeżeli zapytanie jest zapytaniem lti.
 *
Jeżeli użytkownik był wcześniej zalogowany zostanie wylogowany</body>
            </ownedComment>
            <generalization xmi:id="_BWBqwaglEeaKNtCyV0i9yg" general="_BV_OgKglEeaKNtCyV0i9yg"/>
            <ownedAttribute xmi:id="_BWN4AKglEeaKNtCyV0i9yg" name="components">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BWOfEKglEeaKNtCyV0i9yg" value="['Auth']"/>
            </ownedAttribute>
            <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXqpgKglEeaKNtCyV0i9yg" name="beforeFilter" specification="_BWHxYKglEeaKNtCyV0i9yg">
              <ownedParameter xmi:id="_BXqpgaglEeaKNtCyV0i9yg" name="event" type="_BWC44KglEeaKNtCyV0i9yg"/>
              <language>PHP</language>
              <body>$request = $event->subject()->request;

     if ($request->is('post') &amp;&amp; 
         $request->data('lti_message_type') === 'basic-lti-launch-request' 
     ) {
         $user = $this->Auth->identify();
         if ($user) {
             $this->Auth->setUser($user);
         }
     }
 </body>
            </ownedBehavior>
            <ownedOperation xmi:id="_BWHxYKglEeaKNtCyV0i9yg" name="beforeFilter" method="_BXqpgKglEeaKNtCyV0i9yg">
              <ownedParameter xmi:id="_BWIYcKglEeaKNtCyV0i9yg" name="event" type="_BWC44KglEeaKNtCyV0i9yg"/>
            </ownedOperation>
          </packagedElement>
          <packagedElement xmi:type="uml:Class" xmi:id="_BV_OgKglEeaKNtCyV0i9yg" name="Component"/>
          <packagedElement xmi:type="uml:Class" xmi:id="_BWC44KglEeaKNtCyV0i9yg" name="Event"/>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_BSoYgKglEeaKNtCyV0i9yg" name="AppController">
          <ownedComment xmi:id="_BX3d0KglEeaKNtCyV0i9yg">
            <body>*
Application Controller
 *
Add your application-wide methods in the class below, your controllers
will inherit them.
 *
@link http://book.cakephp.org/3.0/en/controllers.html#the-app-controller</body>
          </ownedComment>
          <generalization xmi:id="_BVzBQKglEeaKNtCyV0i9yg" general="_BVuv0KglEeaKNtCyV0i9yg"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXIeAKglEeaKNtCyV0i9yg" name="initialize" specification="_BTDPQKglEeaKNtCyV0i9yg">
            <language>PHP</language>
            <body>parent::initialize();

     $this->loadComponent('RequestHandler');
     $this->loadComponent('Flash');

     $this->loadComponent('Auth', [
         'unauthorizedRedirect' => false,
         'authenticate' => [ 
             //Inicia sesión usando formulario disponible para admin.
             'Form', 
             //Sesión con lti disponibles para los usuarios que inician sesión por lti
             'Lti' 
         ],
         'authorize' => 'Controller'
     ]);

     //Este componente llama $this->Auth->identify() la devuelve la llamada beforeFilter()
     //si la consulta es una consulta lti. 
     $this->loadComponent('LtiAutologin');
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXMvcKglEeaKNtCyV0i9yg" name="isAuthorized" specification="_BVAXEKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXMvcaglEeaKNtCyV0i9yg" name="user">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXMvcqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>return $this->isAdmin($user);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXN9kKglEeaKNtCyV0i9yg" name="isLtiUser" specification="_BVJhAKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXN9kaglEeaKNtCyV0i9yg" name="user"/>
            <language>PHP</language>
            <body>if (!empty($user['lti_user_id'])) {
         return false; //true para lti
     }
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXgRcKglEeaKNtCyV0i9yg" name="isAdmin" specification="_BVL9QKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXgRcaglEeaKNtCyV0i9yg" name="user"/>
            <language>PHP</language>
            <body>return !$this->isLtiUser($user);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXki4KglEeaKNtCyV0i9yg" name="beforeRender" specification="_BV5u8aglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXki4aglEeaKNtCyV0i9yg" name="event" type="_BV1dgKglEeaKNtCyV0i9yg"/>
            <language>PHP</language>
            <body>if (!array_key_exists('_serialize', $this->viewVars) &amp;&amp;
         in_array($this->response->type(), ['application/json', 'application/xml'])
     ) {
         $this->set('_serialize', true);
     }
 </body>
          </ownedBehavior>
          <ownedOperation xmi:id="_BTDPQKglEeaKNtCyV0i9yg" name="initialize" method="_BXIeAKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX4E4KglEeaKNtCyV0i9yg">
              <body>*
     * Initialization hook method.
     *
     * Use this method to add common initialization code like loading components.
     *
     * e.g. `$this->loadComponent('Security');`
     *
     * @return void</body>
            </ownedComment>
          </ownedOperation>
          <ownedOperation xmi:id="_BVAXEKglEeaKNtCyV0i9yg" name="isAuthorized" method="_BXMvcKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BVAXEaglEeaKNtCyV0i9yg" name="user">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVIS4KglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVJhAKglEeaKNtCyV0i9yg" name="isLtiUser" method="_BXN9kKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BVKIEKglEeaKNtCyV0i9yg" name="user"/>
          </ownedOperation>
          <ownedOperation xmi:id="_BVL9QKglEeaKNtCyV0i9yg" name="isAdmin" method="_BXgRcKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BVL9QaglEeaKNtCyV0i9yg" name="user"/>
          </ownedOperation>
          <ownedOperation xmi:id="_BV5u8aglEeaKNtCyV0i9yg" name="beforeRender" method="_BXki4KglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX4E4aglEeaKNtCyV0i9yg">
              <body>*
     * Before render callback.
     *
     * @param \Cake\Event\Event $event The beforeRender event.
     * @return void</body>
            </ownedComment>
            <ownedParameter xmi:id="_BV6WAKglEeaKNtCyV0i9yg" name="event" type="_BV1dgKglEeaKNtCyV0i9yg"/>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_BTjlkKglEeaKNtCyV0i9yg" name="AssignmentsController">
          <ownedComment xmi:id="_BX4r8KglEeaKNtCyV0i9yg">
            <body>*
Assignments Controller
 *
@property \App\Model\Table\AssignmentsTable $Assignments</body>
          </ownedComment>
          <generalization xmi:id="_BV-AYaglEeaKNtCyV0i9yg" general="_BV8LMKglEeaKNtCyV0i9yg"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXmYEKglEeaKNtCyV0i9yg" name="index" specification="_BTmo4KglEeaKNtCyV0i9yg">
            <language>PHP</language>
            <body>$this->paginate = [
         'contain' => ['ActivitiesGroups', 'Activities', 'Users']
     ];
     $assignments = $this->paginate($this->Assignments);

     $this->set(compact('assignments'));
     $this->set('_serialize', ['assignments']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXnmMKglEeaKNtCyV0i9yg" name="view" specification="_BVPnoKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXnmMaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXnmMqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$assignment = $this->Assignments->get($id, [
         'contain' => ['ActivitiesGroups', 'Activities', 'Users']
     ]);

     $this->set('assignment', $assignment);
     $this->set('_serialize', ['assignment']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXoNQKglEeaKNtCyV0i9yg" name="add" specification="_BTpFIKglEeaKNtCyV0i9yg">
            <language>PHP</language>
            <body>$assignment = $this->Assignments->newEntity();
     if ($this->request->is('post')) {
         $assignment = $this->Assignments->patchEntity($assignment, $this->request->data);
         if ($this->Assignments->save($assignment)) {
             $this->Flash->success(__('The assignment has been saved.'));

             return $this->redirect(['action' => 'index']);
         } else {
             $this->Flash->error(__('The assignment could not be saved. Please, try again.'));
         }
     }
     $activitiesGroups = $this->Assignments->ActivitiesGroups->find('list', ['limit' => 200]);
     $activities = $this->Assignments->Activities->find('list', ['limit' => 200]);
     $users = $this->Assignments->Users->find('list', ['limit' => 200]);
     $this->set(compact('assignment', 'activitiesGroups', 'activities', 'users'));
     $this->set('_serialize', ['assignment']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXo0UKglEeaKNtCyV0i9yg" name="edit" specification="_BVQ1waglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXo0UaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXo0UqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$assignment = $this->Assignments->get($id, [
         'contain' => []
     ]);
     if ($this->request->is(['patch', 'post', 'put'])) {
         $assignment = $this->Assignments->patchEntity($assignment, $this->request->data);
         if ($this->Assignments->save($assignment)) {
             $this->Flash->success(__('The assignment has been saved.'));

             return $this->redirect(['action' => 'index']);
         } else {
             $this->Flash->error(__('The assignment could not be saved. Please, try again.'));
         }
     }
     $activitiesGroups = $this->Assignments->ActivitiesGroups->find('list', ['limit' => 200]);
     $activities = $this->Assignments->Activities->find('list', ['limit' => 200]);
     $users = $this->Assignments->Users->find('list', ['limit' => 200]);
     $this->set(compact('assignment', 'activitiesGroups', 'activities', 'users'));
     $this->set('_serialize', ['assignment']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXpbYKglEeaKNtCyV0i9yg" name="delete" specification="_BVSD4KglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXpbYaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXpbYqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$this->request->allowMethod(['post', 'delete']);
     $assignment = $this->Assignments->get($id);
     if ($this->Assignments->delete($assignment)) {
         $this->Flash->success(__('The assignment has been deleted.'));
     } else {
         $this->Flash->error(__('The assignment could not be deleted. Please, try again.'));
     }

     return $this->redirect(['action' => 'index']);
 </body>
          </ownedBehavior>
          <ownedOperation xmi:id="_BTmo4KglEeaKNtCyV0i9yg" name="index" method="_BXmYEKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX4r8aglEeaKNtCyV0i9yg">
              <body>*
     * Index method
     *
     * @return \Cake\Network\Response|null</body>
            </ownedComment>
          </ownedOperation>
          <ownedOperation xmi:id="_BTpFIKglEeaKNtCyV0i9yg" name="add" method="_BXoNQKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX4r86glEeaKNtCyV0i9yg">
              <body>*
     * Add method
     *
     * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.</body>
            </ownedComment>
          </ownedOperation>
          <ownedOperation xmi:id="_BVPnoKglEeaKNtCyV0i9yg" name="view" method="_BXnmMKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX4r8qglEeaKNtCyV0i9yg">
              <body>*
     * View method
     *
     * @param string|null $id Assignment id.
     * @return \Cake\Network\Response|null
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVPnoaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVQ1wKglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVQ1waglEeaKNtCyV0i9yg" name="edit" method="_BXo0UKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX4r9KglEeaKNtCyV0i9yg">
              <body>*
     * Edit method
     *
     * @param string|null $id Assignment id.
     * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise.
     * @throws \Cake\Network\Exception\NotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVQ1wqglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVRc0aglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVSD4KglEeaKNtCyV0i9yg" name="delete" method="_BXpbYKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX5TAKglEeaKNtCyV0i9yg">
              <body>*
     * Delete method
     *
     * @param string|null $id Assignment id.
     * @return \Cake\Network\Response|null Redirects to index.
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVSD4aglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVT5EKglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVUgIKglEeaKNtCyV0i9yg" name="submit">
            <ownedParameter xmi:id="_BVUgIaglEeaKNtCyV0i9yg" name="idGA">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVXjcKglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_BT2ggKglEeaKNtCyV0i9yg" name="GradesController">
          <ownedComment xmi:id="_BX56EKglEeaKNtCyV0i9yg">
            <body>*
Grades Controller
 *
@property \App\Model\Table\GradesTable $Grades</body>
          </ownedComment>
          <generalization xmi:id="_BWJmkKglEeaKNtCyV0i9yg" general="_BV8LMKglEeaKNtCyV0i9yg"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXrQkKglEeaKNtCyV0i9yg" name="index" specification="_BT5j0KglEeaKNtCyV0i9yg">
            <language>PHP</language>
            <body>$this->paginate = [
         'contain' => ['Submissions', 'RubricsItems']
     ];
     $grades = $this->paginate($this->Grades);

     $this->set(compact('grades'));
     $this->set('_serialize', ['grades']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXr3oKglEeaKNtCyV0i9yg" name="view" specification="_BVZ_sKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXr3oaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXr3oqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$grade = $this->Grades->get($id, [
         'contain' => ['Submissions', 'RubricsItems']
     ]);

     $this->set('grade', $grade);
     $this->set('_serialize', ['grade']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXsesKglEeaKNtCyV0i9yg" name="add" specification="_BVb04aglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXsesaglEeaKNtCyV0i9yg" name="idSubmission">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXsesqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$grade = $this->Grades->newEntity();
     if ($this->request->is('post')) {
         $grade = $this->Grades->patchEntity($grade, $this->request->data);
         $grade->submission_id = $idSubmission;
         if ($this->Grades->save($grade)) {
             $this->Flash->success(__('The grade has been saved.'));

             return $this->redirect(['action' => 'index']);
         } else {
             $this->Flash->error(__('The grade could not be saved. Please, try again.'));
         }
     }
     $submissions = $this->Grades->Submissions->find('list', ['limit' => 200]);
     $rubricsItems = $this->Grades->RubricsItems->find('list', ['limit' => 200]);
     $this->set(compact('grade', 'submissions', 'rubricsItems'));
     $this->set('_serialize', ['grade']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXtFwKglEeaKNtCyV0i9yg" name="edit" specification="_BVdqEKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXtFwaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXtFwqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$grade = $this->Grades->get($id, [
         'contain' => []
     ]);
     if ($this->request->is(['patch', 'post', 'put'])) {
         $grade = $this->Grades->patchEntity($grade, $this->request->data);
         if ($this->Grades->save($grade)) {
             $this->Flash->success(__('The grade has been saved.'));

             return $this->redirect(['action' => 'index']);
         } else {
             $this->Flash->error(__('The grade could not be saved. Please, try again.'));
         }
     }
     $submissions = $this->Grades->Submissions->find('list', ['limit' => 200]);
     $rubricsItems = $this->Grades->RubricsItems->find('list', ['limit' => 200]);
     $this->set(compact('grade', 'submissions', 'rubricsItems'));
     $this->set('_serialize', ['grade']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXu68KglEeaKNtCyV0i9yg" name="delete" specification="_BVe4MqglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXu68aglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXu68qglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$this->request->allowMethod(['post', 'delete']);
     $grade = $this->Grades->get($id);
     if ($this->Grades->delete($grade)) {
         $this->Flash->success(__('The grade has been deleted.'));
     } else {
         $this->Flash->error(__('The grade could not be deleted. Please, try again.'));
     }

     return $this->redirect(['action' => 'index']);
 </body>
          </ownedBehavior>
          <ownedOperation xmi:id="_BT5j0KglEeaKNtCyV0i9yg" name="index" method="_BXrQkKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX7IMKglEeaKNtCyV0i9yg">
              <body>*
     * Index method
     *
     * @return \Cake\Network\Response|null</body>
            </ownedComment>
          </ownedOperation>
          <ownedOperation xmi:id="_BVZ_sKglEeaKNtCyV0i9yg" name="view" method="_BXr3oKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX7vQKglEeaKNtCyV0i9yg">
              <body>*
     * View method
     *
     * @param string|null $id Grade id.
     * @return \Cake\Network\Response|null
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVamwKglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVb04KglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVb04aglEeaKNtCyV0i9yg" name="add" method="_BXsesKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX7vQaglEeaKNtCyV0i9yg">
              <body>*
     * Add method
     *
     * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVcb8KglEeaKNtCyV0i9yg" name="idSubmission">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVdDAaglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVdqEKglEeaKNtCyV0i9yg" name="edit" method="_BXtFwKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX7vQqglEeaKNtCyV0i9yg">
              <body>*
     * Edit method
     *
     * @param string|null $id Grade id.
     * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise.
     * @throws \Cake\Network\Exception\NotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVdqEaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVe4MaglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVe4MqglEeaKNtCyV0i9yg" name="delete" method="_BXu68KglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX7vQ6glEeaKNtCyV0i9yg">
              <body>*
     * Delete method
     *
     * @param string|null $id Grade id.
     * @return \Cake\Network\Response|null Redirects to index.
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVffQKglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVgGUaglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_BUEi8KglEeaKNtCyV0i9yg" name="RubricCriteriasController">
          <ownedComment xmi:id="_BX8WUKglEeaKNtCyV0i9yg">
            <body>*
RubricCriterias Controller
 *
@property \App\Model\Table\RubricCriteriasTable $RubricCriterias</body>
          </ownedComment>
          <generalization xmi:id="_BWK0sKglEeaKNtCyV0i9yg" general="_BV8LMKglEeaKNtCyV0i9yg"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXviAKglEeaKNtCyV0i9yg" name="index" specification="_BUO7AaglEeaKNtCyV0i9yg">
            <language>PHP</language>
            <body>$this->paginate = [
         'contain' => ['Rubrics']
     ];
     $rubricCriterias = $this->paginate($this->RubricCriterias);

     $this->set(compact('rubricCriterias'));
     $this->set('_serialize', ['rubricCriterias']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXwwIKglEeaKNtCyV0i9yg" name="view" specification="_BVhUcKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXwwIaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXxXMKglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$rubricCriteria = $this->RubricCriterias->get($id, [
         'contain' => ['Rubrics', 'RubricLevels']
     ]);

     $this->set('rubricCriteria', $rubricCriteria);
     $this->set('_serialize', ['rubricCriteria']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXxXMaglEeaKNtCyV0i9yg" name="add" specification="_BUQwMKglEeaKNtCyV0i9yg">
            <language>PHP</language>
            <body>$rubricCriteria = $this->RubricCriterias->newEntity();
     if ($this->request->is('post')) {
         $rubricCriteria = $this->RubricCriterias->patchEntity($rubricCriteria, $this->request->data);
         if ($this->RubricCriterias->save($rubricCriteria)) {
             $this->Flash->success(__('The rubric criteria has been saved.'));

             return $this->redirect(['action' => 'index']);
         } else {
             $this->Flash->error(__('The rubric criteria could not be saved. Please, try again.'));
         }
     }
     $rubrics = $this->RubricCriterias->Rubrics->find('list', ['limit' => 200]);
     $this->set(compact('rubricCriteria', 'rubrics'));
     $this->set('_serialize', ['rubricCriteria']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXx-QKglEeaKNtCyV0i9yg" name="edit" specification="_BVjJoKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXx-QaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXx-QqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$rubricCriteria = $this->RubricCriterias->get($id, [
         'contain' => []
     ]);
     if ($this->request->is(['patch', 'post', 'put'])) {
         $rubricCriteria = $this->RubricCriterias->patchEntity($rubricCriteria, $this->request->data);
         if ($this->RubricCriterias->save($rubricCriteria)) {
             $this->Flash->success(__('The rubric criteria has been saved.'));

             return $this->redirect(['action' => 'index']);
         } else {
             $this->Flash->error(__('The rubric criteria could not be saved. Please, try again.'));
         }
     }
     $rubrics = $this->RubricCriterias->Rubrics->find('list', ['limit' => 200]);
     $this->set(compact('rubricCriteria', 'rubrics'));
     $this->set('_serialize', ['rubricCriteria']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXylUKglEeaKNtCyV0i9yg" name="delete" specification="_BVkXwKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BXylUaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BXylUqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$this->request->allowMethod(['post', 'delete']);
     $rubricCriteria = $this->RubricCriterias->get($id);
     if ($this->RubricCriterias->delete($rubricCriteria)) {
         $this->Flash->success(__('The rubric criteria has been deleted.'));
     } else {
         $this->Flash->error(__('The rubric criteria could not be deleted. Please, try again.'));
     }

     return $this->redirect(['action' => 'index']);
 </body>
          </ownedBehavior>
          <ownedOperation xmi:id="_BUO7AaglEeaKNtCyV0i9yg" name="index" method="_BXviAKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX8WUaglEeaKNtCyV0i9yg">
              <body>*
     * Index method
     *
     * @return \Cake\Network\Response|null</body>
            </ownedComment>
          </ownedOperation>
          <ownedOperation xmi:id="_BUQwMKglEeaKNtCyV0i9yg" name="add" method="_BXxXMaglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX89YKglEeaKNtCyV0i9yg">
              <body>*
     * Add method
     *
     * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.</body>
            </ownedComment>
          </ownedOperation>
          <ownedOperation xmi:id="_BVhUcKglEeaKNtCyV0i9yg" name="view" method="_BXwwIKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX8WUqglEeaKNtCyV0i9yg">
              <body>*
     * View method
     *
     * @param string|null $id Rubric Criteria id.
     * @return \Cake\Network\Response|null
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVh7gKglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BViikaglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVjJoKglEeaKNtCyV0i9yg" name="edit" method="_BXx-QKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX89YaglEeaKNtCyV0i9yg">
              <body>*
     * Edit method
     *
     * @param string|null $id Rubric Criteria id.
     * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise.
     * @throws \Cake\Network\Exception\NotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVjJoaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVjwsaglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVkXwKglEeaKNtCyV0i9yg" name="delete" method="_BXylUKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX89YqglEeaKNtCyV0i9yg">
              <body>*
     * Delete method
     *
     * @param string|null $id Rubric Criteria id.
     * @return \Cake\Network\Response|null Redirects to index.
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVkXwaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVk-0aglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_BUZTEKglEeaKNtCyV0i9yg" name="RubricLevelsController">
          <ownedComment xmi:id="_BX9kcKglEeaKNtCyV0i9yg">
            <body>*
RubricLevels Controller
 *
@property \App\Model\Table\RubricLevelsTable $RubricLevels</body>
          </ownedComment>
          <generalization xmi:id="_BWMC0KglEeaKNtCyV0i9yg" general="_BV8LMKglEeaKNtCyV0i9yg"/>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BXzMYKglEeaKNtCyV0i9yg" name="index" specification="_BUbvUKglEeaKNtCyV0i9yg">
            <language>PHP</language>
            <body>$this->paginate = [
         'contain' => ['RubricCriterias']
     ];
     $rubricLevels = $this->paginate($this->RubricLevels);

     $this->set(compact('rubricLevels'));
     $this->set('_serialize', ['rubricLevels']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BX1BkKglEeaKNtCyV0i9yg" name="view" specification="_BVmM8KglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BX1BkaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BX1BkqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$rubricLevel = $this->RubricLevels->get($id, [
         'contain' => ['RubricCriterias']
     ]);

     $this->set('rubricLevel', $rubricLevel);
     $this->set('_serialize', ['rubricLevel']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BX1ooKglEeaKNtCyV0i9yg" name="add" specification="_BUc9cKglEeaKNtCyV0i9yg">
            <language>PHP</language>
            <body>$rubricLevel = $this->RubricLevels->newEntity();
     if ($this->request->is('post')) {
         $rubricLevel = $this->RubricLevels->patchEntity($rubricLevel, $this->request->data);
         if ($this->RubricLevels->save($rubricLevel)) {
             $this->Flash->success(__('The rubric level has been saved.'));

             return $this->redirect(['action' => 'index']);
         } else {
             $this->Flash->error(__('The rubric level could not be saved. Please, try again.'));
         }
     }
     $rubricCriterias = $this->RubricLevels->RubricCriterias->find('list', ['limit' => 200]);
     $this->set(compact('rubricLevel', 'rubricCriterias'));
     $this->set('_serialize', ['rubricLevel']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BX1ooaglEeaKNtCyV0i9yg" name="edit" specification="_BVoCIKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BX1ooqglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BX1oo6glEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$rubricLevel = $this->RubricLevels->get($id, [
         'contain' => []
     ]);
     if ($this->request->is(['patch', 'post', 'put'])) {
         $rubricLevel = $this->RubricLevels->patchEntity($rubricLevel, $this->request->data);
         if ($this->RubricLevels->save($rubricLevel)) {
             $this->Flash->success(__('The rubric level has been saved.'));

             return $this->redirect(['action' => 'index']);
         } else {
             $this->Flash->error(__('The rubric level could not be saved. Please, try again.'));
         }
     }
     $rubricCriterias = $this->RubricLevels->RubricCriterias->find('list', ['limit' => 200]);
     $this->set(compact('rubricLevel', 'rubricCriterias'));
     $this->set('_serialize', ['rubricLevel']);
 </body>
          </ownedBehavior>
          <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_BX2PsKglEeaKNtCyV0i9yg" name="delete" specification="_BVpQQKglEeaKNtCyV0i9yg">
            <ownedParameter xmi:id="_BX2PsaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BX2PsqglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
            <language>PHP</language>
            <body>$this->request->allowMethod(['post', 'delete']);
     $rubricLevel = $this->RubricLevels->get($id);
     if ($this->RubricLevels->delete($rubricLevel)) {
         $this->Flash->success(__('The rubric level has been deleted.'));
     } else {
         $this->Flash->error(__('The rubric level could not be deleted. Please, try again.'));
     }

     return $this->redirect(['action' => 'index']);
 </body>
          </ownedBehavior>
          <ownedOperation xmi:id="_BUbvUKglEeaKNtCyV0i9yg" name="index" method="_BXzMYKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX9kcaglEeaKNtCyV0i9yg">
              <body>*
     * Index method
     *
     * @return \Cake\Network\Response|null</body>
            </ownedComment>
          </ownedOperation>
          <ownedOperation xmi:id="_BUc9cKglEeaKNtCyV0i9yg" name="add" method="_BX1ooKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX9kc6glEeaKNtCyV0i9yg">
              <body>*
     * Add method
     *
     * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise.</body>
            </ownedComment>
          </ownedOperation>
          <ownedOperation xmi:id="_BVmM8KglEeaKNtCyV0i9yg" name="view" method="_BX1BkKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX9kcqglEeaKNtCyV0i9yg">
              <body>*
     * View method
     *
     * @param string|null $id Rubric Level id.
     * @return \Cake\Network\Response|null
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVm0AKglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVnbEaglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVoCIKglEeaKNtCyV0i9yg" name="edit" method="_BX1ooaglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX9kdKglEeaKNtCyV0i9yg">
              <body>*
     * Edit method
     *
     * @param string|null $id Rubric Level id.
     * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise.
     * @throws \Cake\Network\Exception\NotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVoCIaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVopMaglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
          <ownedOperation xmi:id="_BVpQQKglEeaKNtCyV0i9yg" name="delete" method="_BX2PsKglEeaKNtCyV0i9yg">
            <ownedComment xmi:id="_BX-LgKglEeaKNtCyV0i9yg">
              <body>*
     * Delete method
     *
     * @param string|null $id Rubric Level id.
     * @return \Cake\Network\Response|null Redirects to index.
     * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found.</body>
            </ownedComment>
            <ownedParameter xmi:id="_BVpQQaglEeaKNtCyV0i9yg" name="id">
              <defaultValue xmi:type="uml:LiteralString" xmi:id="_BVqeYaglEeaKNtCyV0i9yg" value="null"/>
            </ownedParameter>
          </ownedOperation>
        </packagedElement>
        <packagedElement xmi:type="uml:Class" xmi:id="_BVuv0KglEeaKNtCyV0i9yg" name="Controller"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_BV1dgKglEeaKNtCyV0i9yg" name="Event"/>
        <packagedElement xmi:type="uml:Class" xmi:id="_BV8LMKglEeaKNtCyV0i9yg" name="App"/>
      </packagedElement>
    </packagedElement>
    <profileApplication xmi:id="_A_L4EKglEeaKNtCyV0i9yg">
      <eAnnotations xmi:id="_A_OUUKglEeaKNtCyV0i9yg" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://UMLLAB_PROFILES/UMLLab.profile.uml#UMLLabProfile-Annotation_2-UMLLabProfile"/>
      </eAnnotations>
      <appliedProfile href="pathmap://UMLLAB_PROFILES/UMLLab.profile.uml#UMLLabProfile"/>
    </profileApplication>
    <profileApplication xmi:id="_BS-90KglEeaKNtCyV0i9yg">
      <eAnnotations xmi:id="_BS_k4KglEeaKNtCyV0i9yg" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://PHP_PROFILES/PHP.profile.uml#PHPProfile-Annotation-PHPProfile"/>
      </eAnnotations>
      <appliedProfile href="pathmap://PHP_PROFILES/PHP.profile.uml#PHPProfile"/>
    </profileApplication>
    <profileApplication xmi:id="_BTHgsKglEeaKNtCyV0i9yg">
      <eAnnotations xmi:id="_BTHgsaglEeaKNtCyV0i9yg" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://ZEND_PROFILES/Zend.profile.uml#ZENDStyle-Annotation-ZENDStyle"/>
      </eAnnotations>
      <appliedProfile href="pathmap://ZEND_PROFILES/Zend.profile.uml#ZENDStyle"/>
    </profileApplication>
  </uml:Model>
  <UMLLabProfile:TargetLanguage xmi:id="_A_R-sKglEeaKNtCyV0i9yg" base_Package="_ArFQUKglEeaKNtCyV0i9yg">
    <languageName>PHP</languageName>
  </UMLLabProfile:TargetLanguage>
  <PHPProfile:CustomFileName xmi:id="_BTAL8KglEeaKNtCyV0i9yg" base_Classifier="_BSoYgKglEeaKNtCyV0i9yg" fileName="src/Controller/AppController"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BTIu0KglEeaKNtCyV0i9yg" base_Element="_BTDPQKglEeaKNtCyV0i9yg"/>
  <PHPProfile:CustomFileName xmi:id="_BTmB0KglEeaKNtCyV0i9yg" base_Classifier="_BTjlkKglEeaKNtCyV0i9yg" fileName="src/Controller/AssignmentsController"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BTn3AKglEeaKNtCyV0i9yg" base_Element="_BTmo4KglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BTpsMKglEeaKNtCyV0i9yg" base_Element="_BTpFIKglEeaKNtCyV0i9yg"/>
  <PHPProfile:CustomFileName xmi:id="_BTwZ4KglEeaKNtCyV0i9yg" base_Classifier="_BTuksKglEeaKNtCyV0i9yg" fileName="src/Controller/Component/LtiAutologinComponent"/>
  <PHPProfile:CustomFileName xmi:id="_BT48wKglEeaKNtCyV0i9yg" base_Classifier="_BT2ggKglEeaKNtCyV0i9yg" fileName="src/Controller/GradesController"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BT6x8KglEeaKNtCyV0i9yg" base_Element="_BT5j0KglEeaKNtCyV0i9yg"/>
  <PHPProfile:CustomFileName xmi:id="_BUO7AKglEeaKNtCyV0i9yg" base_Classifier="_BUEi8KglEeaKNtCyV0i9yg" fileName="src/Controller/RubricCriteriasController"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BUQJIKglEeaKNtCyV0i9yg" base_Element="_BUO7AaglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BUVosKglEeaKNtCyV0i9yg" base_Element="_BUQwMKglEeaKNtCyV0i9yg"/>
  <PHPProfile:CustomFileName xmi:id="_BUbIQKglEeaKNtCyV0i9yg" base_Classifier="_BUZTEKglEeaKNtCyV0i9yg" fileName="src/Controller/RubricLevelsController"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BUcWYKglEeaKNtCyV0i9yg" base_Element="_BUbvUKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BUeLkKglEeaKNtCyV0i9yg" base_Element="_BUc9cKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVBlMKglEeaKNtCyV0i9yg" base_Element="_BVAXEKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVLWMKglEeaKNtCyV0i9yg" base_Element="_BVJhAKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVQOsKglEeaKNtCyV0i9yg" base_Element="_BVPnoKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVRc0KglEeaKNtCyV0i9yg" base_Element="_BVQ1waglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVSq8KglEeaKNtCyV0i9yg" base_Element="_BVSD4KglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVW8YKglEeaKNtCyV0i9yg" base_Element="_BVUgIKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVbN0KglEeaKNtCyV0i9yg" base_Element="_BVZ_sKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVdDAKglEeaKNtCyV0i9yg" base_Element="_BVb04aglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVe4MKglEeaKNtCyV0i9yg" base_Element="_BVdqEKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVgGUKglEeaKNtCyV0i9yg" base_Element="_BVe4MqglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BViikKglEeaKNtCyV0i9yg" base_Element="_BVhUcKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVjwsKglEeaKNtCyV0i9yg" base_Element="_BVjJoKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVk-0KglEeaKNtCyV0i9yg" base_Element="_BVkXwKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVnbEKglEeaKNtCyV0i9yg" base_Element="_BVmM8KglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVopMKglEeaKNtCyV0i9yg" base_Element="_BVoCIKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BVqeYKglEeaKNtCyV0i9yg" base_Element="_BVpQQKglEeaKNtCyV0i9yg"/>
  <UMLLabProfile:Reference xmi:id="_BVyaMKglEeaKNtCyV0i9yg" base_Element="_BVuv0KglEeaKNtCyV0i9yg"/>
  <UMLLabProfile:Reference xmi:id="_BV5u8KglEeaKNtCyV0i9yg" base_Element="_BV1dgKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BV69EKglEeaKNtCyV0i9yg" base_Element="_BV5u8aglEeaKNtCyV0i9yg"/>
  <UMLLabProfile:Reference xmi:id="_BV-AYKglEeaKNtCyV0i9yg" base_Element="_BV8LMKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendController xmi:id="_BV-ncKglEeaKNtCyV0i9yg" base_Classifier="_BV8LMKglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BV-ncaglEeaKNtCyV0i9yg" base_Element="_BV8LMKglEeaKNtCyV0i9yg"/>
  <UMLLabProfile:Reference xmi:id="_BWBqwKglEeaKNtCyV0i9yg" base_Element="_BV_OgKglEeaKNtCyV0i9yg"/>
  <UMLLabProfile:Reference xmi:id="_BWHKUKglEeaKNtCyV0i9yg" base_Element="_BWC44KglEeaKNtCyV0i9yg"/>
  <ZENDStyle:ZendStyledElement xmi:id="_BWI_gKglEeaKNtCyV0i9yg" base_Element="_BWHxYKglEeaKNtCyV0i9yg"/>
  <UMLLabProfile:Simple xmi:id="_BWPGIKglEeaKNtCyV0i9yg" base_Element="_BWN4AKglEeaKNtCyV0i9yg"/>
</xmi:XMI>
