public function decorateRepresentation(\Extool\Representation\Representation &$rep)
 {
     $this->parse();
     if (isset($this->parsed['project'])) {
         $rep->setName($this->parsed['project']);
     } else {
         throw new Exception("Plan is not in NapkinSketch format.");
     }
     $tables = $this->getTables();
     foreach ($tables as $table) {
         $rep->addTable($table);
     }
     foreach ($this->views as $view) {
         $rep->addPublicView($view);
     }
     foreach ($this->adminViews as $view) {
         $rep->addAdminView($view);
     }
     foreach ($this->models as $model) {
         $rep->addPublicModel($model);
     }
     foreach ($this->adminModels as $model) {
         $rep->addAdminModel($model);
     }
     // TODO: models, views
 }
 public function decorateRepresentation(\Extool\Representation\Representation &$rep)
 {
     $this->parse();
     $pieces = explode('/', $this->resource);
     $resource_name = ucfirst(preg_replace('/\\..*/', '', array_pop($pieces)));
     $rep->setName($resource_name);
     $fields = $this->determineFields();
     $data = new \Extool\Representation\Data($fields);
     $data->setData($this->keyed_data);
     $rep->addData($data, $resource_name);
     $table = new \Extool\Representation\Table($resource_name);
     $table->setFields($fields);
     $rep->addTable($table);
     $model = new \Extool\Representation\Model($resource_name);
     $model->setCriteria($fields);
     $model->addTable($table);
     $view = new \Extool\Representation\View($resource_name);
     $view->setFields($fields);
     $rep->addPublicView($view);
     $rep->addPublicModel($model);
     $view->setAccess('admin');
     $rep->addAdminView($view);
     $rep->addAdminModel($model);
     // Create new model for the list views
     $model = new \Extool\Representation\Model($resource_name . ' List');
     $model->setCriteria($fields);
     $model->addTable($table);
     $view = new \Extool\Representation\View($resource_name . ' List');
     $view->setType('list');
     $view->setFields($fields);
     $rep->addPublicView($view);
     $rep->addPublicModel($model);
     $view->setAccess('admin');
     $rep->addAdminView($view);
     $rep->addAdminModel($model);
 }
 public function decorateRepresentation(\Extool\Representation\Representation &$rep)
 {
     $this->parse();
     $pieces = explode('/', $this->resource);
     $rep->setName(ucfirst(array_pop($pieces)));
     foreach ($this->table_fields as $table_name => $fields) {
         $table = new \Extool\Representation\Table($table_name);
         $table->setFields($fields);
         $rep->addTable($table);
         $model = new \Extool\Representation\Model($table_name);
         $model->setCriteria($fields);
         $model->addTable($table);
         // Generate four views for each table
         $view = new \Extool\Representation\View($table_name);
         $view->setFields($fields);
         $rep->addPublicView($view);
         $rep->addPublicModel($model);
         $view->setAccess('admin');
         $rep->addAdminView($view);
         $rep->addAdminModel($model);
         // Create new model for the list views
         $model = new \Extool\Representation\Model($table_name . ' List');
         $model->setCriteria($fields);
         $model->addTable($table);
         $view = new \Extool\Representation\View($table_name . ' List');
         $view->setType('list');
         $view->setFields($fields);
         $rep->addPublicView($view);
         $rep->addPublicModel($model);
         $view->setAccess('admin');
         $rep->addAdminView($view);
         $rep->addAdminModel($model);
     }
 }