public function __toString()
 {
     $member = '';
     foreach ($this->member as $name => $value) {
         $member .= '    ' . ($value['static'] ? 'static ' : '') . $value['type'] . ' ' . $name;
         if (isset($value['default'])) {
             $member .= ' = ';
             if ($value['isString']) {
                 $member .= $value['default'];
             } else {
                 switch (gettype($value['default'])) {
                     case 'array':
                         $member .= \phpOMS\Utils\ArrayUtils::stringify($value['default']);
                         break;
                     case 'integer':
                     case 'float':
                     case 'double':
                         $member .= $value['default'];
                         break;
                     case 'string':
                         $member .= '"' . $value['default'] . '"';
                         break;
                     case 'object':
                         $member .= get_class($value['default']) . '()';
                         // TODO: implement object with parameters -> Reflection
                         break;
                     case 'boolean':
                         $member .= $value['default'] ? 'true' : 'false';
                         break;
                     case 'NULL':
                         $member .= 'null';
                         break;
                     default:
                         throw new \Exception('Unknown default type');
                 }
             }
         }
         $member .= ';' . PHP_EOL;
     }
     return '<?php' . PHP_EOL . (isset($this->namespace) ? 'namespace ' . $this->namespace . ';' . PHP_EOL : '') . 'abstract class' . $this->class . (isset($this->extends) ? ' extends ' . $this->extends : '') . (isset($this->implements) ? ' implements ' . implode(',', $this->implements) : '') . ' {' . PHP_EOL . $member . '}';
 }
 /**
  * {@inheritdoc}
  */
 public function detach($event)
 {
     $this->events = \phpOMS\Utils\ArrayUtils::unsetArray($event, $this->events, '/');
 }
 /**
  * Remove data
  *
  * @param string $path  Path to the element to delete
  * @param string $delim Delim used inside path
  *
  * @since  1.0.0
  * @author Dennis Eichhorn
  */
 public function remove($path, $delim)
 {
     $this->json = \phpOMS\Utils\ArrayUtils::unsetArray($path, $this->json, $delim);
 }