/**
  * Update/set/delete properties of entities
  */
 protected function setProperties(Model\Entity $entity, $parameters)
 {
     foreach ($parameters as $key => $value) {
         if (in_array($key, array('operation', 'type', 'debug'))) {
             continue;
             // skip generic parameters
         } else {
             if (!Definition\PropertyDefinition::exists($key)) {
                 throw new \Exception('Unknown property: \'' . $key . '\'');
             }
         }
         if ($value == '') {
             // dont use empty() because it also matches 0
             $entity->deleteProperty($key);
         } else {
             $entity->setProperty($key, $value);
         }
     }
     $entity->checkProperties();
 }